creacion de UN compilador

Páginas: 5 (1071 palabras) Publicado: 22 de marzo de 2013
Revisión De Requerimientos:
INTRODUCCION:
En esta asignatura entenderemos el concepto de compilador y entender cómo logra la traducción de un autómata en un lenguaje (compilador). Realizar lo que es el código fuente para así lograr el objetivo del curso que es lograr tener un compilar en un tiempo estimado de 3 meses. Específicamente se estará utilizando el lenguaje C++ para larealización del proyecto.
Objetos:
• Estudiar el comportamiento de los intérpretes y compiladores
• Diseñar un compilador e implementarlo
Conocimientos adquiridos:
Intérprete: Es un programa que lee una línea a un programa escrito en un lenguaje; el lenguaje fuente, y lo va traduciendo a un código intermedio, para ejecutarlo.
Compilador: Programa que lee totalmente un programaescrito en un lenguaje; el lenguajes fuente, y lo traduce a un programa que equivale en otro lenguaje, el lenguaje objeto.
Diseño:











Desarrollo:
Objetivo de un compilador
El objetivo es, básicamente es traducir un programa (o texto) escrito en un lenguaje “fuente”, que llamaremos programa fuente, en un equivalente en otro lenguaje denominado “objeto”, al que llamaremosprograma o código objeto. Si el programa fuente es correcto (pertenece al lenguaje formado por los programas correctos), podrá hacerse tal traducción; si no, se deseará obtener un mensaje de error (o varios) que permita determinar lo más claramente posible los orígenes de la incorrección.
La traducción podrá hacerse en dos formas:
Interpretación: la traducción se hace “frase a frase”
Compilación:la traducción se hace del texto completo

Concentraremos nuestra atención en el segundo de los métodos.
1. La prueba de frontend (lexer,parser(arboles de parseo),análisis semántico)
• Árbol de sintaxis abstracta
• Las posibles reducciones de la gramática
2. Verificación del Frontend:
• Aquí tenemos que verificar la rutina que hace para identificar lo que entra y sale.
3. Pruebasdel Backend (GENERACION DEL CODIGO)
• generación de código ensamblador
4. Verificación de Backend
• se lleva a cabo la generación de código objeto

Entorno de un compilador
Es frecuente que, además del compilador, se utilicen otros programas para crear un código objeto ejecutable. Un esquema típico es el que se describe a continuación.
La estructura del programa fuente se escribe,usando algún programa de edición de texto (por ejemplo vi), y puede incluir texto en lenguaje fuente y algunas órdenes para el preprocesador. Este realizará algunas tareas, como eliminación de comentarios, expansión de macros (#IF . . . ), inclusión de archivos (#include . . . ), sustitución de constantes (#define . . . ), o algunas extensiones del lenguaje fuente.
El compilador traducirá el resultadodel pre proceso obteniendo un programa equivalente en lenguaje ensamblador, que a su vez será traducido por el ensamblador a código máquina re localizable, en el cual las direcciones serán relativas a ciertas posiciones de origen, y quizás algunas llamadas a rutinas no estén resueltas.
Finalmente, el editor de carga y enlace (o “montador”, o “link”) resolverá las llamadas a rutinas,incluyéndolas a partir de otros objetos de biblioteca si procede, y obtendrá direcciones absolutas, de modo que ya se dispondrá del código máquina absoluto ejecutable.
Fases del proyecto:
Análisis léxico
La cadena de entrada se recibe como una sucesión de caracteres. El análisis léxico agrupa los caracteres en secuencias con significado colectivo y mínimo en el lenguaje, llamadas componentes léxicos(palabras o “token”), con ciertos atributos léxicos. En el ejemplo, se detectarían 7:

1. El identificador de posición
2. El operador de asignación :=
3. El identificador inicial
4. El operador +
5. El identificador de velocidad
6. El operador *
7. La constante numérica 60
Cada vez que se detecta un nuevo identificador, se anota una entrada en la tabla de símbolos.
El lenguaje de entrada...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Compiladores
  • Compiladores
  • Compilador
  • COMPILADORES
  • Compiladores
  • Compiladores
  • Compiladores
  • compiladores

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS