Tema: Autómata de Pila

Documentos relacionados
Procesadores de Lenguaje

Unidad 4. Autómatas de Pila

PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR FACULTAD DE INGENIERIA ESCUELA DE INGENIERIA DE SISTEMAS

AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO

Autómatas de Pila y Lenguajes Incontextuales

Construcción de tablas de análisis sintáctico LL(1)

Ingeniería en Computación. Autómatas y Lenguajes Formales. Unidad de competencia IV: Conocer, utilizar y diseñar gramáticas de libre contexto

Autómatas Finitos Deterministicos (DFA)

Texto: Hopcroft, J. E., Motwani, R., Ullman, J.D., Introduction to Automata Theory, Languajes, and Computation. 3rd Edition. Addison Wesley, 2007.

Procesos de Fabricación I. Guía 1 SISTEMAS DE CONTROL HIDRÁULICO Y NEUMÁTICO

Clase 17: Autómatas de pila

Tema: Configuración de red AD-HOC

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

Computabilidad y Lenguajes Formales: Autómatas de Pila

Procesos de Fabricación I. Guía 1 1 SISTEMAS HIDRÁULICOS Y NEUMÁTICOS.

PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:

ESCUELA: UNIVERSIDAD DEL ISTMO

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.

PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES

Tema: Herramientas UML, Análisis y diseño UML

Computabilidad y Lenguajes Formales: Autómatas Finitos

Tema: Herramientas UML, Análisis y diseño UML

Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50

Procesadores de Lenguaje

Facultad de Ingeniería de Sistemas 1.5 Carrera: Ingeniería de Sistemas 1.6 Código: ISI 1.7 Nivel: Pregrado

Tema: Fuente de Alimentación de Rayos X

Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS. Números naturales. Inducción matemática

Teoría de Lenguajes y Autómatas Conceptos y teoremas fundamentales

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones

El Autómata con Pila

Procesos de Fabricación I. Guía 1 1 SISTEMAS DE CONTROL HIDRÁULICO Y NEUMÁTICO

Las Etapas de la Compilación

Procesos de Fabricación I. Guía 1 1 ESTUDIO DEL TRABAJO INDUSTRIAL

Un autómata con pila no determinista (APND) es una septupla Q A B F en la que

Teoría de Autómatas y Lenguajes Formales. Introducción a las Gramáticas. Gramáticas incontextuales

Teoría de Lenguajes. Clase Teórica 7 Autómatas de Pila y Lenguajes Independientes del Contexto Primer cuartimestre 2014

El análisis descendente LL(1) 6, 7 y 13 de abril de 2011

Temas. Objetivo. Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2) Definir autómatas de pila.

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Equivalencia Entre PDA y CFL

GRAMATICAS LIBRES DEL CONTEXTO

Electrónica II. Guía 4

Interrogación 2. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003

Lenguajes (gramáticas y autómatas)

El Autómata con Pila: Transiciones

PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE INTRODUCCIÓN Y TEORÍA DE LA COMPUTACIÓN

: Algorítmica y Estructura de Datos I

Amplificador inversor y no inversor

Tema: Punteros a Objetos. Puntero this.

Tema: Tipos Abstractos de Datos (TAD s) en C++.

DESARROLLO DE UN ENTORNO DE SIMULACIÓN PARA AUTÓMATAS DETERMINISTAS

Procesos de Fabricación I. Guía 1 MOTORES DE COMBUSTION INTERNA I

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Toda copia en PAPEL es un "Documento No Controlado" a excepción del original.

Carácter Modalidad Horas de estudio semestral (16 semanas)

Tema: Materiales y equipos para la manipulación de fibra óptica.

UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA VICERRECTORADO ACADÉMICO COORDINACION DE PRE-GRADO PROYECTO DE CARRERA DE INGENIERIA INDUSTRIAL

6. Autómatas a Pila. Grado Ingeniería InformáDca Teoría de Autómatas y Lenguajes Formales

Tema: Perdidas en Cableado Coaxial

