SlideShare ist ein Scribd-Unternehmen logo
1 von 14
ANÁLISIS LÉXICO
Y ANÁLISIS

SINTÁCTICO
COMPILADORES
ANÁLISIS LÉXICO
Y
ANÁLISIS SINTÁCTICO

ANGIE EVILLA LUQUEZ

CORPORACIÓN UNIVERSITARIA REMINGTON
INGENIERÍA DE SISTEMAS
ANALISIS LEXICO
FUNCION DEL ANLIZADOR LEXICO
 El analizador léxico es la primera fase de un compilador.
Su principal función consiste en leer los caracteres de entrada
y elaborar como salida una secuencia de componentes
léxicos que utiliza el analizador sintáctico para hacer el
análisis.
 En algunas ocasiones, los analizadores léxicos se dividen
en una cascada de dos fases; la primera, llamada "examen",
y la segunda, "análisis léxico". El examinador se encarga de
realizar tares sencillas, mientras que el analizador léxico es el
que realiza las operaciones complejas.
ASPECTO DEL ANALISIS LEXICO
Hay varias razones para dividir la fase de análisis de la
compilación en análisis léxico y análisis sintáctico.

 Un diseño sencillo es quizá la consideración más importante.
Separar el análisis léxico del análisis sintáctico a menudo permite
simplificar una u otra de dichas fases.
 Se mejora la eficiencia del compilador. Un analizador léxico
independiente permite construir un procesador especializado y
potencialmente más eficiente para esta función. Gran parte de
tiempo se consume en leer el programa fuente y dividirlo en
componentes léxicos. Con técnicas especializadas de manejo de
buffer para la lectura de caracteres de entrada y procesamiento de
componentes léxicos se puede mejorar significativamente el
rendimiento de un compilador.
 Se mejora la transportabilidad del compilador. Las
peculiaridades del alfabeto de entrada y otras anomalías propias
de los dispositivos pueden limitarse al analizador léxico.
COMPONENTES LEXICOS, PATRONES Y LEXEMAS
Cuando se menciona el análisis sintáctico, los términos
"componente léxico"(token), "patrón" y "lexema" se emplean
con significados específicos.
En general, hay un conjunto de cadenas en la entrada para
el cual se produce como salida el mismo componente léxico.
Este conjunto de cadenas se describe mediante una regla
llamada patrón asociado al componente léxico. Se dice que
el patrón concuerda con cada cadena del conjunto.
Lexema es una secuencia de caracteres en el programa
fuente con la que concuerda el patrón para un componente
léxico.
Los componentes léxicos se tratan como símbolos
terminales de la gramática del lenguaje fuente, con nombres
en negritas para representarlos.
ATRIBUTOS DE LOS COMPONENTES LEXICOS
Cuando concuerda con un lexema más de un patrón, el
analizador léxico debe proporcionar información adicional
sobre el lexema concreto que concordó con las fases del
compilador.
 El analizador léxico recoge información sobre los
componentes léxicos en sus atributos asociados.
 Los componentes léxicos influyen en las decisiones del
análisis sintáctico, y los atributos, en la traducción de los
componentes léxicos.
 En la práctica, los componentes léxicos suelen tener un
solo atributo – un apuntador a la entrada de la tabla de
símbolos donde se guarda la información sobre el
componente léxico; el apuntador se convierte en el atributo
del componente léxico.
CARACTERÍSTICAS DEL ANÁLISIS LÉXICO
 Lee caracteres.

 Produce componentes léxicos (tokens).
 Filtra comentarios.
 Filtra separadores múltiples (espacios, tabuladores y
saltos de línea).
 Lleva el contador de línea y columna del texto fuente.

 Genera errores en caso de que la entrada no corresponda
a ninguna categoría léxica.
ALGUNAS DEFINICIONES
 Categoría léxica: Tipo de símbolo elemental del lenguaje

fuente, (identificadores, palabras
numéricas, operadores, ...).

clave,

