SlideShare una empresa de Scribd logo
Analizador Léxico
¿Qué es?
El analizador lexico es una herramienta de
un compilador que nos ayuda a leer los
caracteres de entrada para formar
componentes y asi poder identificarlos y
pasar la informacion a analizado sintáctico.
ANÁLISIS LÉXICO EN PYTHON
En lugar de tratar de procesar un flujo de texto
directamente, a menudo es más sencillo — y rápido —
desglosar la entrada de texto en una serie de “tokens”,
que deberían incluir palabras reservadas, literales,
operadores y/o identificadores. Estos tokens pueden
inspeccionarse por el procesador de forma más
eficiente que un flujo de texto plano. El proceso de
transformar la entra de texto en tokens se conoce como
“análisis léxico”, “tokenizado” (“tokenizing”) o,
simplemente, “escaneo” (“scanning”).
El punto de entrada del analizador léxico es la
unción PyTokenizer_Get en Parser/tokenizer.c.
Esta función se llama repetidamente desde la
función principal de procesado,
parsetok en Parser/parsetok.c, que a su vez se
utiliza por alguna de las distintas funciones de
proceso de más alto nivel.
Ejemplo:
/* Parser/Python.asdl:25 */
| For(expr target, expr iter, stmt* body, stmt* orelse)
| While(expr test, stmt* body, stmt* orelse)
| Unless(expr test, stmt* body)
| If(expr test, stmt* body, stmt* orelse)
¿Cuál es su función?
Su principal función consiste en leer la secuencia
de caracteres del programa fuente, carácter a
carácter, y elaborar como salida la secuencia de
componentes léxicos que utiliza el analizador
sintáctico. El analizador sintáctico emite la orden
al analizador léxico para que agrupe los
caracteres y forme unidades con significado
propio llamados componentes léxicos (tokens).
Los componentes léxicos representan:
Palabras reservadas: if, while, do, …
Identificadores: variables, funciones, tipos
definidos por el usuario, etiquetas, …
Operadores: =, >, <, >=, <=, +, *, …
Símbolos especiales: ;, ( ), { }, …
Constantes numéricas: literales que
representan valores enteros y flotantes.
Constantes de carácter: literales que
representan cadenas de caracteres.
El analizador léxico opera bajo petición del
analizador sintáctico devolviendo un
componente léxico conforme el analizador
sintáctico lo va necesitando para avanzar en la
gramática.
Además el analizador léxico es
responsable de:
 Manejo de apertura y cierre de archivo,
lectura de caracteres y gestión de posibles
errores de apertura.
 Eliminar comentarios, espacios en blanco,
tabuladores y saltos de línea.
 Inclusión de archivos y macros.
 Contabilizar número de líneas y columnas
para emitir mensajes de error.
COMPONENTES LÉXICOS,
PATRONES Y LEXEMAS
En la fase de análisis, los términos
componentes léxicos (token), patrón y lexema
se emplean con significados específicos. Un
analizador léxico, inicialmente lee los lexemas
y le asigna un significado propio.
 Componente léxico (token) es la secuencia
lógica y coherente de caracteres relativo a
una categoría: identificador, palabra
reservada, literales (cadena/numérica),
operador o carácter de puntuación, además
de que un componente léxico puede tener
uno o varios lexemas.
Ejemplo :
• Identificadores
• Enteros
• Palabras reservadas
• Espacios en blanco
• Parentesis.
 Patrón es una regla que genera la
secuencia de caracteres que puede
representar a un determinado
componente léxico (expresión regular).
 Lexema es una cadena de caracteres que
concuerda con un patrón que describe un
componente léxico (valor de cadena).
 Atributos el análisis léxico debe
