Herramientas para el diseño de compiladores

Resumen

A partir de los años 50 es necesario un compilador derivado de los lenguajes de alto nivel. Desde entonces, gracias al descubrimiento de técnicas sistemáticas para el manejo de muchas tareas, al desarrollo de buenos lenguajes de implantación, entornos de programación y herramientas de software, el diseño y desarrollo de un compilador se ha simplificado enormemente.

Palabras clave: Compilador, herramientas.

Abstract

From the 50s is necessary a compiler derived from high level languages. Since then, thanks to the discovery of systematic techniques for handling many tasks, the development of good implementation languages, programming environments and software tools, the design and development of a compiler has been significantly simplified.

Keywords: Compiler, tools.

Introducción

La totalidad del software que se ejecuta en las computadoras ha sido escrito en algún lenguaje de programación. Antes de que un programa sea ejecutado en determinada arquitectura hardware, primero es necesario hacer la traducción de este a un programa ejecutable, por lo cual es necesario un compilador. Al día de hoy, son ya distintos los lenguajes de programación utilizados para el desarrollo de software o programas, con la evolución de estos lenguajes ha sido necesaria la implementación de diversos compiladores. Para las diversas fases del proceso de compilación es necesaria una herramienta para lograr la creación del programa objeto o ejecutable. En el presente trabajo se presentan algunas de las herramientas alternativas para el desarrollo de compiladores. Posterior a esta sección se presenta un breve resumen, a continuación se fija el objetivo particular de este trabajo, posteriormente se hace una definición del compilador, y para finalizar se presentan algunas herramientas para el desarrollo de compiladores de acuerdo a las fases de este.

Objetivo

Conocer herramientas utilizadas para la construcción de compiladores.

Definición de compilador

Un compilador, es un programa que recibe como entrada un programa o archivo fuente, lo traduce y obtiene como salida un programa objeto, dentro del proceso de compilación se le dan a conocer al usuario los errores del programa fuente si la sintaxis del mismo no es la correcta de acuerdo al lenguaje de programación.



Figura 1. Proceso de compilación.

Herramientas para el desarrollo de compiladores

En la actualidad existen diversas herramientas para el desarrollo de compiladores, en el presente trabajo se mencionan sólo algunos de los existentes. Dentro de estas herramientas se encuentran las tradicionales y las de nueva generación.
Las herramientas tradicionales:

Las herramientas de nueva generación:

A continuación se mencionan herramientas definiendo algunas de sus características y mencionando en que fase se utiliza.

Conclusión

En este trabajo se conocieron brevemente algunas de las diferentes herramientas que existen para desarrollar compiladores, así como algunas de sus características, ventajas y desventajas de las mismas.
En un trabajo futuro se profundizará sobre la herramienta Yacc, sus características y la aplicación de esta herramienta en el desarrollo de un compilador básico

Referencias

1. Compiladores, principios, técnicas y herramientas; segunda edición; Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman. Ed. Pearson

2. Yacc: Yet Another Cso Compressor; http://yacc.pspgen.com/

3. Gold Parsing System;http://goldparser.org/

4. CUP;http://www.cs.princeton.edu/~appel/modern/java/CUP/manual.html

5. ANTLR: ANother Tool for Language Recognition;http://www.antlr.org/

6. JAVACC: Java Compiler Compiler; http://javacc.java.net/

[a] Profesor Investigador, Escuela Superior de Huejutla de la Universidad Autónoma del Estado de Hidalgo. <<

[b] Alumno, Escuela Superior de Huejutla de la Universidad Autónoma del Estado de Hidalgo. <<