Informe Analizador Lexico

8
UNIVERSIDAD NAC ANTONIO ABAD CARRERA PROFESIO INFORMATICA Y A CURSO : Const DOCENTE : Ing. L ALUMNOS : Carre Gam CIONAL DE SAN DEL CUSCO ONAL DE INGENIERIA Y DE SISTEMAS ANALIZADOR LEXICO trucción de Compiladores. Lino Flores. eño P. Irwing Dario Código: marra Salas Jisbaj Código: Cusco – Perú 2011 UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO CARRERA PROFESIONAL DE INGENIERIA INFORMATICA Y DE SISTEMAS ANALIZADOR LEXICO : 070684 : 080738 Cusco – Perú 2011

Transcript of Informe Analizador Lexico

Page 1: Informe Analizador Lexico

UNIVERSIDAD NACIONAL DE SANANTONIO ABAD DEL CUSCO

CARRERA PROFESIONAL DE INGENIERIAINFORMATICA Y DE SISTEMAS

ANALIZADOR LEXICO

CURSO : Construcción de Compiladores.

DOCENTE : Ing. Lino Flores.

ALUMNOS : Carreño P. Irwing Dario Código: 070684

Gamarra Salas Jisbaj Código: 080738

SEMESTRE: 2008 - IICusco – Perú

2011

UNIVERSIDAD NACIONAL DE SANANTONIO ABAD DEL CUSCO

CARRERA PROFESIONAL DE INGENIERIAINFORMATICA Y DE SISTEMAS

ANALIZADOR LEXICO

CURSO : Construcción de Compiladores.

DOCENTE : Ing. Lino Flores.

ALUMNOS : Carreño P. Irwing Dario Código: 070684

Gamarra Salas Jisbaj Código: 080738

SEMESTRE: 2008 - IICusco – Perú

2011

UNIVERSIDAD NACIONAL DE SANANTONIO ABAD DEL CUSCO

CARRERA PROFESIONAL DE INGENIERIAINFORMATICA Y DE SISTEMAS

ANALIZADOR LEXICO

CURSO : Construcción de Compiladores.

DOCENTE : Ing. Lino Flores.

ALUMNOS : Carreño P. Irwing Dario Código: 070684

Gamarra Salas Jisbaj Código: 080738

SEMESTRE: 2008 - IICusco – Perú

2011

Page 2: Informe Analizador Lexico

Construcción de Compiladores |Ing. Informática y de Sistemas

2

INTRODUCCIÓN

Entre las fases del proceso de compilación, que son ejecutadas a través de distintasetapas, están la de análisis y síntesis; fases que son ejecutadas de forma secuencial.

Para poder cumplir con la fase de análisis el compilador realiza una serie de accionesdiferentes, agrupadas en etapas secuenciales dependientes principalmente dellenguaje fuente, están la de análisis léxico, sintáctico y semántico, ejecutadas en eseorden. La etapa de análisis léxico es realizado por un analizador léxico (tambiénllamado scanner), quien agrupa los caracteres individuales en entidades lógicas, queposteriormente serán empleadas por las etapas siguientes de la fase de análisis.

Este documento constituye un instrumento orientador, que puede calificarse comopautas para la realización de un analizador léxico a partir de la herramienta JFLEX, lacual genera automáticamente analizadores léxicos partiendo de una especificaciónbasada en expresiones regulares. Pautas que resaltan lo siguiente:

1. Reconocer las subcadenas que corresponde a tokens.2. Regresar el valor o lexema de un token, es decir el par “token-lexema”.

Page 3: Informe Analizador Lexico

Construcción de Compiladores |Ing. Informática y de Sistemas

3

I. GENERALIDADES

A. OBJETIVOS1. GENERAL

a) Realización de un analizador léxico a partir de la herramienta JFLEX.

2. ESPECIFICOS

a) Reconocer las subcadenas que corresponden a tokens.b) Regresar el valor o lexema de un token.

Page 4: Informe Analizador Lexico

Construcción de Compiladores |Ing. Informática y de Sistemas

4

II. MARCO TEORICO

A. HTML

Siglas de HyperText Markup Language (Lenguaje de Marcado de Hipertexto),es el lenguaje de marcado predominante para la elaboración de páginas web.Es usado para describir la estructura y el contenido en forma de texto, asícomo para complementar el texto con objetos tales como imágenes. HTML seescribe en forma de «etiquetas», rodeadas por corchetes angulares (<,>).HTML también puede describir, hasta un cierto punto, la apariencia de undocumento, y puede incluir un script (por ejemplo Javascript), el cual puedeafectar el comportamiento de navegadores web y otros procesadores deHTML.

1. ELEMENTOS

Los elementos son la estructura básica de HTML. Los elementos tienendos propiedades básicas: atributos y contenido. Cada atributo y contenidotiene ciertas restricciones para que se considere válido al documentoHTML. Un elemento generalmente tiene una etiqueta de inicio y unaetiqueta de cierre. Los atributos del elemento están contenidos en laetiqueta de inicio y el contenido está ubicado entre las dos etiquetas.Algunos elementos, tales como <br>, no tienen contenido ni llevan unaetiqueta de cierre.

2. ATRIBUTOS

La mayoría de los atributos de un elemento son pares nombre-valor,separados por un signo de igual «=» y escritos en la etiqueta de comienzode un elemento, después del nombre de éste. El valor puede estarrodeado por comillas dobles o simples, aunque ciertos tipos de valorespueden estar sin comillas en HTML (pero no en XHTML). De todasmaneras, dejar los valores sin comillas es considerado poco seguro. Encontraste con los pares nombre-elemento, hay algunos atributos queafectan al elemento simplemente por su presencia (tal como el atributoismap para el elemento img).

B. ANALIZADOR LEXICO

1. CONCEPTO

El análisis léxico constituye la primera fase del Proceso de Compilación,en esta fase se lee el programa fuente de izquierda a derecha y seagrupa en componentes léxicos o tokens, que son secuencias decaracteres que tienen un significado. Además, todos los espacios enblanco, líneas en blanco, comentarios y demás información innecesariase elimina del programa fuente. También se comprueba que los

Page 5: Informe Analizador Lexico

Construcción de Compiladores |Ing. Informática y de Sistemas

5

símbolos del lenguaje (palabras clave, operadores,...) se han escritocorrectamente.

Para el caso de nuestro Trabajo, utilizamos el JFLEX que es unanalizador léxico prediseñado para la utilización con el lenguaje Java. Suespecificación se realizó a continuación.

2. JFLEX

Es una herramienta que genera Analizadores Léxicos mediante ellenguaje de programación JAVA, es capaz de generar analizadoresléxicos, es decir, construye, de forma rápida y sencilla programas queanalicen las cadenas que aparecen en un fichero de texto y realicendiversas acciones en respuesta a ellas.

3. ESTRUCTURA JFLEX

Un fichero JFlex se divide en 3 partes:

Código de usuario%%Directivas JFLex%%Reglas para las expresiones regulares

• Código de UsuarioEn esta sección se incluyen sentencias propias de Java deimportación, así como también la definición de clases yestructura de datos que sean necesarios para laconstrucción del analizador léxico a generar.

• Directivas JFLEXSe utiliza para particularizar algunas características delexplorador generado y, también, es donde se declaran lasmacros y estados que se usarán en la definición de las reglasléxicas.

Ejemplo:DIGITO = [0-9]IDENT = [a-z][a-z0-9]*

• Reglas LéxicasContiene las reglas léxicas que se utilizarán para generar elexplorador.

Page 6: Informe Analizador Lexico

Construcción de Compiladores |Ing. Informática y de Sistemas

6

III. DESARROLLO DEL TRABAJOPara cumplir con el objetivo general del proyecto a partir de los objetivosespecíficos se desarrolló las siguientes etapas, mostradas a continuación.

A. RECONOCER LAS SUBCADENAS QUE CORRESPONDEN A TOKENS

Esta etapa comprende la creación de un fichero con la extensión “flex”, quecontiene las expresiones regulares codificadas (reglas léxicas), para laobtención de las subcadenas correspondientes a cada token especificado, delscript en el lenguaje de programación HTML que se ingresa para su respectivoanálisis lexico.

Asi mismo en este fichero contiene directivas JFLEX, y algunas sentencias javanecesarias para la generación de un archivo con la extensión java.

B. REGRESAR EL PAR “TOKEN-LEXEMA”

En esta etapa el JFLEX produce la generación de un código con la extensiónjava, que por defecto es unca clase con nombre “yylex”.

Una vez obtenida dicha clase, se procede a mostrar el par “token-lexema”producto del análisis al que es sometido el script ingresado, que para laspruebas a realizarse se requiere de un archivo de texto plano con sentenciasHTML.

El resultado se muestra en un formulario, donde se tiene los botones paracargar el archivo, y para realizar el análisis; además de una área de textodonde se visualiza los pares “token-lexema”.

Asi mismo para el proceso de análisis se hacen uso de funciones propias de laclase generada por el JFLEX, como:

1. YYTEX: Devuelve el valor de la entidad lógica.2. YYLINE: Devuelve el número de línea de la entidad lógica en el textoingresado.3. YYCOLUMN: Devuelve el número de columna de la entidad lógica en eltexto ingresado.

Page 7: Informe Analizador Lexico

Construcción de Compiladores |Ing. Informática y de Sistemas

7

El siguiente gráfico muestra todo el proceso de generación del analizador léxicoy así como del análisis léxico.

JFLEXFichero deEspecificacionAnalizador.jflex

Page 8: Informe Analizador Lexico

Construcción de Compiladores |Ing. Informática y de Sistemas

8

IV. CONCLUSIONES

El JFLEX es una potente herramienta para la generación de analizadoresléxicos a partir de expresiones regulares, debido a que es una herramientamultiplataforma.

La aplicación de los temas estudiados; como autómatas, expresionesregulares; en cursos previos han sido de vital importancia para el cumplimientode este proyecto.

Se ha podido comprobar que la etapa de análisis léxico, constituye una parteimportante del proceso de compilación ya que su salida es la entrada para lasdemás etapas de dicho proceso.

V. BIBLIOGRAFIA

http://es.wikipedia.org/wiki/HTML (Esta página fue modificada por última vez el24 jun 2011, a las 03:20.)

https://sites.google.com/site/tutoriasdeingenieria/lenguajes-de-programacion/Manejo-de-archivos-en-java-swing---Netbeans

http://download.oracle.com/javase/tutorial/uiswing/examples/components/FileChooserDemoProject/src/components/FileChooserDemo.java

http://download.oracle.com/javase/tutorial/uiswing/components/filechooser.html http://forums.netbeans.org/topic39938.html http://crysol.org/es/node/819 http://jflex.de/docu.html http://jflex.de/