HERRAMIENTAS para Analizador Sintactico

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

UNIVERSIDAD NACIONAL DE TRUJILLO

HERRAMIENTAS PARA
DESARROLLAR UN
ANALIZADOR
SINTÁCTICO
Autómatas y compiladores

INTEGRANTES:
 Infante Chancafe, Ingrid
 Terán Mejía, Lesly

2019
UNIVERSIDAD NACIONAL DE TRUJILLO

Contenido
INTRODUCCION ............................................................................................................................2
1. HERRAMIENTAS TRADICIONALES .........................................................................................3
a) Bison.................................................................................................................................3
b) Lex ....................................................................................................................................3
c) Flex ...................................................................................................................................3
d) Yacc ..................................................................................................................................3
2. HERRAMIENTAS DE NUEVA GENERACION ............................................................................4
a) ANTLR (ANother Tool for Language Recognition – otra herramienta para
reconocimiento de lenguajes) ..................................................................................................4
b) JavaCC (Java Compiler Compiler) ......................................................................................4
3. OTRAS HERRAMIENTAS ........................................................................................................4
a) BYACC/JAVA .....................................................................................................................4
b) COCO/JAVA ......................................................................................................................4
c) JELL ...................................................................................................................................4
d) JACCIE ...............................................................................................................................5
4. KIT PARA LA CONSTRUCCION DE COMPILADORES ...............................................................5
a) COKTAIL ............................................................................................................................5
b) ELI .....................................................................................................................................5
c) PCCT .................................................................................................................................5

AUTOMATAS Y COMPILADORES
UNIVERSIDAD NACIONAL DE TRUJILLO

INTRODUCCION
El uso y perfeccionamiento de los compiladores ha traído consigo el desarrollo
de herramientas que aportan a la realización de los mismos, estas se han ido
especializando en las diferentes fases del proceso de compilación, brindándole
a los desarrolladores una serie de facilidades a la hora de diseñar e implementar
un compilador. En el mundo existen diversas herramientas de apoyo de este tipo,
desarrolladas en diferentes lenguajes de programación, las cuales responden a
los intereses de los múltiples sistemas operativos. Entre las herramientas más
utilizadas se pueden encontrar el Flex, Yacc, Lex, Bison entre otras.

Bison

HERRAMIENTAS Lex/Yacc
TRADICIONALES
Flex

Yacc

ANTLR:(ANother Tool for Language Recognition – otra


HERRAMIENTAS DE herramienta para reconocimiento de lenguajes)
NUEVA GENERACION
JAVACC: (Java Compiler Compiler)

BYACC/JAVA

COCO/JAVA
OTRAS HERRAMIENTAS
JACCIE

JELL

COKTAIL
KITS PARA LA
CONSTRUCCIÓN DE ELI
COMPILADORES
PCCT

AUTOMATAS Y COMPILADORES
UNIVERSIDAD NACIONAL DE TRUJILLO

1. HERRAMIENTAS TRADICIONALES
a) Bison

Es un generador de analizadores sintácticos de propósito general que convierte


una descripción gramatical para una gramática independiente del contexto en un
programa en C que analice esa gramática. Es utilizado en un amplio rango de
analizadores de lenguajes, desde aquellos usados en simples calculadoras de
escritorio hasta complejos lenguajes de programación.

b) Lex

Es un generador de analizador léxico, que sirve para generar los token para la
siguiente fase. La principal característica de Lex es que va a permitir asociar
acciones descritas en C, a la localización de las Expresiones Regulares que se
hayan definido. Para 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 expresión regular,
ejecutará el código asociado a esa regla.

c) Flex

Es una herramienta para generar escáneres: programas que reconocen


patrones léxicos en un texto. Flex lee los ficheros de entrada dados, o la entrada
estándar si no se le ha indicado ningún nombre de fichero, con la descripción de
un escáner a generar. Estas 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 las mismas en diferentes
compiladores desarrollados sobre tecnologías libres. Teniendo en cuenta las
características de las aplicaciones antes mencionadas, se ha escogido para la
realización del compilador las herramientas Yacc y Lex. En muchos de los
compiladores desarrollados en el mundo suelen ser utilizados 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.

d) Yacc

Es un programa para generar analizadores sintácticos. Las siglas del nombre


