Hernandez_Hernandez_Practica web de la sesion 12.pptx
Actividad 2 Programación de Sistemas.
1. Objetivo: Conocer la importancia de un analizador léxico, sintáctico y
semántico a partir de un generador de código.
2. 1. ¿A qué se refiere el análisis léxico, sintáctico y semántico?
El análisis léxico se refiere a la primera fase de un compilador, su principal
función consiste en leer los caracteres de entrada y elaborar como salida una
secuencia de componentes léxicos que utiliza el analizador sintáctico para
hacer el análisis.
El análisis sintáctico se refiere a la fase de verificación del texto de entrada
con respecto a su gramática. En el caso de que un programa de entrada sea
válido suministra el árbol sintáctico que lo reconoce.
El análisis semántico se refiere a los aspectos del significado e interpretación
expresiones construidas en palabras.
3. 2. Que es el análisis léxico en cuanto a:
a) Manejo de localidades temporales de memoria (buffers).
Es la manera de leer un programa carácter por carácter pero es ineficiente y
la manera más eficiente es realizar una copia a la memoria de todo el código
fuente, y verificar las dimensiones de los programas utilizando buffers.
b) Creación de tablas de símbolos.
Se refiere al conjunto de pares de claves los cuales contienen valores y son
llamados elementos de una tabla, la cual utiliza un identificador quien es el que
realizara la búsqueda dentro de la tabla para obtener la información asociada
con el valor del mismo.
c) Manejo de errores léxicos.
Se refiere a la estrategia que detecta una cadena no reconocible y la auxilia
en el remplazo de un carácter incorrecto por un carácter correcto e indicando
el lexema mediante por un identificador.
4. 3. Que es el análisis sintáctico en cuanto a:
a) Diagramas de sintaxis.
Es la representación explicita de un origen y un destino, y nos muestra los
caminos desde el inicio del grafo hasta el final de las sentencias válidas.
b) Precedencia de operadores.
Se refiere al proceso de análisis sintáctico ya que nos representa la forma en
la que debe construirse el árbol de derivación de cada una de las operaciones.
c) Analizador sintáctico:
Se refiere al programa que reconoce si una o varias cadenas de caracteres
forman parte de un determinado lenguaje mediante su gramática.
Analizador descendente (LL),
Se refiere al conjunto de gramática libre de contexto, en el cual se analizan
las entradas de izquierda a derecha y las construcciones de derivaciones por
la izquierda de una sentencia o enunciado.
5. Analizador ascendente (LR, LALR).
LR:
Se refiere al retroceso de la derivación de la cadena de entrada en forma
determinada la cual se sustenta de la aplicación de la gramática de un árbol de
derivación derecho.
LALR:
Se encarga de determinar la eficiencia de los métodos de la potencia de las
jerarquías gramáticas.
6. d) Administración de tablas de símbolos.
Se encarga de utilizar al compilador para almacenar información, asociadas
con los símbolos declarados en el programa.
e) Manejo de errores sintácticos y su recuperación.
Se refiere a la forma de detectar con claridad y exactitud los errores, y en su
recuperación desechar los componentes léxicos hasta encontrar carácter de
sincronización para su recuperación.
7. 4. Que es el análisis semántico en cuanto a:
a) Verificación de tipos en expresiones.
Se refiere a los tipos de datos y se asigna el valor de tipo de cada uno de los
componentes léxicos. Estos valores se comparan para verificar que los tipos
de datos coincidan y que sean congruentes ya que de lo contrario no se
pueden realizar los cálculos.
b) Conversión de tipos.
Se refiere al método en el que se puede confiar para verificar la equivalencia
de tipos, y poder representar la expresión en un árbol sintáctico, facilitando la
sintaxis de declaraciones hasta la representación del árbol.
c) Acciones agregadas en un analizador sintáctico descendente
(top-down).
Se refiere a las acciones semánticas y al mezcla dentro del flujo de control de
acciones, así como en los fragmentos de código de un programa en las
producciones gramaticales.
8. d) Pila semántica en un analizador sintáctico ascendente (bottom-up).
Se refiere a la identificación de aquellos procesos que necesitan analizar con
forme vayan apareciendo en la codificación del sistema o también a la
adquisición de paquetes de software para resolver el problema inmediato. En
la pila semántica los problemas de interacción entre los subsistemas son
costos y se solucionan hasta que la programación alcanza la fecha límite para
la integración del sistema.
e) Administración de la tabla de símbolos.
Se refiere a definir las variables con su uso, también checa que cada
expresión tenga un tipo correcto y traduce la sintaxis abstracta a una
representación más simple para generar código de máquina.
f) Manejo de errores semánticos.
Se refiere a la verificación de tipos de errores y la forma de como declararlo e
imprimir el mensaje de error y consultar en el código fuente las frases al
momento de la ejecución por parte del compilador.