Tema: Configuración de Redes PAN

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

Tema: Manejo del Puerto Serie con LabView

Procesos de Fabricación I. Guía 1 MOTORES DE COMBUSTION INTERNA I

Procesos de Fabricación II. Guía 1 1 PROCESOS DE FABRICACIÓN II

DEPARTAMENTO: Ingeniería e Investigaciones Tecnológicas

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07

Tema 2 Introducción a la Programación en C.

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002

Tema: Métodos de Ordenamiento. Parte 1.

Cátedra de Sintaxis y Semántica de Lenguajes

Unidad II: Análisis semántico

Convertir un AFND a un AFD

Traductores Push Down para Gramáticas LL

Autómatas Deterministas. Ivan Olmos Pineda

13.3. MT para reconocer lenguajes

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

Complejidad computacional (Análisis de Algoritmos)

Tema: Excel Formulas, Funciones y Macros

Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas

JavaCC Parte I. 1 Compiladores / Guía VII / Ciclo Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores.

Tema: Tabla de Símbolos

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas

Tema: Clases y Objetos en C#. Parte II.

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

Autómatas Finitos y Lenguajes Regulares

Sentido de recorrido. q i

Planificaciones Algoritmos y Programación I. Docente responsable: AZCURRA DIEGO ANDRES. 1 de 5

Lenguajes y Gramáticas

SILABO DEL CURSO FUNDAMENTOS DE PROGRAMACIÓN

P L A N I F I C A C I O N

Procesos de Fabricación II. Guía 1 1 PROCESOS DE FABRICACIÓN II

Tema: S7-1200, Valores Analógicos.

PLAN DE MATERIAS ACADEMUSOFT 3.2

GENERALIDADES DEL LENGUAJE C

Expresiones Regulares y Derivadas Formales

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TRABAJO DE PRÁCTICAS. Convocatoria de junio de 2013

7.4. UTILIDADES DE LAS PILAS

Transcripción:

Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores 1 Tema: Autómata de Pila Contenido La presente guía aborda los autómatas de pila, y se enfoca en la aplicación que se le puede dar a estas herramientas para el análisis sintáctico en gramáticas libres de contexto Objetivos Específicos Conocer las características básicas de un Autómata de Pila. Crear algunas secuencias de cadenas evaluadas por un Autómata de Pila en JFlap, e implementarlos en C++. Material y Equipo Guía No 3. Computadora con DevC++ y el simulador Jflap. Introducción Teórica Autómata de Pila De igual manera que los lenguajes regulares se pueden representar mediante autómatas finitos, los lenguajes libres de contexto tienen su correspondencia en otro tipo de dispositivo: El Autómata con Pila (AP). Un AP es una máquina de estado que usa una estructura de datos temporal llamada PILA, en la cual el último elemento que entra es el primero que sale de la pila (LIFO). Al iniciar el funcionamiento, la pila está vacía y al finalizar la pila debe quedar vacía.

2 Formalización de los autómatas de pila Un autómata de pila es un séxtuplo (K, Σ, Γ, Δ, s, F), donde: K es un conjunto de estados. Σ es el alfabeto de entrada. Γ es el alfabeto de la pila. s K es el estado inicial. F K es un conjunto de estados finales. Δ (K X Σ* X Γ*) X (K X Γ*) es la relación de transición. Si tenemos una transición de la forma: ((p, u, β), (q, γ)) Δ, el Ap hace lo siguiente: En el estado p, consume u de entrada. Saca β de la pila. Llega a un estado q. Mete γ en la pila. Si solo queremos meter la cadena γ en la pila se haría la transición ((p, u, ε),(q, γ)). Esta operación es conocida como: push. Si solo queremos sacar caracteres de la pila se haría con la transición ((p, u, β),(q, ε)). Esta operación es conocida como: pop. Aplicación de un analizador sintáctico La teoría de los autómatas de pila nos brinda la base para la construcción de rutinas de análisis sintáctico destinadas a una amplia gama de lenguajes independientes de contexto. Analizadores sintácticos En este punto debemos considerar como se pueden desarrollar las rutinas de análisis sintáctico a partir de los autómatas de pila. Este problema surge cuando se describe un lenguaje en función de reglas de escritura gramaticales, luego se desarrollan rutinas de análisis sintáctico para el lenguaje empleando teoría de los autómatas de pila como herramientas de desarrollo. Proceso de análisis sintáctico LL Buscamos traducir gramáticas independientes del contexto a autómatas de pila, el cual, analiza su cadena de entrada marcando antes el fondo de la pila, e insertando en la pila el símbolo inicial de la gramática. Luego repite los pasos siguientes según resulte aplicable.

