Construcción de Analizador Léxico
Construcción de Analizador Léxico
Construcción de Analizador Léxico
Teoría de Compiladores
Sección: 01
Universidad Iberoamericana
22 de junio de 2020
CONSTRUCCIÓN DE ANALIZADOR LÉXICO
desarrollo de herramientas que aportan a la realización de los mismos, estas se han ido
cuales algunas son compatibles entre sí. Veamos un listado con 4 de las más conocidas
Bison
Ventajas
recursividad izquierda ya que supone un uso más eficiente de la pila del analizador. No
obstante, esto genera un analizador eficiente, incluso más que los que pudiéramos hacer
2
CONSTRUCCIÓN DE ANALIZADOR LÉXICO
lenguajes.
Deventajas
Flex
léxicos en un texto. Flex lee los ficheros de entrada dados, o la entrada estándar si no se
herramientas de apoyo han sido reescritas para otros lenguajes, incluyendo Ratfor, EFL,
ML,Ada, Java, Python, y Limbo. De esta forma se ha logrado una mayor utilización de
juntos. Yacc utiliza una gramática formal para analizar un flujo de entradas, algo que Lex
no puede hacer con expresiones regulares simples (Lex se limita a los autómatas de
estados finitos simples). Sin embargo, Yacc no puede leer en un flujo de entradas simple,
requiere una serie de símbolos. Lex se utiliza a menudo para proporcionar a Yacc estos
símbolos.
3
CONSTRUCCIÓN DE ANALIZADOR LÉXICO
Ventajas
• Ofrece dos maneras distintas de generar analizadores para usar con C++. Una de
• Se puede utilizar para generar un analizador como una clase de C++, utilizando
la opción ‘-+’
Desventajas
• Para algunas reglas de contexto posterior, partes que están hechas de longitud fija
anteriormente.
• La combinación de contexto posterior con el especial '|' acción puede producir que
caracteres.
4
CONSTRUCCIÓN DE ANALIZADOR LÉXICO
entremezclar llamadas a <stdio.h> rutinas, tales como, por ejemplo, `getchar () ',
con flex reglas y esperar que funcione. Llame a `input () 'en su lugar.
Lex
Es un generador de analizador léxico, que sirve para generar los tokens para la
ello. Lex se apoya en una plantilla que recibe como parámetro, y que se debe diseñar con
cuidado. Internamente Lex va a actuar como un autómata que localizará las expresiones
regulares que se le describan, y una vez reconocida la cadena representada por dicha
Coco / R
su contexto del lado derecho. Además de símbolos terminales el escáner también puede
reconocer pragmas, que son fichas que no son parte de la sintaxis, pero puede ocurrir en
5
CONSTRUCCIÓN DE ANALIZADOR LÉXICO
cualquier parte del flujo de entrada (por ejemplo, las directivas del compilador o
++, Pascal, Modula-2, Modula-3, Delphi, VB.NET, Python, Rubí y otros). Las versiones
más recientes de la Universidad de Linz son aquellos para C #, Java y C ++. Para la
versión de Java, hay un Eclipse plug-in y para C #, Visual Studio un plug-in. También
Mössenböck [ de] a Universidad de Linz cuando obtuvo su cita allí. Coco / R se distribuye
bajo los términos de un poco relajado Licencia Pública General de GNU. (Terry, 2005)
6
CONSTRUCCIÓN DE ANALIZADOR LÉXICO
Referencias
EcuRed. (s.f). EcuRed. Obtenido de Herramientas para la construcción de compiladore:
https://www.ecured.cu/Herramientas_para_la_construcci%C3%B3n_de_compil
adores