tiny compiler

19
INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación PRÁCTICA DE LABORATORIO PRÁCTICA No. LABORATORIO DE Computo #2 FECHA DE EFECTIVIDAD DURACIÓN (HORA) 2 NOMBRE DE LA PRÁCTICA “Compilador TINY” 29 octubre 2014 2 1. INTRODUCCIÓN Un compilador se compone internamente de vanas etapas, o fases, que realizan distintas operaciones lógicas. Es útil pensar en estas fases como en piezas separadas dentro del compilador, y pueden en realidad escribirse como operaciones codificadas separadamente aunque en la práctica a menudo se integren juntas. Las fases de un compilador se ilustran en la figura 1.1, junto con los tres componentes auxiliares que interactúan con alguna de ellas o con todas: la tabla de literales, la tabla de símbolos y el manejador de errores. Aquí describiremos brevemente cada una de las fases. CARRERA PLAN DE ESTUDIO CLAVE DE ASIGNATURA NOMBRE DE ASIGNATURA ING. SISTEMAS COMPUTACIONALES ISIC-2004-296 SCD-1016 LENGUAJES AUTÓMATAS II Página 1 de 3 Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales FECHA: 12 de septiembre 2014 ITLAC-AC-IT-001 REVISION:

Upload: jesues-aengel-maertinez-mitnick

Post on 24-Dec-2015

41 views

Category:

Documents


0 download

DESCRIPTION

Tiny Compiler

TRANSCRIPT

Page 1: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

PRÁCTICA No. LABORATORIO DE Computo #2 FECHA DE EFECTIVIDAD

DURACIÓN (HORA)

2 NOMBRE DE LA PRÁCTICA “Compilador TINY” 29 octubre 2014 2

1. INTRODUCCIÓN

Un compilador se compone internamente de vanas etapas, o fases, que realizan distintas operaciones lógicas. Es útil pensar en estas fases como en piezas separadas dentro del compilador, y pueden en realidad escribirse como operaciones codificadas separadamente aunque en la práctica a menudo se integren juntas. Las fases de un compilador se ilustran en la figura 1.1, junto con los tres componentes auxiliares que interactúan con alguna de ellas o con todas: la tabla de literales, la tabla de símbolos y el manejador de errores. Aquí describiremos brevemente cada una de las fases.

CARRERA PLAN DE ESTUDIO CLAVE DE ASIGNATURA NOMBRE DE ASIGNATURA ING. SISTEMAS

COMPUTACIONALES

ISIC-2004-296

SCD-1016 LENGUAJES AUTÓMATAS II

Página 1 de 3

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION:

Page 2: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

Página 2 de 3

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION:

Page 3: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

ANALIZADOR LÉXICO O RASTREADOR (SCANNER)

Esta fase del compilador efectúa la lectura real del programa fuente, el cual generalmente está en la forma de un flujo de caracteres. El rastreador realiza lo que se conoce como análisis léxico: recolecta secuencias de caracteres en unidades significativas denominadas tokens, las cuales son como las palabras de un lenguaje natural, como el inglés. De este modo, se puede imaginar que un rastreador realiza una función similar al deletreo.

Como ejemplo, considere la siguiente línea de código, que podría ser parte de un programa en C: a [index] = 4 + 2

Este código contiene 12 caracteres diferentes de un espacio en blanco pero sólo 8 tokens:

Cada token se compone de uno o más caracteres que se reúnen en una unidad antes de que ocurra un procesamiento adicional. Un analizador léxico puede realizar otras funciones junto con la de reconocimiento de tokens. Por ejemplo, puede introducir identificadores en la tabla de símbolos, y puede introducir literales en la tabla de literales (las literales incluyen constantes numéricas tales como 3.1415926535 y cadenas de texto entrecomilladas como "iHola,mundo!").

2. OBJETIVO (COMPETENCIA) Que el estudiante conozca y aprenda a realizar y manipular un analizador léxico

3. FUNDAMENTO

Página 3 de 3

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION:

Page 4: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

