SlideShare uma empresa Scribd logo
1 de 9
a )
Diagrama de Transición de Estados.
Como paso intermedio en la construcción de un analizador léxico, primero convertimos
los patrones en diagramas de flujo estilizados, a los cuales se les llama “diagramas de
transición de estados”.
Los diagramas de transición de estados tienen una colección de nodos o círculos, llamados
estados. Cada estado representa una condición que podría ocurrir durante el proceso de
explorar la entrada, buscando un lexema que coincida con uno de varios patrones.
Podemos considerar un estado como un resumen de todo lo que debemos saber acerca de
los caracteres que hemos visto entre el apuntador inicio Lexema y el apuntador avance.
Las Líneas se dirigen de un estado a otro del diagrama de transición de estados. Cada
línea se etiqueta mediante un símbolo o conjunto de símbolos. Si nos encontramos en
cierto estado s, y el siguiente símbolo de entrada es a, buscamos una línea que salga del
estado 5 y este etiquetado por a (y tal vez por otros símbolos también). Si encontramos
dicha línea, avanzamos el apuntador avance y entramos al estado del diagrama de
transición de estados al que nos lleva esa línea. Asumiremos que todos nuestros diagramas
de transición de estados son deterministas, lo que significa que nunca hay más de una
línea que sale de un estado dado, con un símbolo dado de entre sus etiquetas Algunas
convenciones importantes de los diagramas de transición de estados son:
1. Se dice que ciertos estados son de aceptación, o finales. Estos estados indican que
se ha encontrado un lexema, aunque el lexema actual tal vez no consista de todas
las posiciones entre los apuntadores inicio Lexema y avance Siempre indicamos
un estado de aceptación mediante un círculo doble, y si hay que realizar una acción
(por lo general, devolver un token y un valor de atributo al analizador sintáctico),
la adjuntaremos al estado de aceptación.
2. Además, si es necesario retroceder el apuntador avance una posición (es decir, si
el lexema no incluye el símbolo que nos llevó al estado de aceptación), entonces
deberemos colocar de manera adicional un * cerca del estado de aceptación. En
nuestro ejemplo, nunca es necesario retroceder a avance más de una posición, pero
si lo fuera, podríamos adjuntar cualquier número de *s al estado de aceptación.
3. Un estado se designa como el estado inicial; esto se indica mediante una línea
etiquetada como “inicio”, que no proviene de ninguna parte. El diagrama de
transición siempre empieza en el estado inicial, antes de leer cualquier símbolo de
entrada.
Autómata
Del
Lenguaje
b )
En la figura anterior y en la de esta página podemos observar lo que es nuestro diagrama
de transición de estados aplicado a nuestro lenguaje de programación, específicamente en
cuanto a operadores se refiere.
Estos ya fueron vistos en al gramática y tabal de Tokens propia del lenguaje, cada uno
con una función específica. Nuestro analizador léxico va leyendo token por token dada
las secuencias de nuestro autómata, actuando este como un reglamento que se debe seguir
para la ejecución correcta del programa.
c )
El reconocimiento de las palabras reservadas y los identificadores presenta un problema.
Por lo general, las palabras clave como i f o then son reservadas, por lo que no son
identificadores, aun cuando lo parecen. Así, aunque por lo general usamos un diagrama
de transición de estados para buscar lexemas de identificadores, este diagrama también
reconocerá las palabras claves y de operaciones aritméticas que hemos declarado en este
documento previamente.
d )
Hay dos formas en las que podemos manejar las palabras reservadas que parecen
identificadores:
1. Instalar las palabras reservadas en la tabla de símbolos desde el principio. Un
campo dela entrada en la tabla de símbolos indica que estas cadenas nunca serán
identificadores ordinarios, y nos dice qué token representan.
2. Crear diagramas de transición de estados separados para cada palabra clave;
e )
f )
g )
h )
i )
Hay varias formas en las que pueden utilizarse los diagramas de transición de estados
para construir un analizador léxico. Sin importar la estrategia general, cada estado se
representa mediante una pieza de código.
Podemos imaginar una variable estado que contiene el número del estado actual para un
diagrama de transición de estados. Una instrucción Switch con base en el valor de estado
nos lleva al código para cada uno de los posibles estados, en donde encontramos la acción
de ese estado.
A menudo, el código para un estado es en sí una instrucción Switch o una bifurcación de
varias vías que determina el siguiente estado mediante el proceso de leer y examinar el
siguiente carácter de entrada.
Ejemplo:
El método preferido, y el que vamos a usar en las siguientes secciones, es combinar todos
los diagramas de transición de estados en uno solo. Permitimos que el diagrama de
transición de estados lea la entrada hasta que no haya un siguiente estado posible, y
después tomamos el lexema más largo que haya coincidido con algún patrón.
En las siguientes secciones se mostrara la aplicación de nuestro diagrama de estados al
momento de hacer concretamente nuestro analizador léxico utilizando JFlex. El modo en
que este va a analizando token por token hasta encontrar ya sea un error o el permiso
gramatical que da nuestras declaraciones anteriores para seguir ejecutándose.

