SlideShare una empresa de Scribd logo
1 de 5
LENGUAJES Y AUTOMATAS
4.4 Errores léxicos
4.5 generadores de analizadores léxicos
LENGUAJES Y
AUTOMATAS 1
RICARDO RAFAEL CARPIO
LÓPEZ
ISC
ERRORES LÉXICOS
Un analizador léxico también es la parte del traductor que maneja la entrada del código fuente, y
puesto que esta entrada a menudo involucra un importante gasto de tiempo, el analizador léxico debe
funcionar de manera tan eficiente como sea posible.
Son pocos los errores simplemente en el nivel léxico ya que tiene una visión muy restringida de un
programa fuente.
El compilador tiene que:
• Reportar clara y exactamente la presencia de errores
• Recuperarse de cada error lo suficientemente rápido para poder detectar errores subsiguientes:
• Tratar de evitar mensajes falsos de error.
• Un error que produce un token erróneo.
• Errores léxicos posibles.
Estos errores pueden ocurrir por varias razones, como:
• Símbolos no reconocidos: el autómata no tiene un estado que reconozca los símbolos que se están
leyendo.
• Secuencia incorrecta: la secuencia de caracteres no sigue las reglas del lenguaje del autómata.
• Errores de sintaxis: el autómata está mal diseñado y no puede reconocer secuencias de caracteres
válidas.
El analizador léxico lee el código fuente del programa y lo divide en componentes léxicos, como
identificadores, operadores, palabras clave, etc. Si el analizador léxico encuentra un error léxico,
informa al compilador para que lo analice y lo corrija.
Para evitar errores léxicos en autómatas, es importante seguir las reglas del lenguaje del autómata.
• Escribir código que siga las reglas del lenguaje del autómata.
• Utilizar un analizador léxico para detectar errores léxicos.
• Probar el autómata con una variedad de entradas para asegurarse de que funciona correctamente.
GENERADORES DE ANALIZADORES LÉXICOS
Un generador de analizador léxico es una herramienta que automatiza la creación de un
analizador léxico para un lenguaje de programación. Los analizadores léxicos son la primera fase
de un compilador, y se encargan de dividir el código fuente en componentes léxicos, como
identificadores, operadores, palabras clave, etc.
Los generadores de analizadores léxicos suelen utilizar expresiones regulares para definir los
componentes léxicos. Las expresiones regulares son una forma concisa de describir patrones de
caracteres. Por ejemplo, la expresión regular [0-9]+ define una secuencia de uno o más caracteres
numéricos.
Algunos ejemplos de generadores de analizadores léxicos son:
• Flex: un generador de analizadores léxicos para el lenguaje C.
• JFlex: una extensión de Flex para Java.
• Python Lex: un generador de analizadores léxicos para Python.
• ANTLR: un generador de analizadores léxicos, sintácticos y semánticos.
Flex: FLEX es el analizador de dominio
público compatible con el analizador
léxico más frecuentemente utilizado: LEX
(bajo sistema UNIX). FLEX (y LEX)
genera, dada una especificación correcta
de patrones y acciones, un programa en
lenguaje C que puede ser compilado para
obtener un programa ejecutable.
JFLex y CUP, son dos herramientas que
generan programas que reaccionen a una
entrada de datos con una estructura y un
lenguaje predeterminado. Como ejemplo se
pueden crear compiladores intérprete y
analizadores de línea de comando, dando una
opción a la solvencia necesitada.
Python Lex: Un programa de Python es
leído por un parser (analizador
sintáctico). Los datos introducidos en el
analizador son un flujo de tokens,
generados por el analizador léxico. Este
capítulo describe cómo el analizador
léxico desglosa un archivo en tokens.
ANTLR: una herramienta que da soporte a
todas las etapas del procesamiento de
lenguajes formales, permitiendo generar
analizadores léxicos, sintácticos, árboles de
sintaxis abstracta y analizadores de árboles
para el procesamiento semántico.

Más contenido relacionado

Similar a 4.4 Y 4.5.pptx

