Teoría de lenguajes y compiladores

Slides:



Advertisements
Presentaciones similares
Autómata finito Determinista
Advertisements

Introducción ¿Qué es un Algoritmo?
GRAMATICA LIBRE DE CONTEXTO
Ejemplo Práctico de un Compilador Pequeño
INSTITUTO TECNOLÓGICO DE MINATITLÁN
Filminas Segunda semana
Filminas Tercera Semana CI-1322 Autómatas y Compiladores Elaborado por: Sergio Pastrana Espinoza A33888.
Compiladores e intérpretes Análisis Sintáctico III
Conceptos básicos Def. Un símbolo es cualquier carácter imprimible.
Autómatas de pila (Pushdown automata)
Gramáticas.
Autómatas Finitos.
Diseño de AFN’s.
Máquinas de Turing (MT)
Autómata Finito Un autómata finito (AF) es un modelo de computación muy restringido, sin embargo tiene una gran aplicación en reconocimiento de patrones.
PILA.
TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY
ESTRUCTURA DE DATOS Unidad 03 PILAS.
¿Cómo hacer para que una máquina comprenda el LN?
ESTRUCTURAS LINEALES UNIDAD 3.
TEÓRIA DE CONJUNTOS.
Organización de Lenguajes y Compiladores 1
Analizadores Sintácticos Descendentes Predictivos
Teoría de lenguajes y compiladores
Expresiones regulares
Tema 2 Autómatas finitos 1. Autómata finito determinista
Traducción dirigida por la Sintaxis
Teoría de lenguajes y compiladores
2º curso Ingeniería Técnica en Informática de Sistemas UNED
ANALISIS SINTACTICO El análisis gramatical es la tarea de determinar la sintaxis, o estructura, de un programa. Por esta razón también se le conoce como.
Teoría de lenguajes y compiladores
PROGRAMACIÓN LÓGICA.
Tema 2 Lenguajes Formales.
Proceso de información en la computadora
Análisis sintáctico LR: SLR (LR simple)
Teoría de lenguajes y compiladores
Autómatas de Pila Teoría del Autómata.
2º curso Ingeniería Técnica en Informática de Sistemas UNED
ANALISIS SINTACTICO Parte I
Teoría de lenguajes y compiladores
Teoría de lenguajes y compiladores
Tema 2 Autómatas finitos 1. Autómata finito determinista
Lenguajes regulares Teoría del Autómata.
Teoría de lenguajes y compiladores Analizadores lexicográficos
Teoría de Autómatas I 2º curso Ingeniería Técnica en Informática de Sistemas UNED.
Teoría de Autómatas I 2º curso Ingeniería Técnica en Informática de Sistemas UNED.
MÁQUINAS DE TURING Teoría del Autómata.
Análisis Léxico Área Software de Base.
Lenguajes Formales y Autómatas
Teoría de Autómatas y Lenguajes Formales Informática Técnica de Gestión ESCUELA SUPERIOR DE INFORMATICA Universidad de Castilla-La Mancha Tema 1. Introducción.
Autómatas de Pila (Pushdown Automatón)
Programación de Sistemas FEI – 2008
1 AFDAFN AF Gramáticas lineales derecha Expresiones regulares Tema 2 Método de los AF Método de las derivadas Sistemas de Ecuaciones Tema 1.
Son estructuras de datos que almacenan y recuperan sus elementos atendiendo a un estricto orden (LIFO Last – in, first –out Ultimo en entrar – primero.
UNIVERSIDAD LATINA (UNILA)
Teoría de lenguajes y compiladores
Teoría de lenguajes y compiladores
Teoría de lenguajes y compiladores
I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN.
Teoría de lenguajes y compiladores
Lenguajes y Autómatas Alfabeto.- es un conjunto finito no vacío cuyos elementos se denominan símbolos Longitud de una palabra.- Es el número de símbolos.
IV. GRAMÁTICAS DISTRIBUIDAS Y TABLAS DE SÍMBOLOS
Semana #8 Kathryn Jones Pérez A Analizadores sintácticos LR Existen tres técnicas para construir tablas de análisis sintáctico LR para una gramática.
Teoría de Autómatas I 2º curso Ingeniería Técnica en Informática de Sistemas UNED.
Pilas Grupo 4. 1 Stack o Pila Definición: Una pila es una estructura de datos, a la cual se le puede ingresar o sacar elementos por un sólo lado. También.
República Bolivariana de Venezuela Ministerio del Poder Popular para la Educación Superior Universidad Valle del Momboy Carvajal, Trujillo Alumnas Luzmila.
Unidad 2 Lenguajes, Expresiones Regulares, Autómatas
Centro Universitario Valle de México Gramáticas Libres de Contexto Dra. Maricela Quintana López Elaborado por: Autómatas y Lenguajes Formales.
1 Autómatas de pila (Pushdown automata). 2 Autómata de conteo Autómata finito determinista con un contador de enteros o “bolsa” en la que se colocan o.
Tema 2 Autómatas finitos 1. Autómata finito determinista
Transcripción de la presentación:

Teoría de lenguajes y compiladores Unidad I Analizador lexicográfico Semana 3 Temas Autómatas con pila.

Objetivo General El alumno al finalizar el curso podrá desarrollar aplicaciones que le permitan determinar si una estructura gramatical corresponde a una sentencia valida en la definición de un lenguaje en particular, teniendo en cuenta el contexto sintáctico y semántico. Así mismo estará capacitado para proponer nuevas formas estructurales en la definición de lenguajes de programación.

Objetivos Específicos Diseñar e implementar un analizador lexicográfico. Diseñar e implementar un analizador sintáctico. Diseñar e implementar un analizador semántico.

Objetivos Instruccionales Comprender el funcionamiento de los autómatas para el reconocimiento o aceptación de cadenas que forman parte o son generadas por un lenguaje.

Temas Autómatas con pila

Definición Autómatas con pila Se utiliza un stack o pila LIFO (Last In First Out) en el cual el orden es importante. La acción que lleva a cabo el autómata sólo es influenciada no sólo por el estado en que se encuentra y por el símbolo que lee, sino también por el tipo de objeto que se encuentra arriba en la pila (cima). a b q0 q1 q2 q3 qi qn Cinta de entrada Cabeza lectora Control   Pila q4

Definición formal (1) Autómatas con pila Un autómata de pila es una sexteta (K, , , , s0, F) ; donde: K es un conjunto no vacío de estados.  es el alfabeto de entrada, no vacío.  es el alfabeto de la pila, no vacío. s0  K es el estado inicial. F  K es el conjunto de estados finales.   (K  (  {})  (  {}))  (K  *) es la relación de transición. (p, u, )  (q, )   significa que el autómata está en el estado p, lee el símbolo u, saca  de la pila, pasa al estado q e introduce  a la pila. La operación “push” se logra tomando  como la palabra vacía. La operación “pop” se logra tomando  como la palabra vacía. Ya que  es una relación y no necesariamente una función, un autómata de pila es no determinista.

Definición formal (2) Autómatas con pila Una palabra es aceptada por un AP si al “procesarla” completamente, se llega a un estado final y la pila queda vacía. Debido al no-determinismo del autómata es posible que al terminar de procesar la palabra, varios estados estén activos. Es suficiente que uno de estos estados sea final para que la palabra se acepte. L(M) denota al lenguaje formado por las palabras aceptadas por M.

Representación gráfica de un AP Autómatas con pila Representación gráfica de un AP La transición ((p, u, ), (q, )), (p, u, ) = (q, ), se representa gráficamente por y significa que cuando estamos en el estado p, leemos de la palabra de entrada el símbolo u y sacamos del stack el símbolo , entonces pasamos al estado q y ponemos en la pila la cadena . p q u,  / 

Ejemplo Autómatas con pila q0 q1 Autómata de pila que acepte {aibi | i > 0} K = {q0, q1}  = {a, b}  = {A} s0 = q0 F = {q0, q1} (q0, a, ) = (q0, A) (q0, b, A) = (q1, ) (q1, b, A) = (q1, ) a,  / A b, A /  q0 q1

Ejemplo: palíndromos de longitud impar Autómatas con pila Autómata de pila que acepte {wcwR | w  {a, b}*}. wR es la palabra w al revés, por ejemplo, “anita”R = “atina”. K = {q0, q1}  = {a, b, c}  = {A, B} s0 = q0 F = {q1} (q0, a, ) = (q0, A) (q1, a, A) = (q1, ) (q0, b, ) = (q0, B) (q1, b, B) = (q1, ) (q0, c, ) = (q1, ) a,  / A b,  / B b, B /  a, A /  c,  /  q0 q1

Ejemplo: palíndromos de longitud par Autómatas con pila Autómata de pila que acepte {wwR | w  {a, b}*}. wR es la palabra w al revés, por ejemplo, “anita”R = “atina”. K = {q0, q1}  = {a, b}  = {A, B} s0 = q0 F = {q1} (q0, a, ) = (q0, A) (q1, a, A) = (q1, ) (q0, b, ) = (q0, B) (q1, b, B) = (q1, ) (q0, , ) = (q1, ) a,  / A b,  / B b, B /  a, A /  ,  /  q0 q1

AF  AP Autómatas con pila Todo lenguaje aceptado por un autómata finito es también aceptado por un autómata de pila. Si M = (K, , , s0, F) es un autómata finito, entonces (K, , , ’, s0, F) con  =  ’ = {((p, u, ), (q, )) | (p, u, q)  } acepta el mismo lenguaje que M. Los lenguajes libres de contexto son aceptados por los autómatas de pila y los lenguajes generados por los autómatas de pila son los lenguajes libres de contexto.

LLC  AP Autómatas con pila Sea G = (V, , R, S) una gramática libre de contexto. Entonces el autómata de pila M = ({p, q}, , V, , p, {q}) donde la relación de transición se define de la siguiente manera acepta exactamente el mismo lenguaje que G. 1) (p, , ) = (q, S) 2) (q, , A) = (q, x) para cada regla A  x  R 3) (q, , ) = (q, ) para cada    El autómata de pila contiene sólo dos estados. El primero se utiliza sólo en la primera transición por lo que los estados no sirven para “recordar” las características de la palabra de entrada, este “recordatorio” se hace en la pila. Las transiciones tipo 2) lo que hacen es derivar en la pila la palabra de entrada sin consumir ningún carácter de entrada. Las transiciones tipo 3) comparan la palabra en la pila con la palabra de entrada.

Ejemplo Autómatas con pila Obtener un AP que acepte el lenguaje generado por la gramática libre de contexto cuyas reglas son: S  aSa S  bSb S  c Transiciones del AP Tipo 1): (p, , ) = (q, S) Tipo 2): (q, , S) = (q, aSa) (q, , S) = (q, bSb) (q, , S) = (q, c) Tipo 3): (q, a, a) = (q, ) (q, b, b) = (q, ) (q, c, c) = (q, )

...Ejemplo: analizar abcba Autómatas con pila Estado Falta leer Pila p abcba  q abcba S q abcba aSa q bcba Sa q bcba bSba q cba Sba q cba cba q ba ba q a a q  

Teoría de lenguajes y compiladores Unidad I Analizador lexicográfico Semana 3 Temas Autómatas con pila.