ANALISIS LEXICO
y Diagramas de Transición
Análisis Lexico y Diagramas de Transición
1
Análisis Lexico y Diagramas de Transición
2
Objetivos
Conocer el funcionamiento del analizador léxico
Comprender su relación con la tabla de
símbolos.
Entender como interviene la generación de
errores a partir de ésta etapa.
Aprender a especificar un analizador léxico.
Realizar diagramas y tablas de transicion.
Análisis Lexico y Diagramas de Transición
3
Términos
Token◦Elemento léxico del lenguaje◦Símbolo No Terminal de las fases siguientes
Patrón◦Expresión regular que define el lenguaje◦Letra (Letra | Digito)*
Análisis Lexico y Diagramas de Transición
4
Términos
Lexema◦ Secuencia de caracteres que concuerda con un
patrón◦ Numero, caracter.
Atributos◦ Estructura de datos de cada token para
almacenarse en la TS◦ Depende del tipo de token◦ [ID, Lexema, Tipo, Valor, línea]
Análisis Lexico y Diagramas de Transición
5
Pasos del AL
Identificar la colección de tokens
Estructurar la colección de tokens
Describir el lenguaje como expresiones
regulares
Especificar un Diagrama de Transición
Traducir el Diagrama a una tabla de
transición
Análisis Lexico y Diagramas de Transición
6
Ejemplo
Analizador léxico que reconozca los
siguientes elementos:
Números enteros
Operadores aritméticos suma, resta,
producto, división, incremento y decremento
(+, - *, /, ++,--)
Identificadores
WHILE
Análisis Lexico y Diagramas de Transición
7
Especificación AL
Especificación formalGramáticas Lineales
Recursivas a izquierdas Recursivas a derechas
expresiones regularesAutómatas Finitos (Diagramas de
Transición)
Análisis Lexico y Diagramas de Transición
8
Funciones del AL
Tratar con la tabla de símbolosGenerar tokens bajo demanda del
analizador sintácticoManejar el fichero fuenteIgnorar comentariosContabilizar posición de tokensPreprocesar macros, constantes,
includes…
Análisis Lexico y Diagramas de Transición
9
Gramáticas
Gramáticas Linealmente RecursivasAlfabeto terminalAlfabeto no terminalAxiomaReglas de producción
Análisis Lexico y Diagramas de Transición
10
Tipos de Gramáticas
Tipos de gramáticas recursivas:
Recursividad a izquierdasS := A letra | A digitoA := A letra | A digito | letra
Recursividad a derechasS := letra AA := letra A | digito A | letra | digito
Análisis Lexico y Diagramas de Transición
11
Expresiones Regulares
Alfabeto
Cierre simétrico + (1 o más)
Cierre transitivo * (0 o más)
Análisis Lexico y Diagramas de Transición
12
Ejemplos
a*(b | c)+bccbcbccbcabbbcccabbcbcccbbc
(0-9)*.(0-9)+0.2364253567.45627.7584785.0
Análisis Lexico y Diagramas de Transición
13
Diagramas de transición
UN DIAGRAMA DE TRANSICIONES es una colección finita de círculos, los cuales se pueden rotular para fines de referencia, conectados por flechas que reciben el nombre de ARCOS
Análisis Lexico y Diagramas de Transición
14
Más Ejemplos DT
Análisis Lexico y Diagramas de Transición
15
Características del DT
Cada uno de estos arcos se etiqueta con un símbolo que podría presentarse en la cadena de entrada que se analiza.
Uno de los círculos se designa con un apuntador, y representa una posición inicial.
Además, por lo menos uno de los círculos se representa como un circulo doble; estos círculos dobles designan posiciones finales del diagrama en las cuales se ha reconocido una cadena valida.
Análisis Lexico y Diagramas de Transición
16
Características del DT
Decimos que una cadena de símbolos es aceptada por un diagrama de transiciones si los símbolos que aparecen en la cadena (de izquierda a derecha) corresponden a una secuencia de arcos rotulados que conducen del circulo designado por el apuntador a un circulo doble
Análisis Lexico y Diagramas de Transición
17
Características del DT
Los círculos de un diagrama de transiciones representa posiciones, o estados, donde no podemos encontrar al evaluar una cadena de símbolos.
Es común llamar estados a los círculos de un diagrama de transiciones.
Él circulo de partida se llama estado inicial y los círculos dobles, estados de aceptación.
Análisis Lexico y Diagramas de Transición
18
Estados de Aceptación
Cuál es el estado inicial? Cuál es el estado de aceptación? Cuál sería una cadena válida?
Autor: Pedro Villalta
Correos de [email protected]
https://plus.google.com/u/0/105223072803758915793/aboutPerfil Google+
Redes Sociales
http://ingenieria-en-sistemas-informaticos.blogspot.com/Sitio Web
Facebook y Twitterfacebook.com/pavillaltafacebook.com/pavillaltaugbtwitter.com/pavillalta
Comercio Electronico (E-Commerce)
Compiladores e Interpretes
Desarrollo de Aplicaciones Para Dispositivos Móviles
Ingenieria en Sistemas Informáticos
Ingenieria Web (Web Engineering)
Noticias de Tecnología | Informática | Ciencia
Programación Visual Basic .Net
Redes de Computadoras
Investigación Científica
Artes Marciales, Tae Kwon Do
Blogs Educativos
Portafolio Profesional
Blog Educativos
Recommended