Vous êtes sur la page 1sur 7

Implementación de análisis léxico y sintáctico

IMPLEMENTACIÓN DE ANÁLISIS LÉXICO Y SINTÁCTICO PARA UNA


GRAMÁTICA REGULAR

Implementation Of Lexical And Syntatic Analysis For A Regular Grammar


Jorge Chavarría1 Rosa Mio1 Sergio Morera1 Aron Sánchez1
Elki Solano1 Alexandra Quinde1 Laura Bazán 1

Universidad Privada del Norte – Cajamarca


1

Resumen.
El desarrollo de este trabajo tuvo como objetivo principal desarrollar e implementar el analizador
léxico y sintáctico para una gramática regular, para esto se realizaron diferentes pasos como
objetivos secundarios que fueron aplicar conceptos básicos de expresión regular, componentes
léxicos, patrones, lexemas, derivaciones sucesivas y arboles sintácticos. Asimismo, se
implementó el analizador léxico para explorar una gramática regular mediante el software Flex.
Finalmente, se implementó el analizador sintáctico para reconocer una gramática regular
mediante el software Bison. El alcance estuvo ligado al desarrollo de una gramática mediante los
métodos de análisis sintáctico y léxico implementado en software ya que en compiladores es de
uso frecuente. El programa utilizado fue Bison, éste es un programa generador de analizadores
sintácticos de propósito general perteneciente al proyecto GNU disponible para prácticamente
todos los sistemas operativos, se usa normalmente acompañado de Flex para análisis léxico. Se
logró desarrollar e implementar el analizador léxico y sintáctico para una gramática regular.
Palabras Reservadas. Léxico, Sintáctico, Flex, Bison, patrón, lexema, expresión regular.

Abstract
The main objective of the development of this work was to develop and implement the lexical and
syntactic analyzer for a regular grammar, for this you can see how the principles of regular
expression, lexical components, patterns, lexemes, successive derivations and syntactic trees
are used. Likewise, the lexical analyzer was implemented to explore a regular grammar using
Flex software. Finally, the parser was implemented to recognize a regular grammar using the
Bison software. The scope was linked to the development of a grammar through the methods of
syntactic and lexical analysis implemented in the software and in compilers is often used. The
program used was Bison, this is the program generator of general purpose synthetic analyzers,
the GNU project available for all operating systems, it is normally used together with Flex for
lexical analysis. The lexical and syntactic analyzer will be developed and implemented for a
regular grammar.

Keywords

Lexicon, syntactic, flex, bison, pattern, lexeme, regular expression.

pág. 1
Implementación de análisis léxico y sintáctico

INTRODUCCIÓN

Diferentes lenguajes de programación tienen reglas que describen la estructura


sintáctica de programas bien formados, estos parten desde un programa que se
compone de bloques, un bloque de proposiciones, una proposición de expresiones, una
expresión de componentes léxicos, y así sucesivamente. Se puede describir la sintaxis
de las construcciones de los lenguajes de programación por medio de gramáticas de
contexto libre o notación BN (Rojas, 2005).

A partir de esto se tiene como objetivo principal desarrollar e implementar el análisis


léxico y sintáctico para una gramática regular, para esto se realizarán diferentes pasos
como objetivos secundarios que son aplicar conceptos básicos de expresión regular,
componentes léxicos, patrones, lexemas, derivaciones sucesivas y arboles sintácticos.
Asimismo, implementar el analizador léxico para explorar una gramática regular
mediante el software Flex. Finalmente, implementar el analizador sintáctico para
reconocer una gramática regular mediante el software Bison.

El alcance está ligado al desarrollo de una gramática mediante los métodos de análisis
sintáctico y léxico implementado en software ya que en compiladores es de uso
frecuente, pero para entenderlo mejor explicaremos que el análisis sintáctico es la fase
del analizador que se encarga de chequear el texto de entrada en base a una gramática
dada y en caso de que el programa de entrada sea válido, suministra el árbol sintáctico
que lo reconoce, Asimismo podemos afirmar a diferencia del sintáctico el análisis léxico
es el que se encarga de buscar los componentes léxicos o palabras que componen el
programa fuente, según unas reglas o patrones.

Entonces para el analizador sintáctico se hará uso de software Bison que es un


programa generador de analizadores sintácticos de propósito general perteneciente al
proyecto GNU disponible para prácticamente todos los sistemas operativos y para el
analizador léxico usaremos Flex que es un generador de analizador léxico rápido, una
herramienta para generar programas que realizan la comparación de patrones en el
texto.

pág. 2
Implementación de análisis léxico y sintáctico

DESARROLLO

Para el desarrollo se dividirá la metodología por secciones para mayor claridad como
son: lenguajes y gramática, análisis Léxico, análisis sintáctico. partiendo de conceptos
entendibles y bien estructurados para un buen entendimiento.

LENGUAJES Y GRAMÁTICA.

Según Alfonseca Moreno, de la Cruz Echeandía, Ortega de la Puente, & Pulido


Cañabate (2006) afirman que: “El estudio de los lenguajes se divide en el análisis de la
estructura de las frases (gramática) y de su significado (semántica)”.