1.5 GENERADORES DE CODIGO PARA COMPILADORES (COMPILADOR DE COMPILADORES)
1.5  GENERADORES  DE CODIGO  PARA COMPILADORES (COMPILADOR DE COMPILADORES)1.5  GENERADORES  DE CODIGO  PARA COMPILADORES (COMPILADOR DE COMPILADORES)
1.5 GENERADORES DE CODIGO PARA COMPILADORES (COMPILADOR DE COMPILADORES)
elizabethrmlm
 
Repuesto de expo_de_programacion
Repuesto de expo_de_programacionRepuesto de expo_de_programacion
Repuesto de expo_de_programacion
nayeli hernandez
 
Compiladores unidad1
Compiladores unidad1Compiladores unidad1
Compiladores unidad1
X3025990
 
Trabajo practico libro2
Trabajo practico libro2Trabajo practico libro2
Trabajo practico libro2
exequiel9035a
 

Similar a 4.4 Y 4.5.pptx (20)

1.5 GENERADORES DE CODIGO PARA COMPILADORES (COMPILADOR DE COMPILADORES)
1.5  GENERADORES  DE CODIGO  PARA COMPILADORES (COMPILADOR DE COMPILADORES)1.5  GENERADORES  DE CODIGO  PARA COMPILADORES (COMPILADOR DE COMPILADORES)
1.5 GENERADORES DE CODIGO PARA COMPILADORES (COMPILADOR DE COMPILADORES)
 
Compiladores
CompiladoresCompiladores
Compiladores
 
investigacion.pdf
investigacion.pdfinvestigacion.pdf
investigacion.pdf
 
S01.s1 - Material.pdf
S01.s1 - Material.pdfS01.s1 - Material.pdf
S01.s1 - Material.pdf
 
Repuesto de expo_de_programacion
Repuesto de expo_de_programacionRepuesto de expo_de_programacion
Repuesto de expo_de_programacion
 
Compiladores unidad1
Compiladores unidad1Compiladores unidad1
Compiladores unidad1
 
Evolucion de los compiladores1
Evolucion de los compiladores1Evolucion de los compiladores1
Evolucion de los compiladores1
 
investigacion 4.4 y 4.5.pdf
investigacion 4.4 y 4.5.pdfinvestigacion 4.4 y 4.5.pdf
investigacion 4.4 y 4.5.pdf
 
franco lorentz word2
franco lorentz word2franco lorentz word2
franco lorentz word2
 
Lexicos.docx
Lexicos.docxLexicos.docx
Lexicos.docx
 
Lenguajes de programacion22
Lenguajes de programacion22Lenguajes de programacion22
Lenguajes de programacion22
 
Unidad1 2 Lenguajes y automatas
Unidad1 2  Lenguajes y automatasUnidad1 2  Lenguajes y automatas
Unidad1 2 Lenguajes y automatas
 
Trabajo practico libro2
Trabajo practico libro2Trabajo practico libro2
Trabajo practico libro2
 
TALLER ANALISIS LEXICO
TALLER ANALISIS LEXICOTALLER ANALISIS LEXICO
TALLER ANALISIS LEXICO
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
 
compiladores.pptx presentación de compiladores
compiladores.pptx presentación de compiladorescompiladores.pptx presentación de compiladores
compiladores.pptx presentación de compiladores
 
Libro numero 2
Libro numero 2Libro numero 2
Libro numero 2
 
Léxico.pdf
Léxico.pdfLéxico.pdf
Léxico.pdf
 
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
 
lexicos.pdf
lexicos.pdflexicos.pdf
lexicos.pdf
 

Último

Unidad 2 Métodos Numéricos. Solución de ecuaciones algebraicas.docx
Unidad 2 Métodos Numéricos. Solución de ecuaciones algebraicas.docxUnidad 2 Métodos Numéricos. Solución de ecuaciones algebraicas.docx
Unidad 2 Métodos Numéricos. Solución de ecuaciones algebraicas.docx
AlanCarrascoDavila
 
Presentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdfPresentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdf
fernandolozano90
 

Último (20)