proporcionar información adicional sobre
los tokens en sus atributos asociados. El
número de atributos depende de cada
token.
MANEJO DE BUFFER DE ENTRADA
Existen algunos aspectos de eficiencia
relacionados con el manejo de buffer.
Primero se menciona un esquema de doble
buffer de entrada que resulta útil como pre-
análisis de la entrada para identificar los
componentes léxicos.
El segundo esquema introduce algunas
técnicas útiles para aumentar la eficiencia del
analizador léxico, empleando “centinelas”.
Se utiliza un buffer dividido en dos mitades de
N (1024 ó 512) caracteres cada una, Se leen N
caracteres de entrada en cada mitad del buffer
con un orden de lectura del sistema, en vez de
invocar una instrucción de lectura para cada
carácter de entrada. Si quedan menos de N
caracteres en la entrada, entonces se lee un
carácter especial eof en el buffer después de
los caracteres de entrada. Es decir, eof marca el
final del archivo fuente y es distinto a cualquier
carácter de la entrada.
Parejas de Buffer
El origen de las expresiones regulares surge
de la teoría de autómatas y la teoría de
lenguajes formales, ambas parte de la
ciencias computacionales teórica. Este
campo estudia los modelos computacionales
(autómata) y la manera de describir y
clasificar los lenguajes formales. Un lenguaje
formal puede ser especificado de varias
maneras, tales como:
EXPRESIONES REGULARES
 Cadenas producidas por alguna gramática
formal.
 Cadenas producidas por expresiones
regulares.
 Cadenas aceptadas por algunos
autómatas tales como las máquinas de
Turing o autómatas de estado finito.
A las expresiones regulares frecuentemente
se les llaman patrones, ya que son
expresiones que describen a un conjunto de
cadenas.
Una expresión regular denota un conjunto de
secuencias de símbolos válidas que se
construyen en base al alfabeto de un
lenguaje. Generalmente estos conjuntos se
representan como:
Es una expresión regular que denota el
conjunto vacío (el conjunto no contiene
secuencias de símbolos).
Es una expresión regular que denota al
conjunto que contiene la secuencia vacía.
AUTÓMATAS FINITOS
Una maquina de estado finito o autómata
finito, es un modelo computacional que
consiste de un conjunto de estados, un estado
de inicio, un alfabeto de entrada y una función
de transición que traza un mapa a un siguiente
estado, a partir del símbolo de entrada y el
estado actual.
Los autómatas finitos se pueden utilizar para
describir el proceso de reconocimiento de
patrones en cadenas de entrada. El sistema
recibe una cadena constituida por símbolos
de un alfabeto y determina si esa cadena
pertenece al lenguaje que ese autómata
reconoce.
De esta manera se pueden construir
analizadores léxicos, construyendo programas
de computadora que realicen las operaciones
de un autómata.
AUTÓMATA FINITO
NO DETERMINÍSTICO
Un autómata finito no determinista
(abreviado AFND) es un autómata finito que,
a diferencia de los autómatas finitos
deterministas (AFD), posee al menos un
estado q ∈ Q, tal que para un símbolo a ∈ Σ
del alfabeto, existe más de una transición
δ(q,a) posible.
AUTÓMATA FINITO
DETERMINÍSTICO
Un autómata finito determinista (DFA por
sus siglas en ingles), es un modelo donde el
siguiente estado de la transición esta dado
particularmente por el estado actual y el
carácter de entrada actual. Si ningún estado
de transición es especificado, la cadena
entrante es rechazada.
La siguiente definición formalmente
introduce un DFA, ( S, Σ, T, s, A ) donde:
S conjunto finito no vacío de elementos
llamado estados
Σ alfabeto de entrada
T es una función de transición de S × Σ en S
s∈S estado inicial
A ⊆ S conjunto no vacío de estados finales
DIAGRAMA
DE ANALIZADORES LÉXICOS
MUCHAS GRACIAS
POR SU
ATENCIÓN

Más contenido relacionado

La actualidad más candente

Métodos para la detección y corrección de errores
Métodos para la detección y corrección de erroresMétodos para la detección y corrección de errores
Métodos para la detección y corrección de erroresDaniel Huerta Cruz
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del Software
T.I.C
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedio
Guillermo
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
Jose Guadalupe Couoh Dzul
 