Mais conteúdo relacionado

Mais procurados

Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
Marvin Zumbado
 
Principios electricos y aplicaciones digitalesl sesion 1
Principios electricos y aplicaciones digitalesl sesion 1Principios electricos y aplicaciones digitalesl sesion 1
Principios electricos y aplicaciones digitalesl sesion 1
Rodolfo Alcantara Rosales
 
Auditoria en desarrollo de sistemas diapo[1]
Auditoria en desarrollo de sistemas diapo[1]Auditoria en desarrollo de sistemas diapo[1]
Auditoria en desarrollo de sistemas diapo[1]
caramelomix
 

Mais procurados (20)

Sistemas basados en conocimiento
Sistemas basados en conocimientoSistemas basados en conocimiento
Sistemas basados en conocimiento
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
 
Agentes basados en objetos utilidad
Agentes basados en objetos utilidadAgentes basados en objetos utilidad
Agentes basados en objetos utilidad
 
Metodologias de diseño de bd
Metodologias de diseño de bdMetodologias de diseño de bd
Metodologias de diseño de bd
 
Capas de la ingenieria de software
Capas de la ingenieria de softwareCapas de la ingenieria de software
Capas de la ingenieria de software
 
Caso practico Auditoria de Sistemas Informaticos
Caso practico Auditoria de Sistemas InformaticosCaso practico Auditoria de Sistemas Informaticos
Caso practico Auditoria de Sistemas Informaticos
 
10. Sofware de auditoria de sistemas
10. Sofware de auditoria de sistemas10. Sofware de auditoria de sistemas
10. Sofware de auditoria de sistemas
 
UML
UMLUML
UML
 
Modelo de sistema de informacion
Modelo de sistema de informacionModelo de sistema de informacion
Modelo de sistema de informacion
 
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del software
 
Búsqueda Informada y Explorada
Búsqueda Informada y ExploradaBúsqueda Informada y Explorada
Búsqueda Informada y Explorada
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARES
 
Principios electricos y aplicaciones digitalesl sesion 1
Principios electricos y aplicaciones digitalesl sesion 1Principios electricos y aplicaciones digitalesl sesion 1
Principios electricos y aplicaciones digitalesl sesion 1
 
Segmentacion de memoria
Segmentacion de memoriaSegmentacion de memoria
Segmentacion de memoria
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de software
 
Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesos
 
Analisis y diseño de sistemas preguntas de repaso
Analisis y diseño de sistemas preguntas de repasoAnalisis y diseño de sistemas preguntas de repaso
Analisis y diseño de sistemas preguntas de repaso
 
Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemas
 
Auditoria en desarrollo de sistemas diapo[1]
Auditoria en desarrollo de sistemas diapo[1]Auditoria en desarrollo de sistemas diapo[1]
Auditoria en desarrollo de sistemas diapo[1]
 

Destaque

Leccion evaluativa 2
Leccion evaluativa 2Leccion evaluativa 2
Leccion evaluativa 2
Diego Perdomo
 
Leccion evaluativa 1 Metodos Numéricos
Leccion evaluativa 1 Metodos NuméricosLeccion evaluativa 1 Metodos Numéricos
Leccion evaluativa 1 Metodos Numéricos
Diego Perdomo
 
Examen final Autómatas y Lenguajes Formales
Examen final Autómatas y Lenguajes FormalesExamen final Autómatas y Lenguajes Formales
Examen final Autómatas y Lenguajes Formales
Diego Perdomo
 
Leccion evaluativa 2
Leccion evaluativa 2Leccion evaluativa 2
Leccion evaluativa 2
Diego Perdomo
 
