Compiladores
1. PLANTEAMIENTO DEL LABORATORIO
1.1 Objetivos
El compilador realiza una serie de pasos para trasformar código fuente en código objeto. Dentro de la fase deanálisis se encuentran:
Análisis léxico.
Análisis sintáctico.
Análisis semántico.
Generación de código intermedio.
En la fase de síntesis se encuentran:
Optimización de código.
Generación decódigo objeto.
El objetivo de esta experiencia es implementar un compilador para el lenguaje fuente de las expresiones regulares sobre el alfabeto Σ_ER={a,b}. El lenguaje objeto es el lenguajeDOT, que permite representar grafos y autómatas. Para este fin, debe hacer uso del lenguaje Java en combinación con las herramientas JFlex y Cup:
JFlex permite la definición de los componentes léxicosque el lenguaje acepta como válidos mediante patrones y automatiza la construcción de analizadores léxicos.
Cup permite definir la gramática de un lenguaje mediante reglas gramaticales.
1.2Especificación del lenguaje fuente
Como se señaló anteriormente, el lenguaje a considerar en este trabajo es el de las expresiones regulares sobre el alfabeto Σ_ER={a,b}, definido por la gramáticaG=(Σ_G,N,P,S), donde:
Σ_G={(,),.,+,*,x}.
N={S}.
P={S→S.S | S+S |S*| (S) | x}.
S=S.
Tenga en consideración que:
. corresponde al operador de concatenación.
+ corresponde al operador deunión.
* corresponde al operador de clausura o estrella de Kleene.
x es el componente léxico que denota un símbolo o la palabra vacía (denotada para este trabajo como e).
La precedencia deoperadores, de mayor a menor, es: estrella de Kleene, concatenación y unión.
Los caracteres que pueden actuar como separadores entre un lexema y otro son el espacio simple, el tabulador y el salto decarro.
Todos los caracteres que aparezcan entre /* y */ se considerarán parte de un comentario y deben ser eliminados de la entrada por el analizador léxico. Los comentarios pueden aparecer en...
Regístrate para leer el documento completo.