Vous êtes sur la page 1sur 13

Anlisis Lxico (Scanner):

Es la primera fase del compilador. Lee el flujo de


caracteres de entrada y los convierte en un flujo de
palabras o elementos (grupos de caracteres con
significancia llamados lexemas).
Para cada lexema, genera una lista ordenada de tokens de
la forma <nombre-del-token | valor >, los cuales sern
usados por el anlisis sintctico.
Utiliza patrones (expresiones regulares) para representar
un conjunto lxico.
Entre sus funciones estn: la eliminacin de caracteres
irrelevantes, contar el nmero de lneas con comentarios y
sin ellos, manejar algunos errores, etc.

Nociones Previas

Anlisis Sintctico (Parser):
Es la segunda fase del compilador. Recibe el cdigo
fuente en forma de tokens del AL y determina la
estructura gramatical del programa.
Crea una representacin intermedia generalmente en
forma de rbol de anlisis gramatical o rbol sintctico,
donde cada nodo es una operacin y los hijos son los
argumentos de la operacin.
Se encarga del tratamiento de errores, es decir debe
mostrar el error y saber recuperarse de el para poder
continuar con el anlisis.
Nociones Previas

Qu es la Semntica?
La semntica (del griego semantikos, "lo que tiene
significado") se refiere a los aspectos del significado,
sentido o interpretacin del significado de un
determinado elemento, smbolo, palabra, expresin o
representacin formal.
Anlisis Semntico

Se trata de determinar el tipo de resultados intermedios,
comprobar que los argumentos que tiene un operador
pertenecen al conjunto de los operadores posibles, y si son
compatibles entre s, etc. Adems de calcular la
informacin adicional necesaria para la compilacin una
vez que se conoce la estructura sintctica de un programa.
En definitiva, comprobara que el significado de lo que se
vaya leyendo es vlido.
Anlisis Semntico

La informacin calculada tambin est estrechamente
relacionada con el significado final, o semntica, del
programa que se traduce. Como el anlisis que realiza un
compilador es esttico por definicin (tiene lugar antes de la
ejecucin), dicho anlisis semntico tambin se conoce como
anlisis semntico esttico. (Las propiedades del programa
que se determinan al ejecutar el programa, no se pueden
determinar mediante un compilador porque ste no lo
ejecuta). Las caractersticas tpicas incluyen las declaraciones
y la comprobacin (verificacin) de tipos, en donde el
compilador verifica que cada operador tenga operandos que
coincidan.
Anlisis Semntico
Esttico

La especificacin del lenguaje puede permitir ciertas
conversiones de tipo conocidas como coerciones. Por
ejemplo, puede aplicarse un operador aritmtico a un
par de enteros o a un par de nmeros de punto flotante.
Si el operador s e aplica a un nmero de punto flotante
y a un entero, el compilador puede convertir u obligar a
que el entero se convierta en un nmero de punto
flotante.
Coerciones

ANALISIS LEXICO
Monto[indice] = 100 + valor

< id , 1 > < [ > < id , 2 > < ] > < = > < numero , 3 > < + > < id , 4 >

Lexema Patrn Componente Lxico
Monto secuencia de letras identificador
[ carcter [ corchete izquierdo
ndice secuencia de letras identificador
] carcter ] corchete derecho
= carcter = asignacin
100 secuencia de dgitos nmero
+ carcter + signo mas
valor secuencia de letras identificador

Ejemplo:

ANALISIS SINTACTICO

Ejemplo:

ANALISIS SEMANTICO

Ejemplo:

Una de las tareas principales de un compilador es el
clculo y mantenimiento de la informacin en tipos de
datos (inferencia de tipos), y el uso de tal informacin
para asegurar que cada parte de un programa tenga
sentido bajo las reglas de tipo del lenguaje (verificacin
de tipo). Estas dos tareas estrechamente relacionadas, se
realizan juntas, y se hace referencia a ellas simplemente
como comprobacin o verificacin de tipos.
Comprobacin de Tipos

Sin duda, este tipo de comprobacin es el ms exhaustivo y amplio
en fase de anlisis semntico. Ya sea en modo esttico (en tiempo
de compilacin) o dinmico (en tiempo de ejecucin) o en ambos,
las comprobaciones de tipos son necesarias en todo lenguaje de
alto nivel. El analizador semntico llevara a cabo las dos siguientes
tareas:
Verificacin De Tipos: Comprueba las operaciones que se
puedan aplicar a cada construccin del lenguaje. Dado un
elemento del lenguaje, su tipo identifica las operaciones que
sobre l se puedan aplicar.
Inferencia de tipos: Para poder implementar la comprobacin
anterior, es necesario conocer el tipo de cada construccin
sintcticamente valida del lenguaje. Asi el analizador
Tareas a realizar:

El anlisis semntico esttico involucra tanto la
descripcin de los anlisis a realizar como la
implementacin de los anlisis utilizando algoritmos
apropiados. En este sentido, es semejante al anlisis
lxico y sintctico. Sin embargo, no es tan simple,
debido a que no existe un mtodo estndar que permita
especificar la semntica esttica de un lenguaje, y en
parte porque la cantidad y categora del anlisis
semntico esttico vara demasiado de un lenguaje a
otro.
Conclusin

Vous aimerez peut-être aussi