constantes

 Componente léxico (token): Elemento perteneciente a
una categoría léxica.
 Atributos de un componente: Información del
componente necesaria en etapas posteriores del análisis
(valor de la constante, nombre de una variable, ...).

 Lexema: Cadena de caracteres correspondiente al
componente léxico.
ANALISIS SINTACTICO
comprueba que las sentencias que componen el texto fuente
son correctas en el lenguaje, creando una representación
interna que corresponde a la sentencia analizada.
De esta manera se garantiza que sólo serán procesadas las
sentencias que pertenezcan al lenguaje fuente. Durante el
análisis sintáctico, así como en las demás etapas, se van
mostrando los errores que se encuentran.
RAZONES POR LAS QUE SE SEPARA LA FASE DE
ANÁLISIS DE UN COMPILADOR EN ANÁLISIS
LEXICOGRÁFICO Y ANÁLISIS SINTÁCTICO.
 En el diseño del analizador sintáctico, éste no ha de
preocuparse de leer el archivo de entrada, ni de saltar blancos, ni
comentarios, ni de recibir caracteres inesperados, puesto que todo
ello ha sido filtrado previamente por el analizador lexicográfico.
 Se mejora la eficiencia del compilador en su conjunto. La
lectura del programa fuente suele requerir gran parte del tiempo de
compilación, que se ve reducido si el analizador lexicográfico
incorpora técnicas especiales de lectura, o está realizado en
ensamblador.
 Aumenta la portabilidad del compilador, ya que todas las
diferencias que se produzcan en el alfabeto de entrada, o en el
dispositivo de almacenamiento, pueden ser reducidas al
analizador lexicográfico, dejando al analizador sintáctico intacto.
FUNCIÓN DEL ANÁLISIS SINTÁCTICO
Analizar sintácticamente una cadena de tokens no es más
que encontrar para ella el árbol sintáctico o de derivación
que tiene como raíz el axioma de la gramática, y como
nodos terminales la sucesión ordenada de símbolos que
componen la cadena analizada.
En caso de no existir este árbol sintáctico, la cadena no
pertenecerá al lenguaje, y el analizador sintáctico ha de
emitir el correspondiente mensaje de error.
Existen dos formas de analizar sintácticamente una
cadena:
ANÁLISIS DESCENDENTE: Partiendo del axioma inicial de la
gramática se va descendiendo utilizando las derivaciones
izquierdas, hasta llegar a construir la cadena analizada.

Análisis ascendente: Se va construyendo el árbol desde sus
nodos terminales. Es decir, se construye desde los símbolos de la
cadena hasta llegar al axioma de la gramática.
Simultáneamente a la fase de análisis sintáctico, además de reconocer
las secuencias de tokens, y analizar su estructura, pueden realizarse
una serie de tareas adicionales, como:

 Recopilar información de los distintos tokens y almacenarla en la
tabla de símbolos.
 Realizar algún tipo de análisis semántico, tal como la comprobación
de tipos.
 Generar código intermedio.
 Avisar de los errores que se detecten.
Bibliografía:
http://www.galeon.com/shock/tareas.html

http://www.uhu.es/francisco.moreno/gii_pl/doc
s/Tema_2.pdf

http://informatica.uv.es/docencia/iiguia/asignat
u/2000/PL/2008/tema2.pdf
GRACIAS!!!

Weitere ähnliche Inhalte

Was ist angesagt?

automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfazXavi Flores
 
Generación código intermedio 2
Generación código intermedio 2Generación código intermedio 2
Generación código intermedio 2Humano Terricola
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosnenyta08
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesIsrael Castillo Cruz
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesHumano Terricola
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraAlexandraMolinaSanchez
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de ContextoBrayhan Acosta
 
Unidad 3 ensambladores
Unidad 3 ensambladoresUnidad 3 ensambladores
Unidad 3 ensambladoresGustavo Davila
 

Was ist angesagt? (20)

automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Analisis Semantico
Analisis Semantico Analisis Semantico
Analisis Semantico
 