Reconocimiento unidad 3 Metodos Numericos
Reconocimiento unidad 3 Metodos NumericosReconocimiento unidad 3 Metodos Numericos
Reconocimiento unidad 3 Metodos Numericos
Diego Perdomo
 
Examen Final Ingles III 2011-II
Examen Final Ingles III 2011-IIExamen Final Ingles III 2011-II
Examen Final Ingles III 2011-II
Diego Perdomo
 
Reconocimiento unidad 2
Reconocimiento unidad 2Reconocimiento unidad 2
Reconocimiento unidad 2
Diego Perdomo
 
Quiz 1 Métodos Numéricos
Quiz 1 Métodos NuméricosQuiz 1 Métodos Numéricos
Quiz 1 Métodos Numéricos
Diego Perdomo
 

Destaque (20)

Metodo congruencial mixto en java
Metodo congruencial mixto en javaMetodo congruencial mixto en java
Metodo congruencial mixto en java
 
Leccion evaluativa 2
Leccion evaluativa 2Leccion evaluativa 2
Leccion evaluativa 2
 
Leccion evaluativa 1 Metodos Numéricos
Leccion evaluativa 1 Metodos NuméricosLeccion evaluativa 1 Metodos Numéricos
Leccion evaluativa 1 Metodos Numéricos
 
CODETEC- Proyecto Final Taller de Investigacion 2
CODETEC- Proyecto Final Taller de Investigacion 2CODETEC- Proyecto Final Taller de Investigacion 2
CODETEC- Proyecto Final Taller de Investigacion 2
 
Practica7 transferencia registro
Practica7 transferencia registroPractica7 transferencia registro
Practica7 transferencia registro
 
MANUAL DE MICROCONTROLADORES PIC
MANUAL DE MICROCONTROLADORES PICMANUAL DE MICROCONTROLADORES PIC
MANUAL DE MICROCONTROLADORES PIC
 
Seguridad en Dispositivos de Almacenamiento
Seguridad en Dispositivos de AlmacenamientoSeguridad en Dispositivos de Almacenamiento
Seguridad en Dispositivos de Almacenamiento
 
Puntos importantes de la reforma en telecomunicaciones
Puntos importantes de la reforma en telecomunicacionesPuntos importantes de la reforma en telecomunicaciones
Puntos importantes de la reforma en telecomunicaciones
 
Examen final Autómatas y Lenguajes Formales
Examen final Autómatas y Lenguajes FormalesExamen final Autómatas y Lenguajes Formales
Examen final Autómatas y Lenguajes Formales
 
Herramientas para manejo de bases de datos
Herramientas para manejo de bases de datosHerramientas para manejo de bases de datos
Herramientas para manejo de bases de datos
 
Presentación unidad 1 redes de computadores luisa ballén
Presentación unidad 1 redes de computadores luisa ballénPresentación unidad 1 redes de computadores luisa ballén
Presentación unidad 1 redes de computadores luisa ballén
 
Leccion evaluativa 2
Leccion evaluativa 2Leccion evaluativa 2
Leccion evaluativa 2
 
Reconocimiento unidad 3 Metodos Numericos
Reconocimiento unidad 3 Metodos NumericosReconocimiento unidad 3 Metodos Numericos
Reconocimiento unidad 3 Metodos Numericos
 
Examen Final Ingles III 2011-II
Examen Final Ingles III 2011-IIExamen Final Ingles III 2011-II
Examen Final Ingles III 2011-II
 
Wronskyano de ecuacion diferencial 3x3
Wronskyano de ecuacion diferencial 3x3Wronskyano de ecuacion diferencial 3x3
Wronskyano de ecuacion diferencial 3x3
 
Características Generales de EIGRP
Características Generales de EIGRPCaracterísticas Generales de EIGRP
Características Generales de EIGRP
 
Ejemplos de Pantallas con Resoluciones 2k,4k y 8k
Ejemplos de Pantallas con Resoluciones 2k,4k y 8kEjemplos de Pantallas con Resoluciones 2k,4k y 8k
Ejemplos de Pantallas con Resoluciones 2k,4k y 8k
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Reconocimiento unidad 2
Reconocimiento unidad 2Reconocimiento unidad 2
Reconocimiento unidad 2
 
Quiz 1 Métodos Numéricos
Quiz 1 Métodos NuméricosQuiz 1 Métodos Numéricos
Quiz 1 Métodos Numéricos
 

