Proyecto Unico - Parte 1 - Solución



Documentos relacionados
Autómatas finitos no deterministas (AFnD)

UNIDAD I. ALGORITMOS

Autómatas Finitos y Lenguajes Regulares

Clase 09: AFN, AFD y Construcción de Thompson

Máquinas Secuenciales, Autómatas y Lenguajes Formales. Tema 4: Autómatas finitos deterministas. Holger Billhardt holger.billhardt@urjc.

Tema 3 Constantes, Variables y Tipos

Definición formal de autómatas finitos deterministas AFD

2: Autómatas finitos y lenguajes regulares.

TEORÍA DE CONJUNTOS A ={ 1, 2, 3, 4, 5, 6 }

INSTITUTO TECNOLÓGICO DE APIZACO TEORÍA DE CONJUNTOS CONJUNTOS Y TÉCNICAS DE CONTEO

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES

Universidad Rey Juan Carlos HOJA DE PROBLEMAS TEMA 3: REPRESENTACIÓN DE LA INFORMACIÓN

Teoría de conjuntos. Tema 1: Teoría de Conjuntos.

Capítulo 1. Algoritmos, diagramas de flujo y programas.

Tema 3.- Gramáticas formales

2.Teoría de Autómatas

Definición(2) La base (r) de un sistema de numeración especifica el número de dígitos o cardinal* de dicho conjunto ordenado. Las bases más utilizadas

Autómata finito y Expresiones regulares A* C. B

VALOR ABSOLUTO. Definición.- El valor absoluto de un número real, x, se define como:

Clase 08: Autómatas finitos

AUTÓMATAS DE PILA. Nota: Si existe transición de tipo (2), sólo se garantiza que AP es determinístico si s A, δ( e i, s, X) está indefinida.

TEMA 5. GRAMÁTICAS REGULARES.

Teoría de Conjuntos y Conjuntos Numéricos

José A. Jiménez Nieto

Lenguajes Regulares. Antonio Falcó. - p. 1

Serafín Moral Departamento de Ciencias de la Computación. Modelos de Computación ITema 2: Autómatas Finitos p.1/88

Teoría de errores. Departamento de Análisis Matemático Universidad de La Laguna

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA SUR. Ciencias de la ingeniería

Notas del cursos. Basadas en los prontuarios de MATE 3001 y MATE 3023

2. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

PROGRAMACIÓN ALGORITMOS y DIAGRAMAS

TEMA 2: TEORÍA DE CONJUNTOS Y CONJUNTOS NUMÉRICOS.

Algoritmos y Diagramas de flujo

SSL Guia de Ejercicios

La Jerarquía de Chomsky

Autómatas finitos con salidas

FUNCIONES. Definición de función. Ejemplos.

Un conjunto se considera como una colección de objetos, llamados miembros o elementos del conjunto. Existen dos formas de expresar un conjunto:

Ejercicios Representación de la información

Autómatas y Lenguajes Formales. Tema 3.2: Autómatas Finitos No Deterministas. Luis Peña luis.pena@urjc.es

Área Académica: Licenciatura en Sistemas Computacionales

Conjuntos. Dra. Noemí L. Ruiz Limardo Revisado 2011 Derechos Reservados

CURSOSO. Aritmética: Númerosnaturalesyenteros. Númerosracionalesyfraciones. MATEMÁTICAS. AntonioF.CostaGonzález

Declaración de variables (integer, single, double, boolean, etc.) en Visual Basic. Dim. Ejemplos. (CU00309A)

Conjuntos y relaciones

II. SECCIONES PRINCIPALES Figura1: Partes principales de un Informe Técnico

DOCUMENTO 3: DISTRIBUCIÓN DE PROBABILIDAD DE V. A. CONTINUA: LA DISTRIBUCIÓN NORMAL

ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS Tipos de datos Expresiones Operadores y operandos Identificadores como localidades de memoria

Tema 2: Autómatas finitos

Conjuntos Un conjunto es una colección de objetos. A cada uno de esos objetos se llama elemento del conjunto.

Introducción a la Teoría de Automátas

Programación y matemática

Tema 2. Funciones Lógicas. Algebra de Conmutación. Representación de circuitos digitales. Minimización de funciones lógicas.

Introducción a Autómatas Finitos

UNIDAD: ÁLGEBRA Y FUNCIONES ECUACIÓN DE SEGUNDO GRADO Y FUNCIÓN CUADRÁTICA

TEORÍA DE AUTÓMATAS I Informática de Sistemas