También se menciona que: “Chomsky clasificó las gramáticas y los lenguajes formales
de acuerdo a una jerarquía de cuatro grados, cada uno de los cuales contiene a todos
los siguientes:

 El grado más general se llama “gramática del tipo 0 de Chomsky”: A ésta gramática
no se le impone restricción alguna. En consecuencia, el conjunto de los lenguajes
que representan coincide con el de todos los lenguajes posibles.
 El segundo grado es el de las “gramáticas del tipo 1 de Chomsky” o “lenguajes
sensibles al contexto”: Estas introducen algunas limitaciones en la estructura de las
frases, aunque se permite que le valor de las palabras dependa de su posición en
la frase, es decir, de su contexto.
 Las gramáticas del tercer grado son las del “tipo 2 de Chomsky”, también llamadas
“lenguajes independientes del contexto”: Aquí se restringe más la libertad de
formación de las reglas gramaticales, en las gramáticas de este tipo, el valor
sintáctico de una palabra es independiente de su posición o frase
 En el cuarto y último grado se encuentran las “gramáticas del tipo 3 de Chomsky”,
que tienen una estructura más sencilla y corresponden a los “lenguajes regulares”.

GRAMÁTICA

Alfonseca Moreno, de la Cruz Echeandía, Ortega de la Puente, & Pulido Cañabate


(2006) afirman que: “gramática es aquella que describe la estructura de las frases y de
las palabras de un lenguaje. “

EXPRESIÓN REGULAR:

Para Alfonseca Moreno, de la Cruz Echeandía, Ortega de la Puente, & Pulido Cañabate
(2006) afirman que: “Una expresión regular es una forma abreviada de representar
cadenas de caracteres que se ajustan a un determinado patrón, al conjunto de cadenas
generadas por dichas reglas de patrón se les denomina “lenguaje generado por

pág. 3
Implementación de análisis léxico y sintáctico

expresión regular”. Estas expresiones están definidas sobre un alfabeto y son cadenas
formadas por el mismo más una serie de operadores llamados meta caracteres.”

Para nuestro desarrollo haremos uso de la siguiente expresión regular:

𝒃∗ 𝒂𝒃(𝒂𝒃|𝒃𝒂)∗ (𝒂𝒂|𝒃𝒃)∗ (𝒂|𝒃)∗

CONCLUSIONES

 Finalmente concluimos, que se logró desarrollar e implementar el analizador léxico


y sintáctico para una gramática regular.

 Se alcanzó definir y comprender terminologías como; expresión regular,


componentes léxicos, patrones, lexemas,derivaciones sucesivas y arboles
sintácticos en el desarrollo del documento.
pág. 4
Implementación de análisis léxico y sintáctico

 El analizador léxico nos ayudó a definir la secuencia de tokens declarados para


nuestra expresión regular, validando su reconocimiento de la tabla de símbolos.

 El analizador sintáctico evaluó su reconocimiento valido de acuerdo a las reglas


mostrando su respectivo parse de análisis.

RECOMENDACIONES

 Se recomienda a futuros desarrolladores fortalecer los conocimientos en el uso


de las herramientas jflex y bison para la realización de proyectos con gramáticas
regulares determinadas y no de manera general como lo realizan los
compiladores tradicionales.

 Para un mejor desarrollo se recomienda la implementación de análisis léxico,


análisis sintáctico y análisis semántico para una mejor implementación y
reconocimiento a nivel de compiladores.

BIBLIOGRAFIA

Aho, A. V. (2008). Compiladores. Principios, Técnicas y Herramientas. Segunda Edición. México:


Pearson Educación.

Alfonseca Moreno, M., de la Cruz Echeandía, M., Ortega de la Puente, A., & Pulido Cañabate,
E. (2006). Compiladores e intérpretes: teoría y práctica. Madrid: Pearson Education.

Béjar , R. (2004). Introducción a Flex y Bison. Prácticas de Lenguajes, Gramáticas y Autómatas


cuarto cuatrimestre (primavera) de Ingeniería en Informática. Zaragoza: Zaragoza.

pág. 5
Implementación de análisis léxico y sintáctico

Hernández Rodriguez, L., Jaramillo Valbuena, S., & Cardona Torres, S. (2010). Toeria de
autómatas y meguajes formales. Quindio: Elizcom.

Hernández, B. (2004). Introducción a flex y bison. Zaragoza: Zaragoza.

Moreno, A., De la Cruz, E., Cañabate, P., & De la Puente, O. (2006). Compiladores e Intérpretes.
Madrid: Pearson Education.

Rojas, S. G. (2005). Traductores, Compiladores e Intérpretes. Malaga: Dpto. de Lenguajes y


Ciencias de la Computación.

Velneo. (03 de 12 de 2013). Velneo. Obtenido de https://velneo.es/que-es-un-lenguaje-de-


programacion/

ANEXO

Código de analizador léxico

Adjuntado en el CD de presentación

Código de analizador sintáctico

Adjuntado en el CD de presentación

pág. 6
Implementación de análisis léxico y sintáctico

pág. 7