Semelhante a Diagrama de transición de estados

Actividad 2 programacion de sistemas
Actividad 2 programacion de sistemasActividad 2 programacion de sistemas
Actividad 2 programacion de sistemas
JESSIKADG86
 
Automatas 2014 s1 guía
Automatas 2014 s1 guíaAutomatas 2014 s1 guía
Automatas 2014 s1 guía
raflhax
 
Analisis Lexico
Analisis LexicoAnalisis Lexico
Analisis Lexico
FARIDROJAS
 
Analizador LÉxico
Analizador LÉxicoAnalizador LÉxico
Analizador LÉxico
FARIDROJAS
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
alexisdario
 
Corporacion universitaria remington compiladores deisy
Corporacion universitaria remington compiladores deisyCorporacion universitaria remington compiladores deisy
Corporacion universitaria remington compiladores deisy
Deisy Nereida Lozada Ortiz
 

Semelhante a Diagrama de transición de estados (20)

Estructuras básicas
Estructuras básicas Estructuras básicas
Estructuras básicas
 
Estructuras básicas
Estructuras básicas Estructuras básicas
Estructuras básicas
 
Actividad 2 programacion de sistemas
Actividad 2 programacion de sistemasActividad 2 programacion de sistemas
Actividad 2 programacion de sistemas
 
Automatas 2014 s1 guía
Automatas 2014 s1 guíaAutomatas 2014 s1 guía
Automatas 2014 s1 guía
 
Taller analisis semantico
Taller analisis semanticoTaller analisis semantico
Taller analisis semantico
 
STIS- DIAGRAMAS UML.pptx
STIS- DIAGRAMAS UML.pptxSTIS- DIAGRAMAS UML.pptx
STIS- DIAGRAMAS UML.pptx
 
Análisis semántico
Análisis semánticoAnálisis semántico
Análisis semántico
 
Analisis Lexico
Analisis LexicoAnalisis Lexico
Analisis Lexico
 
Analisis lexico automatas i
Analisis lexico automatas iAnalisis lexico automatas i
Analisis lexico automatas i
 
Analizador LÉxico
Analizador LÉxicoAnalizador LÉxico
Analizador LÉxico
 
Densy
DensyDensy
Densy
 
Compiladores, Analisis Lexico
Compiladores, Analisis LexicoCompiladores, Analisis Lexico
Compiladores, Analisis Lexico
 
Articulo
ArticuloArticulo
Articulo
 
Diagramas estados
Diagramas estadosDiagramas estados
Diagramas estados
 
Analizador sintactico
Analizador sintacticoAnalizador sintactico
Analizador sintactico
 
Java
JavaJava
Java
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
Corporacion universitaria remington compiladores deisy
Corporacion universitaria remington compiladores deisyCorporacion universitaria remington compiladores deisy
Corporacion universitaria remington compiladores deisy
 
T37 isc zaraos vazquez jorge alejandro
T37 isc zaraos vazquez jorge alejandroT37 isc zaraos vazquez jorge alejandro
T37 isc zaraos vazquez jorge alejandro
 
Presentación 2014 profe gabriel
Presentación 2014 profe gabrielPresentación 2014 profe gabriel
Presentación 2014 profe gabriel
 

Mais de Hugo Alberto Rivera Diaz

Mais de Hugo Alberto Rivera Diaz (20)

Tipos de Sensores Opticos
Tipos de Sensores OpticosTipos de Sensores Opticos
Tipos de Sensores Opticos
 
Aplicación de Sensor CNY70. REPORTE DE PRACTICA
Aplicación  de Sensor CNY70. REPORTE DE PRACTICAAplicación  de Sensor CNY70. REPORTE DE PRACTICA
Aplicación de Sensor CNY70. REPORTE DE PRACTICA
 
Actuadores
ActuadoresActuadores
Actuadores
 
Firewall Logico
Firewall LogicoFirewall Logico
Firewall Logico
 
DIAGRAMA DE PROCESO-INSTALACION DE WINDOWS 10
DIAGRAMA DE PROCESO-INSTALACION DE WINDOWS 10DIAGRAMA DE PROCESO-INSTALACION DE WINDOWS 10
DIAGRAMA DE PROCESO-INSTALACION DE WINDOWS 10
 
