Casos de Estudio de Analizadores Lexicos - Guzmán Gómez Miguel Arturo
Casos de Estudio de Analizadores Lexicos - Guzmán Gómez Miguel Arturo
Estudiante:
Guzmán Gómez Miguel Arturo
Número de control:
19380590
Contenido
Índice.......................................................................................................................................... 2
Desarrollo................................................................................................................................... 3
Expresiones Regulares en Flex .............................................................................................. 4
Factores que definen un lenguaje ........................................................................................... 4
Analizador sintáctico .............................................................................................................. 4
Gramática aceptada............................................................................................................. 4
LEX/YACC ............................................................................................................................ 5
Estructura de un programa LEX ......................................................................................... 5
Compilación........................................................................................................................ 6
FLEX ...................................................................................................................................... 7
JAVACC ................................................................................................................................ 9
Pasos para la generación del analizador ............................................................................. 9
Cuadro Comparativo ............................................................................................................ 11
Conclusiones ............................................................................................................................ 12
Bibliografía .............................................................................................................................. 13
Desarrollo
2. Analiza los documentos adjuntos a la tarea y construye un cuadro comparativo entre los diferentes
analizadores léxicos:
• LEX/YACC
• FLEX
• JFLEX / CUP
• PCLEX
• JAVACC
Expresiones Regulares en Flex
Puede ser descrito mediante expresiones regulares como las que se utilizan en ex, vi, sed
perl y en otras distribuciones en UNIX.
Proporciona una
especificación sintáctica de
manera precisa, fácil de entender
del lenguaje de programación.
Analizador sintáctico
Es la fase del analizador sintáctico que se encarga de revisar el texto de entrada a una gramática
dada.
Se obtiene una cadena de tokens, los cuales sirven para verificar la cadena de nombres
para un lenguaje fuente.
Gramática aceptada
N = No terminales
T = Terminales
P = Reglas de Producción
S = Axioma Inicial
LEX/YACC
*Analizador Léxico
Estructura de un programa LEX
%{
declaration C1
declaration CM
%}
macro_name1 regular_definition1.
.
.
macro_nameR regular_definitionR
%x exclusive
state
%s inclusive
state
% %
regular_expression1 { action1(); }
.
.
regular_expressionN { actionN(); }
% %
support_routine1() {
}
.
support_routineS() {
}
%%
Compilación
cc lex.yy.c -lfl
La inclusión de la opción -fl enlaza con la librería flex, que contiene dos funciones main
yywrap().
FLEX
*Analizador Léxico
Su función principal es realizar todo posible análisis de toda aquella posible forma con
distintas áreas, donde parte de sus variables construido por su tamaño y espacio. Se conoce que
la característica principal de un analizador FLEX trabaja con ICE integrándose así un entorno
de analizadores que no son determinados, utilizando elementos gráficos (menú, interfaz
gráfica, apuntadores, etc).
La herramienta PCLex se describe como la que más extensión conlleva. es llamada Lex para
la especificación de distintos analizadores léxicos que tienen como función de compilar.
𝑝1 {𝑎𝑐𝑐𝑖ó𝑛1 }
𝑝2 {𝑎𝑐𝑐𝑖ó𝑛2 }
𝑝𝑛 {𝑎𝑐𝑐𝑖ó𝑛𝑛 }
Como lo menciona Gálvez Rojas (2011), “un analizador léxico es creado por PCLex
siendo comportado por una sincronía con un analizador sintáctico”, siendo así formado su
comportamiento por una entrada que concuerda una expresión regular.
JAVACC
*Analizador y generador de analizador léxico
vi | edit |· · · NombreFichero.jj
(el nombre del fichero puede tener cualquier extensión; suele usarse .jj)
javacc NombreFichero.jj
javac NombreDeLaEspecif.java
NombreDeLaEspecif.class
Cuadro Comparativo
A. Sintáctico A. Léxico
Analizador sintáctico (PARSER), programa Se encarga de buscar componentes léxicos o
informático que analiza la cadena de palabras que componen el programa fuente,
símbolos según las reglas de una semántica según reglas o patrones.
formal.
Es utilizado a menudo para convertir texto a Su función principal consiste en leer
una nueva estructura, por ejemplo, un árbol caracteres de entrada y elaborar una salida
semántico que expresa la disposición en secuencia de componentes léxicos que
jerárquica de los elementos. utilizan analizadores sintácticos para el
análisis.
El compilador se asegura que el código se El analizador léxico divide la secuencia de
traduce correctamente a un lenguaje caracteres en palabras con significado
ejecutable. propio y después lo convierte a un punto de
vista del analizador sintáctico, ya que es su
entrada.
La descomposición y transformación de las El analizador léxico reconoce las palabras
entradas en un formato utilizable para un en función de la gramática regular que sus
procesamiento posterior. no terminales son convertidos los elementos
de entrada de fases posteriores.
Conclusiones
principal, qué es… concluyendo que un generador analizador léxico nos puede beneficiar en la
cuestión de catalizadores de texto siendo así un filtro por el cual se distribuyen las funciones
de Unix.
bien es cierto que conforme los ejemplos del libro proporcionado por el profesor Ismael se
reflejan su simplicidad y al poderle innovar una cuestión creativa, clara y simple se podrá
http://www.uhu.es/francisco.moreno/gii_pl/practicas/practica02.htm
U. (2022, 5 mayo).
de 2022, de https://presentacionfinaldeautomatas.blogspot.com/2017/08/proyecto-
analisis-semantico-para-java.html
de mayo de 2022, de
https://www.academia.edu/4064225/ESTRUCTURA_DE_Flex_PDE
https://bolitoquizhpe.wordpress.com/2011/02/03/javacc/