Expresiones Regulares
Expresiones RegularesExpresiones Regulares
Expresiones Regulares
 
Reglas de transformación
Reglas de transformaciónReglas de transformación
Reglas de transformación
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfaz
 
Generación código intermedio 2
Generación código intermedio 2Generación código intermedio 2
Generación código intermedio 2
 
Tabla de símbolos
Tabla de símbolosTabla de símbolos
Tabla de símbolos
 
Unidad1 2 Lenguajes y automatas
Unidad1 2  Lenguajes y automatasUnidad1 2  Lenguajes y automatas
Unidad1 2 Lenguajes y automatas
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretes
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
 
Compiladores, Analisis Lexico, Ejemplo Minilenguaje
Compiladores, Analisis Lexico, Ejemplo MinilenguajeCompiladores, Analisis Lexico, Ejemplo Minilenguaje
Compiladores, Analisis Lexico, Ejemplo Minilenguaje
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de Contexto
 
Unidad 3 ensambladores
Unidad 3 ensambladoresUnidad 3 ensambladores
Unidad 3 ensambladores
 
Unidad1 Lenguajes y automatas
Unidad1 Lenguajes y automatasUnidad1 Lenguajes y automatas
Unidad1 Lenguajes y automatas
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 

Andere mochten auch

Andere mochten auch (6)

Funciones sintácticas
Funciones sintácticasFunciones sintácticas
Funciones sintácticas
 
La oracion
La oracionLa oracion
La oracion
 
Función sintáctica
Función sintácticaFunción sintáctica
Función sintáctica
 
Nivel sintáctico
Nivel sintácticoNivel sintáctico
Nivel sintáctico
 
N ivel semantico
N ivel semanticoN ivel semantico
N ivel semantico
 
Funciones sintácticas
Funciones sintácticasFunciones sintácticas
Funciones sintácticas
 

Ähnlich wie Análisis léxico y análisis sintáctico

ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS Infomania pro
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexicoJhampier_Piedra
 
Capítulo 2 compiladores (willian gallo -------boris chungandro)
Capítulo 2 compiladores (willian gallo -------boris chungandro)Capítulo 2 compiladores (willian gallo -------boris chungandro)
Capítulo 2 compiladores (willian gallo -------boris chungandro)MARCO POLO SILVA SEGOVIA
 
Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador SintacticoBayo Chicaiza
 
Analizador Léxico, Analizador Sintáctico
Analizador Léxico, Analizador SintácticoAnalizador Léxico, Analizador Sintáctico
Analizador Léxico, Analizador SintácticoRaul Gomez
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintacticoPUCESI
 
diaposichap.pptx
diaposichap.pptxdiaposichap.pptx
diaposichap.pptxLuisSimn12
 
ANALISIS LEXICO capitperesentacion.pptx
ANALISIS LEXICO  capitperesentacion.pptxANALISIS LEXICO  capitperesentacion.pptx
ANALISIS LEXICO capitperesentacion.pptxIgnacioGomez95
 

Ähnlich wie Análisis léxico y análisis sintáctico (20)

Analisis lexico automatas i
Analisis lexico automatas iAnalisis lexico automatas i
Analisis lexico automatas i
 
Análisis lexicográfico
Análisis lexicográficoAnálisis lexicográfico
Análisis lexicográfico
 
Análisis Sintáctico
Análisis SintácticoAnálisis Sintáctico
Análisis Sintáctico
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Gramaticas
GramaticasGramaticas
Gramaticas
 
TALLER ANALISIS LEXICO
TALLER ANALISIS LEXICOTALLER ANALISIS LEXICO
TALLER ANALISIS LEXICO
 
Compiladores analisis lexico
Compiladores analisis lexicoCompiladores analisis lexico
Compiladores analisis lexico
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Lexicos.docx
Lexicos.docxLexicos.docx
Lexicos.docx
 
Analizador sintáctico
Analizador sintácticoAnalizador sintáctico
Analizador sintáctico
 