IG01 Instalacion de gas, materiales, criterios, recomendaciones
IG01 Instalacion de gas, materiales, criterios, recomendacionesIG01 Instalacion de gas, materiales, criterios, recomendaciones
IG01 Instalacion de gas, materiales, criterios, recomendaciones
 
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESCAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
 
Ficha Técnica -Cemento YURA Multiproposito TIPO IP.pdf
Ficha Técnica -Cemento YURA  Multiproposito TIPO IP.pdfFicha Técnica -Cemento YURA  Multiproposito TIPO IP.pdf
Ficha Técnica -Cemento YURA Multiproposito TIPO IP.pdf
 
8 2024A CONDUCCION DE CALOR EN REGIMEN TRANSITORIO.pptx
8 2024A CONDUCCION DE CALOR EN REGIMEN TRANSITORIO.pptx8 2024A CONDUCCION DE CALOR EN REGIMEN TRANSITORIO.pptx
8 2024A CONDUCCION DE CALOR EN REGIMEN TRANSITORIO.pptx
 
Diseño digital - M. Morris Mano - 3ed.pdf
Diseño digital - M. Morris Mano - 3ed.pdfDiseño digital - M. Morris Mano - 3ed.pdf
Diseño digital - M. Morris Mano - 3ed.pdf
 
Introducción a la Ingeniería de Calidad.docx
Introducción a la Ingeniería de Calidad.docxIntroducción a la Ingeniería de Calidad.docx
Introducción a la Ingeniería de Calidad.docx
 
subestaciones electricas , elementos y caracteristicas
subestaciones electricas , elementos y caracteristicassubestaciones electricas , elementos y caracteristicas
subestaciones electricas , elementos y caracteristicas
 
UNIDAD I QUE ES LA AUTOMATIZACION INDUSTRIAL.pptx
UNIDAD I QUE ES LA AUTOMATIZACION INDUSTRIAL.pptxUNIDAD I QUE ES LA AUTOMATIZACION INDUSTRIAL.pptx
UNIDAD I QUE ES LA AUTOMATIZACION INDUSTRIAL.pptx
 
entropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasentropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemas
 
TECNOLOGIA DE CONCRETO 2024 estudiante.pdf
TECNOLOGIA DE CONCRETO 2024 estudiante.pdfTECNOLOGIA DE CONCRETO 2024 estudiante.pdf
TECNOLOGIA DE CONCRETO 2024 estudiante.pdf
 
Instalacion de un Sistema contra incendio
Instalacion de un Sistema contra incendioInstalacion de un Sistema contra incendio
Instalacion de un Sistema contra incendio
 
Practica_Calificada_03333333333333333.pdf
Practica_Calificada_03333333333333333.pdfPractica_Calificada_03333333333333333.pdf
Practica_Calificada_03333333333333333.pdf
 
INFORME de actividades para pago de servicio
INFORME de actividades para pago de servicioINFORME de actividades para pago de servicio
INFORME de actividades para pago de servicio
 
Trabajos Preliminares en Obras de Construcción..pdf
Trabajos Preliminares en Obras de Construcción..pdfTrabajos Preliminares en Obras de Construcción..pdf
Trabajos Preliminares en Obras de Construcción..pdf
 
1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdf1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdf
 
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdfslideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
 
Unidad 2 Métodos Numéricos. Solución de ecuaciones algebraicas.docx
Unidad 2 Métodos Numéricos. Solución de ecuaciones algebraicas.docxUnidad 2 Métodos Numéricos. Solución de ecuaciones algebraicas.docx
Unidad 2 Métodos Numéricos. Solución de ecuaciones algebraicas.docx
 
Presentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdfPresentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdf
 
ESTUDIO DE TRAFICO PARA EL DISEÑO DE TIPOS DE VIAS.pptx
ESTUDIO DE TRAFICO PARA EL DISEÑO DE TIPOS DE VIAS.pptxESTUDIO DE TRAFICO PARA EL DISEÑO DE TIPOS DE VIAS.pptx
ESTUDIO DE TRAFICO PARA EL DISEÑO DE TIPOS DE VIAS.pptx
 