Pertenencia y no pertenencia

Autómatas Finitos INAOE. Introducción a. Autómatas. Definición formal de un. Finito Determinístico. Finito No- Finitos y Lenguajes Formales

MATEMÁTICAS 1ero ESO

Conceptos Básicos de Funciones

Matemáticas Financieras

1. INTRODUCCIÓN A LA MODELIZACIÓN CONCEPTUAL DE DATOS

4. Método Simplex de Programación Lineal

Combinación Lineal. Departamento de Matemáticas, CCIR/ITESM. 10 de enero de 2011

EXPRESIONES REGULARES Y AUTOMATAS

TEMA I: LOS CONCEPTOS FUNDAMENTALES DE LA TEORÍA DE LA COMPUTABILIDAD

Escribiendo números usando la notación

Estudio de funciones mediante límites y derivadas

Repaso. Lenguajes formales

Números Cardinales W = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,... } ("Whole Numbers")

SISTEMA DE NUMERACIÓN BINARIO

Pasos en el Método Simplex

NORMA INFORMACIÓN Y DOCUMENTACIÓN. FORMATOS PARA EL INTERCAMBIO DE LA INFORMACIÓN. International Standard ISO Campo de aplicación

Matrices y determinantes

Lenguajes No Regulares

La función cuadrática

Prueba experimental. Determinación de la capacidad de un condensador. Pila

MATEMÁTICAS BÁSICAS UNIVERSIDAD NACIONAL DE COLOMBIA - SEDE MEDELLÍN CLASE # 5

CAPITULO II. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

PREPARACIÓN DEL MANUSCRITO Y EJEMPLOS DE ARTÍCULOS ENVIADOS PARA

Compiladores e Intérpretes Análisis Léxico

NÚMEROS REALES. Página 27 REFLEXIONA Y RESUELVE. El paso de Z a Q. El paso de Q a Á

2 Operaciones de producto y división de polinomios

CONJUNTO DE LOS NÚMEROS REALES

Polinomios. Un polinomio tiene la siguiente forma general: Donde: y las potencias de las variables descienden en valor

Pruebas de Acceso a Enseñanzas Universitarias Oficiales de Grado (PAEG) Matemáticas aplicadas a las Ciencias Sociales II - Junio Propuesta B

Selectividad Junio 2007 JUNIO 2007

APUNTES DE FUNCIONES PARA 4º ESO

Una población es el conjunto de todos los elementos a los que se somete a un estudio estadístico.

Examen de Teoría de Autómatas y Lenguajes Formales

Una matriz es una tabla ordenada (por filas y columnas) de escalares a i j de la forma: a

Universidad de Puerto Rico en Arecibo Departamento de Matemáticas Expresiones Algebraicas y Polinomios

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA DIVISIÓN DE CIENCIAS BÁSICAS COORDINACIÓN DE MATEMÁTICAS LOGARITMOS

DETERMINANTES página 251 DETERMINANTES. Por ejemplo: es un determinante de tres filas y tres columnas.

Proposiciones Condicionales

EJERCICIOS RESUELTOS DE INECUACIONES. Juan Jesús Pascual. Inecuaciones

Dirección de Operaciones. SESIÓN # 5: El método simplex. Segunda parte.

SESIÓN PRÁCTICA 7: REGRESION LINEAL SIMPLE PROBABILIDAD Y ESTADÍSTICA. PROF. Esther González Sánchez. Departamento de Informática y Sistemas

Transcripción:

Universidad Simón Bolívar Dpto. de Computación y Tecnología de la Información CI3721 - Traductores e Interpretadores Abril-Julio 2006 Proyecto Unico - Parte 1 - Solución Revisión Teórico-Práctica 1. Presente tres expresiones regulares 1 E 1, E 2 y E 3 que correspondan respectivamente al reconocimiento de la palabra clave con, del identificador de estados y del identificador de caracter. E 1 = con E 2 = [a za Z][a za Z0 9] E 3 =. donde [a z] = a + b +... + z, i.e. la unión de los caracteres alfabéticos en minúscula y. representa todos los caracteres excepto el salto de línea. Nota para los correctores: se especificó que un caracter era cualquier caracter, de modo que incluye letras, dígitos y cualquier caracter especial excepto el salto de línea, eso equivale al. en Alex. Si los conjuntos para ésta expresión regular no hacen esa aclaratoria sino que simplemente son un conjunto reducido, la expresión no está bien. 2. Presente los diagramas de transición de tres autómatas finitos (posiblemente nodeterminísticos) M 1, M 2 y M 3 que reconozcan respectivamente a los lenguajes denotados por E 1, E 2 y E 3. Figura 1: Autómata para M 1 Figura 2: Autómata para M 2 1 Use la notación formal estudiada en teoría. La notación de Alex no es aceptable en éste caso. 1