Fractales + Trangulo de Sierpinski en Java
Fractales + Trangulo de Sierpinski  en JavaFractales + Trangulo de Sierpinski  en Java
Fractales + Trangulo de Sierpinski en Java
 
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...
 
Nuevas tecnologías y aplicaciones de los sistemas de bases de datos
Nuevas tecnologías y aplicaciones de los sistemas de bases de datosNuevas tecnologías y aplicaciones de los sistemas de bases de datos
Nuevas tecnologías y aplicaciones de los sistemas de bases de datos
 
ADMINISTRACION DE BASE DE DATOS UNIDAD 1
ADMINISTRACION DE BASE DE DATOS UNIDAD 1ADMINISTRACION DE BASE DE DATOS UNIDAD 1
ADMINISTRACION DE BASE DE DATOS UNIDAD 1
 
Relación del DBA con otras áreas.
Relación del DBA con otras áreas.Relación del DBA con otras áreas.
Relación del DBA con otras áreas.
 
Cuadro comparativo de los diferentes DBMS
Cuadro comparativo de los diferentes DBMSCuadro comparativo de los diferentes DBMS
Cuadro comparativo de los diferentes DBMS
 
Cuadro comparativo Tipos de Investigación
Cuadro comparativo Tipos de InvestigaciónCuadro comparativo Tipos de Investigación
Cuadro comparativo Tipos de Investigación
 
¿How to make an Acoustic Guitar? Trabajo de Ingles.
¿How to make an Acoustic Guitar? Trabajo de Ingles.¿How to make an Acoustic Guitar? Trabajo de Ingles.
¿How to make an Acoustic Guitar? Trabajo de Ingles.
 
Tipos de multiplexacion
Tipos de multiplexacionTipos de multiplexacion
Tipos de multiplexacion
 
Técnicas de Modulacion
Técnicas de ModulacionTécnicas de Modulacion
Técnicas de Modulacion
 
Lenguaje de Transferencia de Registro
Lenguaje de Transferencia de RegistroLenguaje de Transferencia de Registro
Lenguaje de Transferencia de Registro
 
Cronograma Actividades. Implementacion de ALU con Bus controlado por Bluetoot...
Cronograma Actividades. Implementacion de ALU con Bus controlado por Bluetoot...Cronograma Actividades. Implementacion de ALU con Bus controlado por Bluetoot...
Cronograma Actividades. Implementacion de ALU con Bus controlado por Bluetoot...
 
Circuitos electricos
Circuitos electricosCircuitos electricos
Circuitos electricos
 
Practica Resistencias Valor Practico y Relativo
Practica Resistencias Valor Practico y RelativoPractica Resistencias Valor Practico y Relativo
Practica Resistencias Valor Practico y Relativo
 
Reporte-Instalando Windows Server 2012
Reporte-Instalando Windows Server 2012Reporte-Instalando Windows Server 2012
Reporte-Instalando Windows Server 2012
 

Último

analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
Ricardo705519
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
EdwinC23
 

Último (20)

PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTOPRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
 
Suelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramientoSuelo, tratamiento saneamiento y mejoramiento
Suelo, tratamiento saneamiento y mejoramiento
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cereales
 
Libro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdfLibro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdf
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
 
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdfAnálisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
 
Sistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptxSistemas de Ecuaciones no lineales-1.pptx
Sistemas de Ecuaciones no lineales-1.pptx
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptx
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
semana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.pptsemana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.ppt
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operaciones
 
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
Introduction to Satellite Communication_esp_FINAL.ppt
Introduction to Satellite Communication_esp_FINAL.pptIntroduction to Satellite Communication_esp_FINAL.ppt
Introduction to Satellite Communication_esp_FINAL.ppt
 

