Documentacion De Minicompilador
Enviado por lui93 • 10 de Junio de 2015 • 4.331 Palabras (18 Páginas) • 152 Visitas
UNIVERSIDAD GERARDO BARRIOS
INGENIERIA EN SISTEMAS Y REDES INFORMATICAS
Minicompilador C Sharp | Compiladores e Interpretes
INDICE
PARTE I: MARCO TEORICO: 3
INTRODUCCION 4
HISTORIA 5
Tipos de compiladores 6
Fase de análisis 8
Parte II: Descripción técnica del compilador y recursos utilizados. 11
Detalles del compilador. 12
Descripción del Software utilizado para compilación 12
Convenciones léxicas 13
Tokens o lenguaje soportado 18
Descripción general del compilador 19
Código fuente del analizador léxico 21
Código fuente del analizador sintáctico y Código fuente del analizador semántico 25
Descripción de la interfaz del editor (capturas de pantalla) 26
Ejemplos de prueba 27
Parte III: Conclusión, recomendaciones, bibliografía, glosario, etc 30
Conclusión 31
Recomendaciones 31
Bibliografía 31
Glosario 31
PARTE I: MARCO TEORICO
INTRODUCCION
En 1946 se desarrolló la primera computadora digital. En un principio, estas máquinas ejecutaban instrucciones consistentes en códigos numéricos que señalaban a los circuitos de la máquina los estados correspondientes a cada operación, lo que se denominó lenguaje máquina.
Ventaja: autónomo y eficiente
Una gran ventaja de los programas que se compilan es que son unidades autónomas listas para ser ejecutadas. Debido a que ya se encuentran compiladas en archivos binarios de lenguaje máquina, no es necesaria una segunda aplicación o paquete que el usuario deba mantener actualizado.
Ventaja: optimización de hardware
Si bien estar restringido a un paquete de hardware específico tiene sus desventajas, compilar un programa también puede incrementar el desempeño de este último. Los usuarios pueden enviar opciones específicas a los compiladores, relacionadas con los detalles del hardware en el que se ejecutará el programa.
Desventaja: tiempos de compilación
Una de las desventajas de tener un compilador es que verdaderamente debe compilar código fuente. Mientras que los pequeños programas que muchos desarrolladores novatos codifican requieren cantidades triviales de tiempo para ser compilados, las grandes suites de aplicaciones pueden tardar cantidades significativas de tiempo en compilar.
Fase de análisis
Análisis léxico
Artículo principal: Analizador léxico
El análisis léxico constituye la primera fase, aquí se lee el programa fuente de izquierda a derecha y se agrupa en componentes léxicos (tokens), que son secuencias de caracteres que tienen un significado. Además, todos
HISTORIA
En 1946 se desarrolló la primera computadora digital. En un principio, estas máquinas ejecutaban instrucciones consistentes en códigos numéricos que señalaban a los circuitos de la máquina los estados correspondientes a cada operación, lo que se denominó lenguaje máquina.
Pronto los primeros usuarios de estos ordenadores descubrieron la ventaja de escribir sus programas mediante claves más fáciles de recordar que esos códigos; al final, todas esas claves juntas se traducían manualmente a lenguaje máquina. Estas claves constituyen los llamados lenguajes ensambladores.
Pese a todo, el lenguaje ensamblador seguía siendo el de una máquina, pero más fácil de manejar. Los trabajos de investigación se orientaron hacia la creación de un lenguaje que expresara las distintas acciones a realizar de una manera lo más sencilla posible para una persona. El primer compilador fue escrito por Grace Hopper, en 1952 para el lenguaje de programación A-0. En 1950 John Backus dirigió una investigación en IBM sobre un lenguaje algebraico. En 1954 se empezó a desarrollar un lenguaje que permitía escribir fórmulas matemáticas de manera traducible por un ordenador; le llamaron FORTRAN (FORmulae TRANslator). Fue el primer lenguaje de alto nivel y se introdujo en 1957 para el uso de la computadora IBM modelo 704.
Surgió así por primera vez el concepto de un traductor como un programa que traducía un lenguaje a otro lenguaje. En el caso particular de que el lenguaje a traducir es un lenguaje de alto nivel y el lenguaje traducido de bajo nivel, se emplea el término compilador.
La tarea de realizar un compilador no fue fácil. El primer compilador de FORTRAN tardó 18 años-persona en realizarse y era muy sencillo. Este desarrollo de FORTRAN estaba muy influenciado por la máquina objeto en la que iba a ser implementado. Como un ejemplo de ello tenemos el hecho de que los espacios en blanco fuesen ignorados, debido a que el periférico que se utilizaba como entrada de programas (una lectora de tarjetas perforadas) no contaba correctamente los espacios en blanco.
El primer compilador auto contenido, es decir, capaz de compilar su propio código fuente fue el creado para Lisp por Hart y Levin en el MIT en 1962. Desde 1970 se ha convertido en una práctica común escribir el compilador en el mismo lenguaje que este compila, aunque Pascal y C han sido alternativas muy usadas.
Crear un compilador auto contenido genera un problema llamado bootstrapping, es decir el primer compilador creado para un lenguaje tiene que o bien ser compilado por un compilador escrito en otro lenguaje o bien compilado al ejecutar el compilador en un intérprete.
Tipos de compiladores
Esta taxonomía de los tipos de compiladores no es excluyente, por lo que puede haber compiladores que se adscriban a varias categorías:
• Compiladores cruzados: generan código para un sistema distinto del que están funcionando.
• Compiladores optimizadores: realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.
• Compiladores de una sola pasada: generan el código máquina a partir de una única lectura del código fuente.
• Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de poder producir el código máquina.
• Compiladores JIT (Just In Time): forman parte de un intérprete y compilan partes del código según se necesitan.
Pauta de creación de un compilador: En las primeras épocas de la informática, el software de los compiladores era considerado como uno
...