Figura 3: Autómata para M 3 donde X es el conjunto de todos los caracteres excepto el salto de línea, incluyendo letras mayúsculas y minúsculas, dígitos, caracteres especiales, espacio en blanco, etc. Nota para los correctores: sirve cualquier autómata equivalente. En el caso de M 3 es importante que especifiquen que el conjunto de caracteres es todos excepto el salto de línea. 3. Presente un autómata finito (posiblemente no-determinístico) que reconozca la unión de los lenguajes L(M 1 ), L(M 2 ) y L(M 3 ). Figura 4: Autómata para L(M 1 ) L(M 2 ) L(M 3 ) Nota para los correctores: sirve cualquier autómata equivalente, con los mismos comentarios anteriores. En cualquier caso el autómata debe tener tres estados finales diferentes. Si tiene un sólo estado final es imposible discernir cual expresión fue reconocida. 4. Note que, a efectos de implementar un analizador lexicográfico, es importante que el autómata M sepa reportar a cuál de los tres lenguajes pertenece cada palabra que él reconozca. Esto significa que M debe poder identificar a cuál de los tres lenguajes corresponde cada estado final. Puede esto crear algún conflicto? En caso afirmativo, cómo debe resolverse este conflicto? Si puede crear conflictos entre la expresión regular para con y la expresión regular para el identificador. En éste caso, el conflicto puede resolverse dando prioridad a la expresión regular para con ya que se trata de una palabra reservada del lenguaje. Esta manera de resolver el conflicto es la misma que usa Alex, escogiendo como expresión reconocida aquella correspondiente a la primera regla que aparezca en la especificación; en éste caso, la regla para con debe aparecer antes que la regla para identificadores. Nota para los correctores: la explicación debe dejar en claro que el estudiante se dá cuenta que sólo puede haber conflicto entre con y los identificadores en este caso particular. 5. Construya un autómata finito determinístico mínimo N equivalente a M. Indique a cuál de los tres lenguajes corresponde cada estado final justificando su respuesta. 2

Se pueden eliminar trivialmente las λ-transiciones del autómata construido en la pregunta 3, aunque sigue siendo no-determinístico. En este autómata letra hace referencia a cualquier letra mayúscula o minúscula, digito hace referencia a cualquiera de los digitos decimales, mientras que caracter hace referencia a cualquier caracter imprimible (espacio en blanco, letras, dígitos, caracteres especiales de puntuación, etc.). Nos queda la representación gráfica de la Figura 5. Figura 5: Autómata no-determinístico inicial Luego aplicamos el algoritmo para convertir el autómata no determinístico a uno determinístico. Tomamos como nuevo estado inicial a [i] y aplicando el algoritmo calculamos δ como 2 δ([i], c) = [A, D] δ([i], ) = [E] δ([i], caracter que no sea c) = [D] δ([a, D], o) = [B, D] δ([a, D], letra) = [D] δ([a, D], digito) = [D] δ([e], caracter) = [F ] δ([d], letra) = [D] δ([d], digito) = [D] δ([b, D], n) = [C, D] δ([b, D], letra) = [D] δ([b, D], digito) = [D] δ([f ], ) = [G] δ([c, D], letra) = [D] δ([c, D], digito) = [D] y construimos F = {[A, D], [B, D], [C, D], [D], [G]} con la representación gráfica de la Figura 6. 2 No se incluyen las transiciones cuyo conjunto destino es. 3