Diagrama de transición de estados

  • 1. a ) Diagrama de Transición de Estados. Como paso intermedio en la construcción de un analizador léxico, primero convertimos los patrones en diagramas de flujo estilizados, a los cuales se les llama “diagramas de transición de estados”. Los diagramas de transición de estados tienen una colección de nodos o círculos, llamados estados. Cada estado representa una condición que podría ocurrir durante el proceso de explorar la entrada, buscando un lexema que coincida con uno de varios patrones. Podemos considerar un estado como un resumen de todo lo que debemos saber acerca de los caracteres que hemos visto entre el apuntador inicio Lexema y el apuntador avance. Las Líneas se dirigen de un estado a otro del diagrama de transición de estados. Cada línea se etiqueta mediante un símbolo o conjunto de símbolos. Si nos encontramos en cierto estado s, y el siguiente símbolo de entrada es a, buscamos una línea que salga del estado 5 y este etiquetado por a (y tal vez por otros símbolos también). Si encontramos dicha línea, avanzamos el apuntador avance y entramos al estado del diagrama de transición de estados al que nos lleva esa línea. Asumiremos que todos nuestros diagramas de transición de estados son deterministas, lo que significa que nunca hay más de una línea que sale de un estado dado, con un símbolo dado de entre sus etiquetas Algunas convenciones importantes de los diagramas de transición de estados son: 1. Se dice que ciertos estados son de aceptación, o finales. Estos estados indican que se ha encontrado un lexema, aunque el lexema actual tal vez no consista de todas las posiciones entre los apuntadores inicio Lexema y avance Siempre indicamos un estado de aceptación mediante un círculo doble, y si hay que realizar una acción (por lo general, devolver un token y un valor de atributo al analizador sintáctico), la adjuntaremos al estado de aceptación. 2. Además, si es necesario retroceder el apuntador avance una posición (es decir, si el lexema no incluye el símbolo que nos llevó al estado de aceptación), entonces deberemos colocar de manera adicional un * cerca del estado de aceptación. En nuestro ejemplo, nunca es necesario retroceder a avance más de una posición, pero si lo fuera, podríamos adjuntar cualquier número de *s al estado de aceptación. 3. Un estado se designa como el estado inicial; esto se indica mediante una línea etiquetada como “inicio”, que no proviene de ninguna parte. El diagrama de transición siempre empieza en el estado inicial, antes de leer cualquier símbolo de entrada. Autómata Del Lenguaje
  • 2. b ) En la figura anterior y en la de esta página podemos observar lo que es nuestro diagrama de transición de estados aplicado a nuestro lenguaje de programación, específicamente en cuanto a operadores se refiere. Estos ya fueron vistos en al gramática y tabal de Tokens propia del lenguaje, cada uno con una función específica. Nuestro analizador léxico va leyendo token por token dada las secuencias de nuestro autómata, actuando este como un reglamento que se debe seguir para la ejecución correcta del programa.
  • 3. c ) El reconocimiento de las palabras reservadas y los identificadores presenta un problema. Por lo general, las palabras clave como i f o then son reservadas, por lo que no son identificadores, aun cuando lo parecen. Así, aunque por lo general usamos un diagrama de transición de estados para buscar lexemas de identificadores, este diagrama también reconocerá las palabras claves y de operaciones aritméticas que hemos declarado en este documento previamente.
  • 4. d ) Hay dos formas en las que podemos manejar las palabras reservadas que parecen identificadores: 1. Instalar las palabras reservadas en la tabla de símbolos desde el principio. Un campo dela entrada en la tabla de símbolos indica que estas cadenas nunca serán identificadores ordinarios, y nos dice qué token representan. 2. Crear diagramas de transición de estados separados para cada palabra clave;
  • 5. e )
  • 6. f )
  • 7. g )
  • 8. h )
  • 9. i ) Hay varias formas en las que pueden utilizarse los diagramas de transición de estados para construir un analizador léxico. Sin importar la estrategia general, cada estado se representa mediante una pieza de código. Podemos imaginar una variable estado que contiene el número del estado actual para un diagrama de transición de estados. Una instrucción Switch con base en el valor de estado nos lleva al código para cada uno de los posibles estados, en donde encontramos la acción de ese estado. A menudo, el código para un estado es en sí una instrucción Switch o una bifurcación de varias vías que determina el siguiente estado mediante el proceso de leer y examinar el siguiente carácter de entrada. Ejemplo: El método preferido, y el que vamos a usar en las siguientes secciones, es combinar todos los diagramas de transición de estados en uno solo. Permitimos que el diagrama de transición de estados lea la entrada hasta que no haya un siguiente estado posible, y después tomamos el lexema más largo que haya coincidido con algún patrón. En las siguientes secciones se mostrara la aplicación de nuestro diagrama de estados al momento de hacer concretamente nuestro analizador léxico utilizando JFlex. El modo en que este va a analizando token por token hasta encontrar ya sea un error o el permiso gramatical que da nuestras declaraciones anteriores para seguir ejecutándose.