Tecnicas de Conmutacion
Tecnicas de ConmutacionTecnicas de Conmutacion
Tecnicas de Conmutacion
jsmaster.in
 
Dispositivos De Interconexión de Redes
Dispositivos De Interconexión de  RedesDispositivos De Interconexión de  Redes
Dispositivos De Interconexión de Redes
UABC
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPU
Eduardo Suarez
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
Anel Sosa
 
1.2. El procesador y sus registros internos
1.2. El procesador y sus registros internos1.2. El procesador y sus registros internos
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
José Antonio Sandoval Acosta
 
TABLA DE CARACTERISTICAS DE MEDIOS DE TRANSMISION by JAVIER DAVID LOBATO PARDO
TABLA DE CARACTERISTICAS DE MEDIOS DE TRANSMISION by JAVIER DAVID LOBATO PARDOTABLA DE CARACTERISTICAS DE MEDIOS DE TRANSMISION by JAVIER DAVID LOBATO PARDO
TABLA DE CARACTERISTICAS DE MEDIOS DE TRANSMISION by JAVIER DAVID LOBATO PARDO
javier david lobato pardo
 
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
Humano Terricola
 
4.1. Funciones de la capa de red
4.1. Funciones de la capa de red4.1. Funciones de la capa de red
4.1. Funciones de la capa de red
Edison Coimbra G.
 
Tema manejo de la entrada
Tema manejo de la entradaTema manejo de la entrada
Tema manejo de la entrada
Sasil Catzim
 
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de Comunicación
Fundamentos de TelecomunicacionesUnidad 5 Dispositivos de ComunicaciónFundamentos de TelecomunicacionesUnidad 5 Dispositivos de Comunicación
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de Comunicación
José Antonio Sandoval Acosta
 
Noción de archivo real y virtual
Noción de archivo real y virtual Noción de archivo real y virtual
Noción de archivo real y virtual
Laura Guadalupe Rosado Hernández
 
Equipo 6 programacion hibrida
Equipo 6 programacion hibridaEquipo 6 programacion hibrida
Equipo 6 programacion hibridagabo
 
Investigación Técnicas de detección de errores de transmisión
Investigación Técnicas de detección de errores de transmisiónInvestigación Técnicas de detección de errores de transmisión
Investigación Técnicas de detección de errores de transmisión
José Alexis Cruz Solar
 
Implementacion de bases de datos en mysql
Implementacion de bases de datos en mysqlImplementacion de bases de datos en mysql
Implementacion de bases de datos en mysql
Pipe Muñoz
 
Protocolo arp
Protocolo arpProtocolo arp
Protocolo arp
Larry Ruiz Barcayola
 

La actualidad más candente (20)

Métodos para la detección y corrección de errores
Métodos para la detección y corrección de erroresMétodos para la detección y corrección de errores
Métodos para la detección y corrección de errores
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del Software
 
Generador de codigo intermedio
Generador de codigo intermedioGenerador de codigo intermedio
Generador de codigo intermedio
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Tecnicas de Conmutacion
Tecnicas de ConmutacionTecnicas de Conmutacion
Tecnicas de Conmutacion
 
Dispositivos De Interconexión de Redes
Dispositivos De Interconexión de  RedesDispositivos De Interconexión de  Redes
Dispositivos De Interconexión de Redes
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPU
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
 
1.2. El procesador y sus registros internos
1.2. El procesador y sus registros internos1.2. El procesador y sus registros internos
1.2. El procesador y sus registros internos
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 
TABLA DE CARACTERISTICAS DE MEDIOS DE TRANSMISION by JAVIER DAVID LOBATO PARDO
TABLA DE CARACTERISTICAS DE MEDIOS DE TRANSMISION by JAVIER DAVID LOBATO PARDOTABLA DE CARACTERISTICAS DE MEDIOS DE TRANSMISION by JAVIER DAVID LOBATO PARDO
TABLA DE CARACTERISTICAS DE MEDIOS DE TRANSMISION by JAVIER DAVID LOBATO PARDO
 
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
 
