Objetivos léxicos y semánticos de los analizadores
Enviado por mirrey05 • 8 de Abril de 2014 • Informe • 286 Palabras (2 Páginas) • 414 Visitas
Introducción
Un analizador léxico o analizador lexicográfico (en inglés scanner) es la primera fase de un compilador consistente en un programa que recibe como entrada el código fuente de otro programa (secuencia de caracteres) y produce una salida compuesta de tokens (componentes léxicos) o símbolos. Estos tokens sirven para una posterior etapa del proceso de traducción, siendo la entrada para el analizador sintáctico (en inglés parser).
La especificación de un lenguaje de programación a menudo incluye un conjunto de reglas que definen el léxico. Estas reglas consisten comumente en expresiones regulares que indican el conjunto de posibles secuencias de caracteres que definen un token o lexema.
En algunos lenguajes de programación es necesario establecer patrones para caracteres especiales (como el espacio en blanco) que la gramática pueda reconocer sin que constituya un token en sí.
Esta etapa está basada usualmente en una máquina de estados finitos. Esta máquina contiene la información de las posibles secuencias de caracteres que puede conformar cualquier token que sea parte del lenguaje (las instancias individuales de estas secuencias de caracteres son denominados lexemas). Por ejemplo, un token de naturaleza entero puede contener cualquier secuencia de caracteres numéricos.
Las utilidades JFlex y CUP se utilizan para construir analizadores léxicos y semánticos, respectivamente.
Objetivos
• General: Investigar sobre JFlex y CUP.
• Específico: Describir el funcionamiento de las herramientas JFlex y CUP.
JFlex
JFlex es un generador de analizadores léxicos para Java. Es una reescritura de la muy útil herramienta JLex, que fue desarrollada por Elliot Berk en la Universidad de Princeton. Como establece Vern Paxson para su herramienta flex basada en C/C++: no comparten ninguna línea de código.
Los objetivos de diseño de JFlex son:
• Soporte rápido para Unicode
• Generación rápida de scanners
• Sintáxis estandarizada
• Plataforma independiente
• Compatibilidad con JLex
Requisitos
• Tener las librerías de java.
• Tener instalado NetBeans.
• Tener JFlex.
• Tener Cup.
...