3 1- Si la cima de la pila tiene un no terminal, reemplace de acuerdo con una de las reglas de reescritura de la gramática. 2- Si la cima de la pila contiene un terminal, elimínelo de la pila a la vez que lee de la entrada del mismo terminal. Si el símbolo de la entrada no equivale al símbolo de la pila, se declara que la entrada es una cadena ilegal. 3- Si aparece en la cima de la pila la marca de fondo de pila, elimínela y declare que la porción de cadena es aceptable. Este proceso analiza la sintaxis de una cadena, produciendo una derivación por la izquierda conforme lee la cadena de izquierda a derecha y produce derivaciones hacia la izquierda. Procedimiento PARTE I: SIMULACION EN JFLAP Ejemplo Para la gramática (Independiente de contexto). Con las siguientes producciones: Obtener un autómata de pila que acepte el LLC generado por la gramática anterior Tabla de transiciones del autómata de pila No Transiciones 1 (p, ε, ε) (q, S) 2 (q, ε, S) (q, asb) 3 (q, ε, S) (q, ε) 4 (q, a, a) (q, ε) 5 (q, b, b) (q, ε) Implemente el autómata en JFlap

4 Marque con una X las cadenas aceptadas por el autómata, utilizando el modo aceptado por estado final aaabbb aaaba abc aab Marque con una X las cadenas aceptadas por el autómata, utilizando el modo aceptado por pila vacía aaabbb aaaba abc aab Análisis de resultados Qué diferencia se da en JFLAP entre aceptar una palabra por estado final y al aceptarlo por la pila vacía? Según la teoría de autómatas de pila, cuál debería ser la condición de aceptación de una palabra?

5 Analice el siguiente pseudocódigo propuesto para la construcción del autómata if (pila vacía) estado := p; insertar(s); estado := q; while pila <> vacía do case cimadelapila of S: extraer(s); insertar(asb) o extraer(s); x: extraer(a); leer una a de la entrada; y: extraer(b); leer una b de la entrada; endcase endwhile; if(pila vacía) aceptar_palabra else error Qué errores produciría el pseudocódigo propuesto? Modifique el pseudocódigo de tal forma que elimine los errores

6 Investigación complementaria Implementar en C++ el pseudocódigo que simule el autómata de pila visto en la práctica. Investigue la definición formal de una maquina de Turing y en que se puede aplicar en el campo de los compiladores. Bibliografía http://www.frt.utn.edu.ar/sistemas/sintaxis/page31.html http://www.uhu.es/francisco.moreno/talf/docs/tema7.pdf

7 Guía 3: Autómata de Pila Hoja de cotejo: 3 Alumno: Máquina No: Docente: GL: Fecha: EVALUACION % 1-4 5-7 8-10 Nota CONOCIMIENTO Del 20 al 30% Conocimiento deficiente de los fundamentos teóricos Conocimiento y explicación incompleta de los fundamentos teóricos Conocimiento completo y explicación clara de los fundamentos teóricos APLICACIÓN DEL CONOCIMIENTO Del 40% al 60% ACTITUD Del 15% al 30% No tiene actitud proactiva. Actitud propositiva y con propuestas no aplicables al contenido de la guía. Tiene actitud proactiva y sus propuestas son concretas. TOTAL 100%