4.1. Funciones de la capa de red
4.1. Funciones de la capa de red4.1. Funciones de la capa de red
4.1. Funciones de la capa de red
 
Tema manejo de la entrada
Tema manejo de la entradaTema manejo de la entrada
Tema manejo de la entrada
 
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de Comunicación
Fundamentos de TelecomunicacionesUnidad 5 Dispositivos de ComunicaciónFundamentos de TelecomunicacionesUnidad 5 Dispositivos de Comunicación
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de Comunicación
 
Noción de archivo real y virtual
Noción de archivo real y virtual Noción de archivo real y virtual
Noción de archivo real y virtual
 
Equipo 6 programacion hibrida
Equipo 6 programacion hibridaEquipo 6 programacion hibrida
Equipo 6 programacion hibrida
 
Investigación Técnicas de detección de errores de transmisión
Investigación Técnicas de detección de errores de transmisiónInvestigación Técnicas de detección de errores de transmisión
Investigación Técnicas de detección de errores de transmisión
 
Implementacion de bases de datos en mysql
Implementacion de bases de datos en mysqlImplementacion de bases de datos en mysql
Implementacion de bases de datos en mysql
 
Protocolo arp
Protocolo arpProtocolo arp
Protocolo arp
 

Similar a Analizador léxico

Analisis lexico automatas i
Analisis lexico automatas iAnalisis lexico automatas i
Analisis lexico automatas i
rubiyanetvalenciavelazquez
 
Análisis lexicográfico
Análisis lexicográficoAnálisis lexicográfico
Análisis lexicográfico
Eraclio Castillo Vidal
 
Análisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoAnálisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoangiepao1717
 
investigacion.pdf
investigacion.pdfinvestigacion.pdf
investigacion.pdf
UlicesPerez1
 
Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2
Universidad
 
Lexicos.docx
Lexicos.docxLexicos.docx
Lexicos.docx
LuisGuillermoLpezFer
 
Compiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico ConceptosCompiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico Conceptos
Pedro Antonio Villalta (Pavillalta)
 
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
juanluisSanchez19
 
diaposichap.pptx
diaposichap.pptxdiaposichap.pptx
diaposichap.pptx
LuisSimn12
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintacticoalexisdario
 
Glosario De Trabajo De Examen
Glosario De Trabajo De ExamenGlosario De Trabajo De Examen
Glosario De Trabajo De ExamenJoel Soto
 
Glosario de trabajo de examen
Glosario de trabajo de examenGlosario de trabajo de examen
Glosario de trabajo de examenJoel Soto
 
Actividad 2 programacion de sistemas
Actividad 2 programacion de sistemasActividad 2 programacion de sistemas
Actividad 2 programacion de sistemasJESSIKADG86
 
Compiladores
CompiladoresCompiladores
Compiladores
Chocolatisima Cruperz
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
Infomania pro
 
Compiladores unidad1
Compiladores unidad1Compiladores unidad1
Compiladores unidad1X3025990
 
lexico.pptx
lexico.pptxlexico.pptx
lexico.pptx
AhiezerMorales
 

Similar a Analizador léxico (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 léxico y análisis sintáctico
Análisis léxico y análisis sintácticoAnálisis léxico y análisis sintáctico
Análisis léxico y análisis sintáctico
 
investigacion.pdf
investigacion.pdfinvestigacion.pdf
investigacion.pdf
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Compilador2
Compilador2Compilador2
Compilador2
 
Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2Introducción a los compiladores - Parte 2
Introducción a los compiladores - Parte 2
 
Lexicos.docx
Lexicos.docxLexicos.docx
Lexicos.docx
 
Compiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico ConceptosCompiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico Conceptos
 
Análisis Sintáctico
Análisis SintácticoAnálisis Sintáctico
Análisis Sintáctico
 
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
 
diaposichap.pptx
diaposichap.pptxdiaposichap.pptx
diaposichap.pptx
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
 
Glosario De Trabajo De Examen
Glosario De Trabajo De ExamenGlosario De Trabajo De Examen
Glosario De Trabajo De Examen
 
Glosario de trabajo de examen
Glosario de trabajo de examenGlosario de trabajo de examen
Glosario de trabajo de examen
 
Actividad 2 programacion de sistemas
Actividad 2 programacion de sistemasActividad 2 programacion de sistemas
Actividad 2 programacion de sistemas
 
Compiladores
CompiladoresCompiladores
Compiladores
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Compiladores unidad1
Compiladores unidad1Compiladores unidad1
Compiladores unidad1
 
lexico.pptx
lexico.pptxlexico.pptx
lexico.pptx
 

Analizador léxico

  • 2. ¿Qué es? El analizador lexico es una herramienta de un compilador que nos ayuda a leer los caracteres de entrada para formar componentes y asi poder identificarlos y pasar la informacion a analizado sintáctico.
  • 3. ANÁLISIS LÉXICO EN PYTHON En lugar de tratar de procesar un flujo de texto directamente, a menudo es más sencillo — y rápido — desglosar la entrada de texto en una serie de “tokens”, que deberían incluir palabras reservadas, literales, operadores y/o identificadores. Estos tokens pueden inspeccionarse por el procesador de forma más eficiente que un flujo de texto plano. El proceso de transformar la entra de texto en tokens se conoce como “análisis léxico”, “tokenizado” (“tokenizing”) o, simplemente, “escaneo” (“scanning”).
  • 4. El punto de entrada del analizador léxico es la unción PyTokenizer_Get en Parser/tokenizer.c. Esta función se llama repetidamente desde la función principal de procesado, parsetok en Parser/parsetok.c, que a su vez se utiliza por alguna de las distintas funciones de proceso de más alto nivel.
  • 5. Ejemplo: /* Parser/Python.asdl:25 */ | For(expr target, expr iter, stmt* body, stmt* orelse) | While(expr test, stmt* body, stmt* orelse) | Unless(expr test, stmt* body) | If(expr test, stmt* body, stmt* orelse)
  • 6.
  • 7. ¿Cuál es su función? Su principal función consiste en leer la secuencia de caracteres del programa fuente, carácter a carácter, y elaborar como salida la secuencia de componentes léxicos que utiliza el analizador sintáctico. El analizador sintáctico emite la orden al analizador léxico para que agrupe los caracteres y forme unidades con significado propio llamados componentes léxicos (tokens). Los componentes léxicos representan:
  • 8. Palabras reservadas: if, while, do, … Identificadores: variables, funciones, tipos definidos por el usuario, etiquetas, … Operadores: =, >, <, >=, <=, +, *, … Símbolos especiales: ;, ( ), { }, … Constantes numéricas: literales que representan valores enteros y flotantes. Constantes de carácter: literales que representan cadenas de caracteres.
  • 9. El analizador léxico opera bajo petición del analizador sintáctico devolviendo un componente léxico conforme el analizador sintáctico lo va necesitando para avanzar en la gramática.
  • 10. Además el analizador léxico es responsable de:  Manejo de apertura y cierre de archivo, lectura de caracteres y gestión de posibles errores de apertura.  Eliminar comentarios, espacios en blanco, tabuladores y saltos de línea.  Inclusión de archivos y macros.  Contabilizar número de líneas y columnas para emitir mensajes de error.
  • 11. COMPONENTES LÉXICOS, PATRONES Y LEXEMAS En la fase de análisis, los términos componentes léxicos (token), patrón y lexema se emplean con significados específicos. Un analizador léxico, inicialmente lee los lexemas y le asigna un significado propio.
  • 12.  Componente léxico (token) es la secuencia lógica y coherente de caracteres relativo a una categoría: identificador, palabra reservada, literales (cadena/numérica), operador o carácter de puntuación, además de que un componente léxico puede tener uno o varios lexemas. Ejemplo : • Identificadores • Enteros • Palabras reservadas • Espacios en blanco • Parentesis.
  • 13.  Patrón es una regla que genera la secuencia de caracteres que puede representar a un determinado componente léxico (expresión regular).  Lexema es una cadena de caracteres que concuerda con un patrón que describe un componente léxico (valor de cadena).  Atributos el análisis léxico debe proporcionar información adicional sobre los tokens en sus atributos asociados. El número de atributos depende de cada token.
  • 14. MANEJO DE BUFFER DE ENTRADA Existen algunos aspectos de eficiencia relacionados con el manejo de buffer. Primero se menciona un esquema de doble buffer de entrada que resulta útil como pre- análisis de la entrada para identificar los componentes léxicos. El segundo esquema introduce algunas técnicas útiles para aumentar la eficiencia del analizador léxico, empleando “centinelas”.
  • 15. Se utiliza un buffer dividido en dos mitades de N (1024 ó 512) caracteres cada una, Se leen N caracteres de entrada en cada mitad del buffer con un orden de lectura del sistema, en vez de invocar una instrucción de lectura para cada carácter de entrada. Si quedan menos de N caracteres en la entrada, entonces se lee un carácter especial eof en el buffer después de los caracteres de entrada. Es decir, eof marca el final del archivo fuente y es distinto a cualquier carácter de la entrada. Parejas de Buffer
  • 16. El origen de las expresiones regulares surge de la teoría de autómatas y la teoría de lenguajes formales, ambas parte de la ciencias computacionales teórica. Este campo estudia los modelos computacionales (autómata) y la manera de describir y clasificar los lenguajes formales. Un lenguaje formal puede ser especificado de varias maneras, tales como: EXPRESIONES REGULARES
  • 17.  Cadenas producidas por alguna gramática formal.  Cadenas producidas por expresiones regulares.  Cadenas aceptadas por algunos autómatas tales como las máquinas de Turing o autómatas de estado finito. A las expresiones regulares frecuentemente se les llaman patrones, ya que son expresiones que describen a un conjunto de cadenas.
  • 18. Una expresión regular denota un conjunto de secuencias de símbolos válidas que se construyen en base al alfabeto de un lenguaje. Generalmente estos conjuntos se representan como:
  • 19. Es una expresión regular que denota el conjunto vacío (el conjunto no contiene secuencias de símbolos).
  • 20. Es una expresión regular que denota al conjunto que contiene la secuencia vacía.
  • 21. AUTÓMATAS FINITOS Una maquina de estado finito o autómata finito, es un modelo computacional que consiste de un conjunto de estados, un estado de inicio, un alfabeto de entrada y una función de transición que traza un mapa a un siguiente estado, a partir del símbolo de entrada y el estado actual.
  • 22. Los autómatas finitos se pueden utilizar para describir el proceso de reconocimiento de patrones en cadenas de entrada. El sistema recibe una cadena constituida por símbolos de un alfabeto y determina si esa cadena pertenece al lenguaje que ese autómata reconoce. De esta manera se pueden construir analizadores léxicos, construyendo programas de computadora que realicen las operaciones de un autómata.
  • 23. AUTÓMATA FINITO NO DETERMINÍSTICO Un autómata finito no determinista (abreviado AFND) es un autómata finito que, a diferencia de los autómatas finitos deterministas (AFD), posee al menos un estado q ∈ Q, tal que para un símbolo a ∈ Σ del alfabeto, existe más de una transición δ(q,a) posible.
  • 24. AUTÓMATA FINITO DETERMINÍSTICO Un autómata finito determinista (DFA por sus siglas en ingles), es un modelo donde el siguiente estado de la transición esta dado particularmente por el estado actual y el carácter de entrada actual. Si ningún estado de transición es especificado, la cadena entrante es rechazada.
  • 25. La siguiente definición formalmente introduce un DFA, ( S, Σ, T, s, A ) donde: S conjunto finito no vacío de elementos llamado estados Σ alfabeto de entrada T es una función de transición de S × Σ en S s∈S estado inicial A ⊆ S conjunto no vacío de estados finales