Presentación Identidad UCM identity present
Presentación Identidad UCM identity presentPresentación Identidad UCM identity present
Presentación Identidad UCM identity present
 

4.4 Y 4.5.pptx

  • 1. LENGUAJES Y AUTOMATAS 4.4 Errores léxicos 4.5 generadores de analizadores léxicos LENGUAJES Y AUTOMATAS 1 RICARDO RAFAEL CARPIO LÓPEZ ISC
  • 2. ERRORES LÉXICOS Un analizador léxico también es la parte del traductor que maneja la entrada del código fuente, y puesto que esta entrada a menudo involucra un importante gasto de tiempo, el analizador léxico debe funcionar de manera tan eficiente como sea posible. Son pocos los errores simplemente en el nivel léxico ya que tiene una visión muy restringida de un programa fuente. El compilador tiene que: • Reportar clara y exactamente la presencia de errores • Recuperarse de cada error lo suficientemente rápido para poder detectar errores subsiguientes: • Tratar de evitar mensajes falsos de error. • Un error que produce un token erróneo. • Errores léxicos posibles.
  • 3. Estos errores pueden ocurrir por varias razones, como: • Símbolos no reconocidos: el autómata no tiene un estado que reconozca los símbolos que se están leyendo. • Secuencia incorrecta: la secuencia de caracteres no sigue las reglas del lenguaje del autómata. • Errores de sintaxis: el autómata está mal diseñado y no puede reconocer secuencias de caracteres válidas. El analizador léxico lee el código fuente del programa y lo divide en componentes léxicos, como identificadores, operadores, palabras clave, etc. Si el analizador léxico encuentra un error léxico, informa al compilador para que lo analice y lo corrija. Para evitar errores léxicos en autómatas, es importante seguir las reglas del lenguaje del autómata. • Escribir código que siga las reglas del lenguaje del autómata. • Utilizar un analizador léxico para detectar errores léxicos. • Probar el autómata con una variedad de entradas para asegurarse de que funciona correctamente.
  • 4. GENERADORES DE ANALIZADORES LÉXICOS Un generador de analizador léxico es una herramienta que automatiza la creación de un analizador léxico para un lenguaje de programación. Los analizadores léxicos son la primera fase de un compilador, y se encargan de dividir el código fuente en componentes léxicos, como identificadores, operadores, palabras clave, etc. Los generadores de analizadores léxicos suelen utilizar expresiones regulares para definir los componentes léxicos. Las expresiones regulares son una forma concisa de describir patrones de caracteres. Por ejemplo, la expresión regular [0-9]+ define una secuencia de uno o más caracteres numéricos. Algunos ejemplos de generadores de analizadores léxicos son: • Flex: un generador de analizadores léxicos para el lenguaje C. • JFlex: una extensión de Flex para Java. • Python Lex: un generador de analizadores léxicos para Python. • ANTLR: un generador de analizadores léxicos, sintácticos y semánticos.
  • 5. Flex: FLEX es el analizador de dominio público compatible con el analizador léxico más frecuentemente utilizado: LEX (bajo sistema UNIX). FLEX (y LEX) genera, dada una especificación correcta de patrones y acciones, un programa en lenguaje C que puede ser compilado para obtener un programa ejecutable. JFLex y CUP, son dos herramientas que generan programas que reaccionen a una entrada de datos con una estructura y un lenguaje predeterminado. Como ejemplo se pueden crear compiladores intérprete y analizadores de línea de comando, dando una opción a la solvencia necesitada. Python Lex: Un programa de Python es leído por un parser (analizador sintáctico). Los datos introducidos en el analizador son un flujo de tokens, generados por el analizador léxico. Este capítulo describe cómo el analizador léxico desglosa un archivo en tokens. ANTLR: una herramienta que da soporte a todas las etapas del procesamiento de lenguajes formales, permitiendo generar analizadores léxicos, sintácticos, árboles de sintaxis abstracta y analizadores de árboles para el procesamiento semántico.