significan Yet Another Compiler Compiler, es decir, "Otro generador de
compiladores más". Genera un analizador sintáctico (la parte de un compilador
que comprueba que la estructura del código fuente se ajusta a la especificación
sintáctica del lenguaje) basado en una gramática analítica.Yacc genera el código
para el analizador sintáctico en el Lenguaje de programación C.

AUTOMATAS Y COMPILADORES
UNIVERSIDAD NACIONAL DE TRUJILLO

2. HERRAMIENTAS DE NUEVA GENERACION


a) ANTLR (ANother Tool for Language Recognition – otra herramienta para
reconocimiento de lenguajes)

Es una herramienta creada principalmente por Terence Parr, que opera sobre
lenguajes, proporcionando un marco para construir reconocedores (parsers),
intérpretes, compiladores y traductores de lenguajes a partir de las descripciones
gramaticales de los mismos (conteniendo acciones semánticas a realizarse en
varios lenguajes de programación). ANTLR genera un programa que determina
si una sentencia o palabra pertenece a dicho lenguaje (reconocedor), utilizando
algoritmos LL(*) de parsing. Si a dicha gramática, se le añaden acciones escritas
en un lenguaje de programación, el reconocedor se transforma en un traductor
o interprete. Además, proporciona facilidades para la creación de árboles
sintácticos y estructura para recorrerlos. ANTLR es un proyecto bajo licencia
BSD, viniendo con todo el código fuente disponible, y preparado para su
instalación bajo plataformas Linux, Windows y Mac OS X.
Actualmente ANTLR genera código Java, C, C++, C#, Python, Perl, Delphi,
Ada95, JavaScript y Objective-C.

b) JavaCC (Java Compiler Compiler)

Es un generador de analizadores sintácticos de código abierto para el lenguaje


de programación Java, es similar a Yacc en que genera un parser para una
gramática presentada en notación BNF, con la diferencia de que la salida es en
código Java y genera analizadores descendentes. Además agrega un
constructor de árboles conocido como: JJTree, construye árboles de abajo hacia
arriba.

3. OTRAS HERRAMIENTAS
a) BYACC/JAVA

Es una extensión de YACC para generar código JAVA en vez de C/C++, que
genera ficheros de especificaciones igual que YACC y sus salidas son código y
declaraciones de lenguaje escritos en JAVA.

b) COCO/JAVA

Es una herramienta de distribución de Java para Linux, es un generador de


compiladores que a partir de la descripción del lenguaje mediante una gramática
LL genera un analizador sintáctico y un analizador léxico para dicho lenguaje o
sea es un meta compilador.

c) JELL

Es un generador de analizadores sintácticos que genera analizadores


descendentes a partir de gramáticas LL, también es un meta compilador.

AUTOMATAS Y COMPILADORES
UNIVERSIDAD NACIONAL DE TRUJILLO

d) JACCIE

JAVA BASED COMPILER.-Compiler in an Interactive Environment.


Herramienta educativa que se puede utilizar para visualizar las técnicas de
compilación. Dos principales componentes: un generador de analizadores
léxicos y una variedad de generadores sintácticos.

4. KIT PARA LA CONSTRUCCION DE COMPILADORES


a) COKTAIL

Conjunto de herramientas para construir compiladores:


REX: Generador de analizadores léxicos.
LALR: Generador de analizadores sintácticos.
ELL: Generador de analizadores sintácticos.
AST: Generador de árboles sintácticos.
AG: Permite procesar gramáticas atribuidas.

b) ELI

Combina una variedad de herramientas estándar para implementar potentes


estrategias en la construcción de compiladores. Se pueden generar
automáticamente implementaciones de lenguajes completos a partir de las
especificaciones de la aplicación. Contiene librerías de especificaciones
reusables.

c) PCCT

Escrito inicialmente en C++ para generar compiladores en C++. Portado a JAVA


y llamado ANTLR. Consta de 3 herramientas:
ANTLR: Generador de analizadores de sintácticos
DLG: Generador de analizadores léxicos
SORCERER: Generador de árboles sintácticos

AUTOMATAS Y COMPILADORES
UNIVERSIDAD NACIONAL DE TRUJILLO

BIBLIOGRAFIA
https://www.ecured.cu/Herramientas_para_la_construcci%C3%B3n_de_compiladores

http://bloggcompliladores7mo1.blogspot.com/2010/11/unidad-4_20.html

https://sites.google.com/site/teoriadelenguajesycompiladores/herramientas

AUTOMATAS Y COMPILADORES

También podría gustarte