Capítulo 2 compiladores (willian gallo -------boris chungandro)
Capítulo 2 compiladores (willian gallo -------boris chungandro)Capítulo 2 compiladores (willian gallo -------boris chungandro)
Capítulo 2 compiladores (willian gallo -------boris chungandro)
 
investigacion.pdf
investigacion.pdfinvestigacion.pdf
investigacion.pdf
 
Analizador Sintactico
Analizador SintacticoAnalizador Sintactico
Analizador Sintactico
 
Analizador Léxico, Analizador Sintáctico
Analizador Léxico, Analizador SintácticoAnalizador Léxico, Analizador Sintáctico
Analizador Léxico, Analizador Sintáctico
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
 
diaposichap.pptx
diaposichap.pptxdiaposichap.pptx
diaposichap.pptx
 
lexico.pptx
lexico.pptxlexico.pptx
lexico.pptx
 
ANALISIS LEXICO capitperesentacion.pptx
ANALISIS LEXICO  capitperesentacion.pptxANALISIS LEXICO  capitperesentacion.pptx
ANALISIS LEXICO capitperesentacion.pptx
 
Analisis lexico
Analisis lexicoAnalisis lexico
Analisis lexico
 

Análisis léxico y análisis sintáctico

  • 2. COMPILADORES ANÁLISIS LÉXICO Y ANÁLISIS SINTÁCTICO ANGIE EVILLA LUQUEZ CORPORACIÓN UNIVERSITARIA REMINGTON INGENIERÍA DE SISTEMAS
  • 3. ANALISIS LEXICO FUNCION DEL ANLIZADOR LEXICO  El analizador léxico es la primera fase de un compilador. Su principal función consiste en leer los caracteres de entrada y elaborar como salida una secuencia de componentes léxicos que utiliza el analizador sintáctico para hacer el análisis.  En algunas ocasiones, los analizadores léxicos se dividen en una cascada de dos fases; la primera, llamada "examen", y la segunda, "análisis léxico". El examinador se encarga de realizar tares sencillas, mientras que el analizador léxico es el que realiza las operaciones complejas.
  • 4. ASPECTO DEL ANALISIS LEXICO Hay varias razones para dividir la fase de análisis de la compilación en análisis léxico y análisis sintáctico.  Un diseño sencillo es quizá la consideración más importante. Separar el análisis léxico del análisis sintáctico a menudo permite simplificar una u otra de dichas fases.  Se mejora la eficiencia del compilador. Un analizador léxico independiente permite construir un procesador especializado y potencialmente más eficiente para esta función. Gran parte de tiempo se consume en leer el programa fuente y dividirlo en componentes léxicos. Con técnicas especializadas de manejo de buffer para la lectura de caracteres de entrada y procesamiento de componentes léxicos se puede mejorar significativamente el rendimiento de un compilador.  Se mejora la transportabilidad del compilador. Las peculiaridades del alfabeto de entrada y otras anomalías propias de los dispositivos pueden limitarse al analizador léxico.
  • 5. COMPONENTES LEXICOS, PATRONES Y LEXEMAS Cuando se menciona el análisis sintáctico, los términos "componente léxico"(token), "patrón" y "lexema" se emplean con significados específicos. En general, hay un conjunto de cadenas en la entrada para el cual se produce como salida el mismo componente léxico. Este conjunto de cadenas se describe mediante una regla llamada patrón asociado al componente léxico. Se dice que el patrón concuerda con cada cadena del conjunto. Lexema es una secuencia de caracteres en el programa fuente con la que concuerda el patrón para un componente léxico. Los componentes léxicos se tratan como símbolos terminales de la gramática del lenguaje fuente, con nombres en negritas para representarlos.
  • 6. ATRIBUTOS DE LOS COMPONENTES LEXICOS Cuando concuerda con un lexema más de un patrón, el analizador léxico debe proporcionar información adicional sobre el lexema concreto que concordó con las fases del compilador.  El analizador léxico recoge información sobre los componentes léxicos en sus atributos asociados.  Los componentes léxicos influyen en las decisiones del análisis sintáctico, y los atributos, en la traducción de los componentes léxicos.  En la práctica, los componentes léxicos suelen tener un solo atributo – un apuntador a la entrada de la tabla de símbolos donde se guarda la información sobre el componente léxico; el apuntador se convierte en el atributo del componente léxico.
  • 7. CARACTERÍSTICAS DEL ANÁLISIS LÉXICO  Lee caracteres.  Produce componentes léxicos (tokens).  Filtra comentarios.  Filtra separadores múltiples (espacios, tabuladores y saltos de línea).  Lleva el contador de línea y columna del texto fuente.  Genera errores en caso de que la entrada no corresponda a ninguna categoría léxica.
  • 8. ALGUNAS DEFINICIONES  Categoría léxica: Tipo de símbolo elemental del lenguaje fuente, (identificadores, palabras numéricas, operadores, ...). clave, constantes  Componente léxico (token): Elemento perteneciente a una categoría léxica.  Atributos de un componente: Información del componente necesaria en etapas posteriores del análisis (valor de la constante, nombre de una variable, ...).  Lexema: Cadena de caracteres correspondiente al componente léxico.
  • 9. ANALISIS SINTACTICO comprueba que las sentencias que componen el texto fuente son correctas en el lenguaje, creando una representación interna que corresponde a la sentencia analizada. De esta manera se garantiza que sólo serán procesadas las sentencias que pertenezcan al lenguaje fuente. Durante el análisis sintáctico, así como en las demás etapas, se van mostrando los errores que se encuentran.
  • 10. RAZONES POR LAS QUE SE SEPARA LA FASE DE ANÁLISIS DE UN COMPILADOR EN ANÁLISIS LEXICOGRÁFICO Y ANÁLISIS SINTÁCTICO.  En el diseño del analizador sintáctico, éste no ha de preocuparse de leer el archivo de entrada, ni de saltar blancos, ni comentarios, ni de recibir caracteres inesperados, puesto que todo ello ha sido filtrado previamente por el analizador lexicográfico.  Se mejora la eficiencia del compilador en su conjunto. La lectura del programa fuente suele requerir gran parte del tiempo de compilación, que se ve reducido si el analizador lexicográfico incorpora técnicas especiales de lectura, o está realizado en ensamblador.  Aumenta la portabilidad del compilador, ya que todas las diferencias que se produzcan en el alfabeto de entrada, o en el dispositivo de almacenamiento, pueden ser reducidas al analizador lexicográfico, dejando al analizador sintáctico intacto.
  • 11. FUNCIÓN DEL ANÁLISIS SINTÁCTICO Analizar sintácticamente una cadena de tokens no es más que encontrar para ella el árbol sintáctico o de derivación que tiene como raíz el axioma de la gramática, y como nodos terminales la sucesión ordenada de símbolos que componen la cadena analizada. En caso de no existir este árbol sintáctico, la cadena no pertenecerá al lenguaje, y el analizador sintáctico ha de emitir el correspondiente mensaje de error. Existen dos formas de analizar sintácticamente una cadena:
  • 12. ANÁLISIS DESCENDENTE: Partiendo del axioma inicial de la gramática se va descendiendo utilizando las derivaciones izquierdas, hasta llegar a construir la cadena analizada. Análisis ascendente: Se va construyendo el árbol desde sus nodos terminales. Es decir, se construye desde los símbolos de la cadena hasta llegar al axioma de la gramática. Simultáneamente a la fase de análisis sintáctico, además de reconocer las secuencias de tokens, y analizar su estructura, pueden realizarse una serie de tareas adicionales, como:  Recopilar información de los distintos tokens y almacenarla en la tabla de símbolos.  Realizar algún tipo de análisis semántico, tal como la comprobación de tipos.  Generar código intermedio.  Avisar de los errores que se detecten.