Figura 6: Autómata determinístico Finalmente, aplicamos el algoritmo de minimización de autómatas determinísticos. Calculamos entonces la relación de equivalencia: 0 = {{[i], [E], [F ]}, {[AB], [BD], [CD], [G], [D]}}. Por definición, 0 con dos clases de equivalencia: Q\F y F. 1 = {{[i]}, {[E]}, {[F ]}, {[AD], [BD], [CD], [D]}, {[G]}}. Puesto que: comienza [i] y [E] : δ([i], ) = [E] δ([e], ) = [E] 0 [i] 1 [E] [i] y [F ] : δ([i], ) = [E] δ([f ], ) = [G] [E] 0 [G] [i] 1 [F ] [E] y [F ] : δ([e], ) = δ([f ], ) = [G] 0 [G] [E] 1 [F ] [AD] y [BD] : δ([ad], o) = [BD] δ([bd], o) = [D] [BD] 0 [D] δ([ad], letra) = [D] δ([bd], letra) = [D] [D] 0 [D] δ([ad], digito) = [D] δ([bd], digito) = [D] [D] 0 [D] δ([ad], n) = [D] δ([bd], n) = [CD] [D] 0 [CD] [AD] 1 [BD] [AD] y [CD] : δ([ad], o) = [BD] δ([cd], o) = [D] [BD] 0 [D] δ([ad], letra) = [D] δ([cd], letra) = [D] [D] 0 [D] δ([ad], digito) = [D] δ([cd], digito) = [D] [D] 0 [D] [AD] 1 [CD] [AD] y [D] : δ([ad], o) = [BD] δ([d], o) = [D] [BD] 0 [D] δ([ad], letra) = [D] δ([d], letra) = [D] [D] 0 [D] δ([ad], digito) = [D] δ([d], digito) = [D] [D] 0 [D] [AD] 1 [D] [AD] y [G] : δ([ad], letra) = [D] δ([g], letra) = [D] 0 [AD] 1 [G] 4

2 = {{[i]}, {[E]}, {[F ]}, {[AD], [BD], [CD], [D]}, {[G]}}. Puesto que [AD] y [BD] : δ([ad], o) = [BD] δ([bd], o) = [D] [BD] 0 [D] δ([ad], letra) = [D] δ([bd], letra) = [D] [D] 0 [D] δ([ad], digito) = [D] δ([bd], digito) = [D] [D] 0 [D] δ([ad], n) = [D] δ([bd], n) = [CD] [D] 0 [CD] [AD] 1 [BD] [AD] y [CD] : δ([ad], o) = [BD] δ([cd], o) = [D] [BD] 0 [D] δ([ad], letra) = [D] δ([cd], letra) = [D] [D] 0 [D] δ([ad], digito) = [D] δ([cd], digito) = [D] [D] 0 [D] [AD] 1 [CD] [AD] y [D] : δ([ad], o) = [BD] δ([d], o) = [D] [BD] 0 [D] δ([ad], letra) = [D] δ([d], letra) = [D] [D] 0 [D] δ([ad], digito) = [D] δ([d], digito) = [D] [D] 0 [D] [AD] 1 [D] Como 1 = 2 tomamos 2 como definitiva y construimos el autómata mínimo con M =< {{[i], [E], [F ], [AD, BD, CD, D], [G]}, Σ, δ, [i], {[AD, BD, CD, D], [G]} > con δ definida como δ ([i], letra) = [AD, BD, CD, D] δ ([i], ) = [E] δ ([E], caracter) = [F ] δ ([F ], ) = [G] δ ([AD, BD, CD, D], letra) = [AD, BD, CD, D] δ ([AD, BD, CD, D], digito) = [AD, BD, CD, D] y obtenemos la representación gráfica de la Figura 7. Figura 7: Autómata determinístico mínimo En el autómata determinístico mínimo hay dos estados finales: 5

El estado final [G] corresponde a la aceptación de la expresión regular para el caracter encerrado entre comillas, evidente por el camino que se sigue desde el estado inicial del autómata. El estado final [AD, BD, CD, D] corresponde a la aceptación de la expresión regular para la palabra reservada con o bien para la expresión regular de un identificador. Si se usara el autómata para construir un analizador lexicográfico, es necesario eliminar esa ambiguedad según sea la cadena particular identificada. Recordando que el autómata reconocerá la cadena más larga, está claro que si se encuentra un identificador que tenga el prefijo con (e.g. contador) el autómata seguirá hasta consumir el resto de los caracteres y estará claro lo que ha reconocido. Pero si está presente exactamente la cadena con, el analizador lexicográfico debe indicar que se ha reconocido esa palabra reservada y no un identificador; esto se logra con alguna regla específica impuesta por el analizador lexicográfico, como podría ser la ocurrencia de una regla antes de la otra para resolver el conflicto. En el caso de Alex, la regla para la palabra reservada debería estar antes que la regla para el identificador. Nota para los correctores: la explicación debe dejar claro que sólo hay ambiguedad en el estado final de con e identificador, que en base a la longitud de la cadena reconocida podría decidirse inmediatamente que se trata de un identificador, pero que para el caso de la cadena precisa es necesaria una regla de resolución de conflicto externa al autómata. 6