IMPLEMENTACIÓN DE UN ANALIZADOR LEXICO TlNY ("DIMINUTO") Ahora deseamos desarrollar el código real para un analizador léxico con el fin de ilustrar los conceptos estudiados hasta ahora en este capítulo. Se hará esto para el lenguaje TlNY que se presentó de manera informal en el capítulo I (sección 1.7) del libro Construcción de compiladores principios y prácticas. Después analizaremos diversas cuestiones de implementación practica planeadas por este analizador Léxico. Implementación de un analizador léxico para el lenguaje de muestra TINY Los tokens de TINY caen dentro de tres categorías típicas: palabras reservadas, símbolos especiales y "otros" tokens. Existen ocho palabras reservadas, con significados familiares (aunque no necesitamos conocer sus semánticas hasta mucho después). Existen 10 símbolos especiales, que dan las cuatro operaciones aritméticas básicas con enteros, dos operaciones de comparación (igual y menor que), paréntesis, signo de punto y coma y asignación. Todos los símbolos especiales tienen un carácter de longitud, excepto el de asignación, que tiene dos.

Página 4 de 3

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION:

Page 5: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

Un compilador se compone internamente de vanas etapas, o fases, que realizan distintas operaciones lógicas. Es útil pensar en estas fases como en piezas separadas dentro del compilador, y pueden en realidad escribirse como operaciones codificadas separadamente aunque en la práctica a menudo se integren juntas. Las fases de un compilador se ilustran en la figura 1.1, junto con los tres componentes auxiliares que interactúan con alguna de ellas o con todas: la tabla de literales, la tabla de símbolos y el manejador de errores. Aquí describiremos brevemente cada una de las fases.

4. ESPECIFICAR CORRELACION CON OTROS TEMAS

- Estructura de datos - Lenguajes autómatas I - Inteligencia Artificial - Matemáticas discretas

5. PROCEDIMIENTO (DESCRIPCIÓN) 14

EQUIPO NECESARIO MATERIAL DE APOYO COMPUTADORA

INTERNET COMPILADOR INTERPRETE YOUTUBE LIBRO ”Construcción de compiladores principios y práctica”

6. DESARROLLO DE LA PRÁCTICA

Página 5 de 3

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION:

Page 6: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

Página 6 de 3

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION:

Page 7: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

Página 7 de 3

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION:

Page 8: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

Página 8 de 3

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION:

Page 9: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

Página 9 de 3

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION:

Page 10: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

Página 10 de

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION:

Page 11: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

Página 11 de

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION:

Page 12: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

Página 12 de

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION:

Page 13: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

Página 13 de

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION:

Page 14: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

Página 14 de

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION:

Page 15: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

Página 15 de

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION:

Page 16: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

Página 16 de

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION:

Page 17: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

Página 17 de

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION:

Page 18: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

Página 18 de

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION:

Page 19: Tiny Compiler

INSTITUTO TECNOLOGICO DE LÁZARO CÁRDENAS Departamento de Sistemas y Computación

PRÁCTICA DE LABORATORIO

7. SUGERENCIAS DIDACTICAS Programas para diseño UML: Día, CASE ESTUDIO.

8. RESULTADOS Y CONCLUSIONES Con la elaboración de esta práctica pudimos comprobar y aprender a desarrollar un compilador léxico en este caso el compilador TINY, se pudo apreciar cómo interactúan los compones del compilador con cada auxiliar por separado desde el manejador de errores hasta la tabla de símbolos. Así como los componentes de cada tokens.

9. ANEXOS

10. BIBLIOGRAFIA Y REFERENCIAS

http://www.ivlabs.org/home/?p=1800 http://dia.uptodown.com/

Página 19 de

Elaboró: Cortés Jimenez Miriam Leticia Martínez Bello Jesús Ángel Alquisira Martínez Romina Badillo Ramírez Alfredo Valencia Gutiérrez Georgina

Revisó: Ing. Cid Rojas Jesús Daniel Autorizó: M.C. Susana García Morales

FECHA: 12 de septiembre 2014

ITLAC-AC-IT-001 REVISION: