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

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
angiepao1717
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
perlallamas
 
Protocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modemProtocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modem
Mirna L. Torres Garcia
 
Lenguajes regulares
Lenguajes regularesLenguajes regulares
Lenguajes regulares
Kenia Adams
 
3. Modelos OSI y TCP/IP (Características, Funciones, Diferencias)
3.	Modelos OSI y TCP/IP (Características, Funciones, Diferencias)3.	Modelos OSI y TCP/IP (Características, Funciones, Diferencias)
3. Modelos OSI y TCP/IP (Características, Funciones, Diferencias)
wilber147
 

La actualidad más candente (20)

Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
 
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
 
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
 
Control de Flujo [Telecomunicaciones]
Control de Flujo [Telecomunicaciones]Control de Flujo [Telecomunicaciones]
Control de Flujo [Telecomunicaciones]
 
Modelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosModelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativos
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
 
Investigacion errores lexicos
Investigacion errores lexicosInvestigacion errores lexicos
Investigacion errores lexicos
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Analizador lexico
Analizador lexicoAnalizador lexico
Analizador lexico
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de Contexto
 
Ado net
Ado netAdo net
Ado net
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
 
Protocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modemProtocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modem
 
Lenguajes regulares
Lenguajes regularesLenguajes regulares
Lenguajes regulares
 
UNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICAUNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICA
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
3. Modelos OSI y TCP/IP (Características, Funciones, Diferencias)
3.	Modelos OSI y TCP/IP (Características, Funciones, Diferencias)3.	Modelos OSI y TCP/IP (Características, Funciones, Diferencias)
3. Modelos OSI y TCP/IP (Características, Funciones, Diferencias)
 

Destacado

Analizador sintáctico
Analizador sintácticoAnalizador sintáctico
Analizador sintáctico
carmensp
 
Analizador LÉxico
Analizador LÉxicoAnalizador LÉxico
Analizador LÉxico
FARIDROJAS
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
Areli Gómez
 
Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico
maryr_
 
Hardware Y Software
Hardware Y SoftwareHardware Y Software
Hardware Y Software
aidaa
 

Destacado (19)

Analizador sintáctico
Analizador sintácticoAnalizador sintáctico
Analizador sintáctico
 
Computaciongrafica
ComputaciongraficaComputaciongrafica
Computaciongrafica
 
Entregable proyecto de_base_de_datos_unigran_1
Entregable proyecto de_base_de_datos_unigran_1Entregable proyecto de_base_de_datos_unigran_1
Entregable proyecto de_base_de_datos_unigran_1
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Tabla SiMbolos, victor mamani catachura, boreasH,Compiladores
Tabla SiMbolos, victor mamani catachura, boreasH,CompiladoresTabla SiMbolos, victor mamani catachura, boreasH,Compiladores
Tabla SiMbolos, victor mamani catachura, boreasH,Compiladores
 
Ps2 u5
Ps2 u5Ps2 u5
Ps2 u5
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Claselexico
ClaselexicoClaselexico
Claselexico
 
Apuntes01
Apuntes01Apuntes01
Apuntes01
 
Download.php
Download.phpDownload.php
Download.php
 
Analizador LÉxico
Analizador LÉxicoAnalizador LÉxico
Analizador LÉxico
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
 
TABLA DE SIMBOLOS
TABLA DE SIMBOLOSTABLA DE SIMBOLOS
TABLA DE SIMBOLOS
 
Compiladores, Analisis Lexico, Tabla de Transiciones
Compiladores, Analisis Lexico, Tabla de TransicionesCompiladores, Analisis Lexico, Tabla de Transiciones
Compiladores, Analisis Lexico, Tabla de Transiciones
 
Analisis semantico
Analisis semanticoAnalisis semantico
Analisis semantico
 
Compiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico ConceptosCompiladores, Analisis Lexico Conceptos
Compiladores, Analisis Lexico Conceptos
 
Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico
 
Hardware Y Software
Hardware Y SoftwareHardware Y Software
Hardware Y Software
 
Cap4 compiladores
Cap4 compiladoresCap4 compiladores
Cap4 compiladores
 

Similar a Analizador léxico

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
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
alexisdario
 
Glosario De Trabajo De Examen
Glosario De Trabajo De ExamenGlosario De Trabajo De Examen
Glosario De Trabajo De Examen
Joel Soto
 
Glosario de trabajo de examen
Glosario de trabajo de examenGlosario de trabajo de examen
Glosario de trabajo de examen
Joel Soto
 
Actividad 2 programacion de sistemas
Actividad 2 programacion de sistemasActividad 2 programacion de sistemas
Actividad 2 programacion de sistemas
JESSIKADG86
 
Compiladores unidad1
Compiladores unidad1Compiladores unidad1
Compiladores unidad1
X3025990
 
Corporacion universitaria remington compiladores deisy
Corporacion universitaria remington compiladores deisyCorporacion universitaria remington compiladores deisy
Corporacion universitaria remington compiladores deisy
Deisy Nereida Lozada Ortiz
 

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
 
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
 
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
 
Compiladores unidad1
Compiladores unidad1Compiladores unidad1
Compiladores unidad1
 
lexico.pptx
lexico.pptxlexico.pptx
lexico.pptx
 
Analizador sintáctico
Analizador sintácticoAnalizador sintáctico
Analizador sintáctico
 
Taller analisis semantico
Taller analisis semanticoTaller analisis semantico
Taller analisis semantico
 
Corporacion universitaria remington compiladores deisy
Corporacion universitaria remington compiladores deisyCorporacion universitaria remington compiladores deisy
Corporacion universitaria remington compiladores deisy
 

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