Anda di halaman 1dari 4

PFM-CIS-XA-001

UNIVERSIDAD
NACIONAL
DE LOJA

Area
de la Energa las Industrias y los Recursos Naturales No Renovables

Carrera de Ingeniera en Sistemas

Compiladores
xico
Analizador Le
Chimbo-Coronel, Ver
onica-Paulina
1 Introducci
on
En 1946 se desarrollo la primera computadora digital. En un principio, estas maquinas
ejecutaban instrucciones consistentes en codigos numericos que se
nalaban a los circuitos de la maquina los estados correspondientes a cada operacion, lo que se denomino
lenguaje maquina.
El primer compilador fue escrito por Grace Hopper, en 1952 para el lenguaje de programacion A-0. En 1950 John Backus dirigio una investigacion en IBM sobre un lenguaje
algebraico.
En 1954 se empezo a desarrollar un lenguaje que permita escribir formulas matematicas 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.
La tarea de realizar un compilador no fue facil. El primer compilador de FORTRAN
tardo 18 a
nos-persona en realizarse y era muy sencillo.
El primer compilador autocontenido, es decir, capaz de compilar su propio codigo
fuente fue el creado para Lisp por Hart y Levin en el MIT en 1962. Desde 1970 se ha
convertido en una practica com
un escribir el compilador en el mismo lenguaje que este
compila, aunque Pascal y C han sido alternativas muy usadas.

2 Descripci
on
Un compilador es un programa que lee un programa escrito en un lenguaje (codigo
fuente) y lo traduce a un programa equivalente en otro lenguaje (codigo objeto). En el
proceso se informa al usuario sobre la presencia de errores en el codigo fuente.
Para desarrollar un compilador se debe de guiar mediante las siguientes fases:

Figura 1: Fig.1. Fases de un compilador


En el presente informe se estudiara la primera fase:
Alalizador l
exico
Habitualmente el termino analisis lexico se refiere al tratamiento de la entrada
que produce como salida la lista de tokens. Un token hace alusion a las unidades mas simples que tiene significado. Habitualmente un token o lexema queda
descrito por una expresion regular. Lexico viene del griego lexis, que significa palabra. Perl es, sobra decirlo, una herramienta eficaz para encontrar en que lugar
de la cadena se produce un emparejamiento. Sin embargo, en el analisis lexico, el
problema es encontrar la subcadena a partir de la u
ltima posicion en la que se
produjo un emparejamiento y que es aceptada por una de las expresiones regulares que definen los lexemas del lenguaje dado.
La estructura general del analizador lexico consiste en un bucle en el que se va
recorriendo la entrada, buscando por un emparejamiento con uno de los patrones/lexemas especificados y, cuando se encuentra, se retorna esa informacion al
analziador sintactico. Como no tenemos escrito el analaizador sintactico simplemente iremos a
nadiendo los terminales al final de una lista.

Figura 2: Fig.2. Estructura analizador lexico


Objetivo del Analizador lexico:
Leer caracteres e identificar componentes lexicos (tokens) Filtrar comentarios
Detectar errores lexicos
Ejemplo:
Herramienta JFlex
Definici
on
JFlex es un generador de analizador lexico escrito y utilizado para Java, es
una nueva versioon de JLex
Caractersticas
- Liberado bajo la licencia GPL y esta disponible para su descarga de forma gratuita. - Multiplataforma - Soporte completo con caracteres Unicode Puede ser implementado junto con CUP, BYACC/J y Antlr
Estructura de un archivo de JFlex
- C
oodigo de Usuario
Se colocan los paquetes y clases que se vayan a utilizar o importar. Al final
de la seccion se colocan los dos signos de porcentaje para definir el inicio de
la nueva seccion.
- Opciones y declaraciones
Se incluyen los estados lexicos y declaraciones, cada opcion debe empezar en
una nueva lnea con un %.

- Reglas Lexicogr
aficas
Contiene expresiones regulares y acciones (coodigo java) que se ejecutan cuando el analizador encuentra cadenas asociadas a las expresiones regulares.
3 Conclusiones
- El analizador lexico convierte el programa que va a ser compilado en una serie de
unidades mas complejas que desempe
nan el papel de simbolos terminales para el analizador sintactico.
- Para que el analizador lexico consiga el objetivo de dividir la entrada en partes, tiene
que poder decidir por cada una de esas partes si es un componente separado y, en su
caso, de que tipo.
- Existen diversas herramientas que permiten realizar un analizador lexico tales como:
Lex,Flex,Jlex,Jflex,Antlr,JFlap y SP-PS1.
4 Bibliografa

1 Vi
nuela, P. I., Vi
nuela, P. I., MillOan,
D. B., FernOandez,
P. M., Martnez, P.,
Borrajo, D., ... Millan, D. B. (1997). Lenguajes, gramaticas y automatas: un
enfoque practico. Pearson Educacion.
2 Aho, A. V., Sethi, R., Ullman, J. D. (1998). Compiladores: principios, tecnicas y
herramientas. Pearson Educacion.
3 Gutierrez, J. J., Escalona, M. J., Villadiego, D., Mejas, M. (2005). Comparativa
de herramientas para la ense
nanza de lenguajes relacionales. Actas de las XI
Jornadas de Ense
nanza Universitaria de la Informatica.
4 Sanchis Llorca, F. J., Pascual, C. G. (1986). Compiladores: teora y construccion.
Paraninfo.
5 Vivancos Rubio, E. (2011). Flex. Desarrollo de un analizador lexico usando Flex.

Anda mungkin juga menyukai