LENGUAJES Y GRAMÁTICAS

Documentos relacionados
GRAMATICAS LIBRES DEL CONTEXTO

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

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

Procesadores de Lenguaje

Lenguajes y Gramáticas

Matemáticas. ticas Discretas. Lenguajes y Gramáticas. Tenemos dos clases de lenguaje: Lenguaje Formal

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

No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo:

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

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Teoría de Autómatas y Compiladores [ICI-445] Capítulo 1: Lenguajes y Gramáticas Formales

Expresiones regulares, gramáticas regulares

1. Computadores y programación

Agenda. BNF y EBNF Brevemente, lo necesario para especificar el lenguaje sobre el que vamos a trabajar.

TEORÍA DE CONJUNTOS.

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

Autómatas de Pila y Lenguajes Incontextuales

Lenguajes, Gramáticas y Autómatas Conceptos

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

TEMA 1: NÚMEROS REALES

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

13.3. MT para reconocer lenguajes

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

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

Unidad 4. Autómatas de Pila

Inteligencia artificial

Tema: Autómata de Pila

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

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

Escribir la expresión regular de un número entero que no acepte que el primer dígito sea cero salvo el número 0. Solución: 0 [1-9][0-9]*

Computabilidad y Lenguajes Formales: Autómatas Finitos

Tema 2. Fundamentos de la Teoría de Lenguajes Formales

APUNTES ACERCA DE LA ECUACIÓN DE LA RECTA

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Grado en Ingeniería Informática Online, Curso Universidad Rey Juan Carlos

{ } Listado de elementos del conjunto

Representación de números en la recta real. Intervalos

Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación.

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

06 Análisis léxico II

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07

PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES

Teoría de Lenguajes. Gramáticas incontextuales

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto

Expresiones Regulares y Derivadas Formales

TEMA 1. Números Reales. Teoría. Matemáticas

UNIDAD DE APRENDIZAJE I

SISTEMA DE NUMEROS REALES

Grafos. Suponiendo que e = [u, v]. Entonces los nodos u y v se llaman extremos de e y u y v se dice que son nodos adyacentes o vecinos.

Sumario: Teoría de Autómatas y Lenguajes Formales. Capítulo 2: Lenguajes Formales. Capítulo 2: Lenguajes Formales

Clase 17: Autómatas de pila

2do. Parcial. Todos los ejercicios se entregarán en hojas separadas. El examen tipo test cuenta hasta 2 puntos sobre la nota total.

BASES DE DATOS TEMA 2 MODELOS DE DATOS

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Teoría de Conjuntos y Conjuntos Numéricos

Definición 1 Un semigrupo es un conjunto E provisto de una operación binaria asociativa sobre E, se denota por (E, ).

1 Conjuntos y propiedades de los números naturales

Algoritmos y Programas

En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse

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

Introducción. El uso de los símbolos en matemáticas.

FIN EDUCATIVO FIN INSTRUCTIVO

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

Aritmética de Enteros

Gramáticas independientes del contexto AUTÓMATAS Y LENGUAJES FORMALES LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA. Otras definiciones I

Lenguajes (gramáticas y autómatas)

3 Polinomios y funciones racionales

Tema 3. Análisis sintáctico descendente

Sintaxis y Semántica del Lenguaje. Gramáticas

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

Recopilación de ejercicios sobre expresiones regulares en exámenes de Compiladores e intérpretes

En una recta numérica el punto que representa el cero recibe el nombre de origen.

Sistemas Numéricos Cambios de Base Errores

Clase 03: Alfabetos, símbolos y cadenas

UNIDAD 9. DATOS COMPLEJOS PILAS

UNIDAD I. ALGORITMOS

Una cadena sobre Σ es cualquier secuencia de elementos de longitud finita sobre Σ.

En la fig. 1 se representa el grafo, G=(V,A) donde: V = {1, 2, 3, 4, 5, 6} A = { {1,2}, {1,3}, {1,5}, {3}, {3,4}, {4,5}, {5,6} }

Guía Nº 1(B) ALGEBRA

Equivalencia Entre PDA y CFL

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

CURSOS CENEVAL TOLUCA

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

Teoría de la Computabilidad

2. SEÑALES Y SISTEMAS DISCRETOS EN EL TIEMPO. Una señal puede ser definida como una portadora física de información. Por ejemplo,

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

CONJUNTO Y TIPOS DE CONJUNTOS

Fundamentos de Programación 2017-I

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

Una dirección IP es una secuencia de unos y ceros de 32 bits. La Figura muestra un número de 32 bits de muestra.

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

TEMA 3 Elementos de la teoría de los conjuntos. *

Técnicas de Programación

Capítulo 1 Lenguajes formales 6

Teoría de Conjuntos y Conjuntos Numéricos

Procesadores de Lenguaje

Algebra Lineal. Gustavo Rodríguez Gómez. Verano 2011 INAOE. Gustavo Rodríguez Gómez (INAOE) Algebra Lineal Verano / 21

Autómatas Deterministas. Ivan Olmos Pineda

UNIDAD II: TEORÍA DE CONJUNTOS 2.1. INTRODUCCIÓN

Ingeniería del Software I

Transcripción:

LENGUAJES Y GRAMÁTICAS Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 20 de septiembre de 2008

Contenido Lenguajes y Gramáticas Gramáticas Gramáticas con estructura de frase Derivaciones Lenguaje generado Tipos de Gramáticas Árboles de derivación Forma Backus Naur

Contenido Lenguajes y Gramáticas Gramáticas Gramáticas con estructura de frase Derivaciones Lenguaje generado Tipos de Gramáticas Árboles de derivación Forma Backus Naur

Gramáticas Son usadas para generar las frases de un lenguaje y determinar si una frase esta en el lenguaje. Se centran en la sintaxis (forma de la sentencia) y no en la semántica (significado). sintaxis de un lenguaje natural La sintaxis de un lenguaje natural (los lenguajes hablados como: el español, ingles, etc) es extremadamente complicada, tanto que no es posible especificar todas sus reglas. sintaxis de un lenguaje formal Un lenguaje formal si es especificado por un conjunto de reglas de sintaxis bien definidas.

Gramáticas (2) Un vocabulario (o alfabeto) V es un conjunto finito y no vacío de elementos llamados símbolos. Una palabra sobre V es una cadena de longitud finita de elementos de V. La palabra vacía o cadena vacía, denotada por λ, es la cadena que no contiene símbolos. El conjunto de todas las palabras sobre V es denotado por V. Un lenguaje sobre V es un subconjunto de V.

Contenido Lenguajes y Gramáticas Gramáticas Gramáticas con estructura de frase Derivaciones Lenguaje generado Tipos de Gramáticas Árboles de derivación Forma Backus Naur

Gramáticas con estructura de frase Una gramática con estructura de frase G = (V, T, S, P) consiste de: Un vocabulario V. Un subconjunto T de V que son elementos terminales. Un símbolo inicial S de V T. Un conjunto de producciones P (reglas que especifican que podemos reemplazar una cadena por otra). El conjunto V T es denotado por N. los elementos de N son llamados elementos no terminales. Cada producción en P debe contener al menos un símbolo no terminal en su lado izquierdo.

Gramáticas estructura de frase (2) Ejemplo: Sea G = (V, T, S, P) donde: V = {a, b, A, B, S} T = {a, b} S es el símbolo inicial y P = {S ABa, A BB, B ab, AB b}. G es un ejemplo de una gramática de estructura de frase. Que frases se pueden formar a partir de esta gramática?

Contenido Lenguajes y Gramáticas Gramáticas Gramáticas con estructura de frase Derivaciones Lenguaje generado Tipos de Gramáticas Árboles de derivación Forma Backus Naur

Derivaciones Sea G = (V, T, S, P) una gramática con estructura de frase. Sean w 0 = lz 0 r y w 1 = lz 1 r cadenas sobre V. Si z 0 z 1 es una producción de G, decimos que w 1 se deriva directamente de w 0 y escribimos w 0 w1. Si w 0, w1,..., w n son cadenas sobre V tal que w 0 w 1 w 2,..., w n 1 w n, decimos que w n es derivable o se deriva desde w 0 y se denotar a w 0 wn. La secuencia de pasos usados para obtener w n desde w 0 se llama derivación.

Derivaciones (2) Ejercicio: Sea G = (V, T, S, P) donde: V = {a, b, A, B, S} T = {a, b} S es el símbolo inicial y P = {S ABa, A BB, B ab, AB b}. Determinar cual de las siguientes cadenas son derivables: 1. abababa 2. ababba 3. abab

Contenido Lenguajes y Gramáticas Gramáticas Gramáticas con estructura de frase Derivaciones Lenguaje generado Tipos de Gramáticas Árboles de derivación Forma Backus Naur

Lenguaje generado Sea G = (V, T, S, P) una gramática con estructura de frase. El lenguaje generado por G (o el lenguaje de G) denotado por L(G), es el conjunto de todas las cadenas de terminales que se derivan del estado inicial S. En otras palabras: L(G) = {w T S w}

Lenguaje generado (2) Ejercicio1: Sea G = (V, T, S, P) donde: V = {S, 0, 1} T = {0, 1} S es el símbolo inicial y P = {S 11S, S 0}. Cuál es L(G), el lenguaje de esta gramática? R//: Conjunto de cadenas iniciada con una cantidad par de unos y finalizadas en cero.

Lenguaje generado (2) Ejercicio2: Construir gramáticas con estructura de frase que generen los siguientes lenguajes: 1. L(G 1 ) = {0 n 1 n n = 0, 1,...}. 2. L(G 2 ) = {0 2n 1 n n = 0, 1,...}. 3. L(G 3 ) = {0 m 1 n m 0, n 0}. 4. L(G 4 ) = {0 m 1 n m n 0}. 5. El lenguaje de las cadenas que contienen un numero par de solo unos (y ningun otro simbolo). 6. El lenguaje de las cadenas que inician en uno seguidas de una cantidad impar de ceros. 7. El lenguaje de las cadenas palíndromes (conformadas por los simbolos cero y uno).

Contenido Lenguajes y Gramáticas Gramáticas Gramáticas con estructura de frase Derivaciones Lenguaje generado Tipos de Gramáticas Árboles de derivación Forma Backus Naur

Tipos de Gramáticas Clasificación según Chomsky (Avram Noam Chomsky doctor en linguística) Las gramáticas con estructura de frase se pueden clasificar según el tipo de producciones que utilizen. Los diferentes tipos de lenguajes corresponden a las clases de lenguaje que púeden ser reconocidas utilizando diferentes modelos de máquinas de computación.

Tipos de Gramáticas (2) Gramáticas tipo 0 Tambien llamadas de estructura de frase. Aquellas que no imponen ninguna restricción a sus produciones. Gramáticas tipo 1 Tambien llamadas dependientes del contexto. Aquellas que solo pueden tener producciones de la forma: w 1 w 2, donde la longitud de w 2 es mayor que la de w 1. w 1 λ.

Tipos de Gramáticas (3) Gramáticas tipo 2 Tambien llamadas libres de contexto o independientes de contexto. Aquellas que solo puede tener producciones de la forma w 1 w 2 donde w 1 es un único símbolo no terminal (independiente de quien lo acompañe en una cadena) Estas gramáticas se usan para definir la sintaxis de casi todos los lenguajes de programación. Se pueden diseñar algoritmos eficientes que determinen cuando y como generar una cadena.

Tipos de Gramáticas (4) Gramáticas tipo 3 Tambien llamadas regulares. Aquellas que solo puede tener producciones de la forma w 1 w 2 donde w 1 = A y w 2 = ab o w 2 = a, donde A y B son símbolos no terminales y a es un símbolo terminal. w 1 = S y w 2 = λ. Estas gramáticas se usan para buscar patrones dentro de un texto y en el análisis léxico.

Contenido Lenguajes y Gramáticas Gramáticas Gramáticas con estructura de frase Derivaciones Lenguaje generado Tipos de Gramáticas Árboles de derivación Forma Backus Naur

Árboles de derivación Un árbol de derivación es un árbol con raíz ordenado que permite representar gráficamente una derivación en el lenguaje generado por una gramática libre de contexto. Donde: La ráiz representa el símbolo inicial. Los nodos internos representan los símbolos no terminales que aparecen en la derivación. Las hojas representan los simbolos términales. Ejercicio1: Determinar el arbol de derivación de la cadena 000111 con la gramática obtenida en el item 1 de la pagina 15. Ejercicio1: Determinar el arbol de derivación de la cadena 01111 con la gramática obtenida en el item 3 de la pagina 15.

Contenido Lenguajes y Gramáticas Gramáticas Gramáticas con estructura de frase Derivaciones Lenguaje generado Tipos de Gramáticas Árboles de derivación Forma Backus Naur

Forma Backus Naur (FBN) (Jhon Backus la inventó y Peter Naur la modificó para especificar ALGOL) Consiste en otra notación para especificar gramáticas independientes del contexto. Es usada para especificar las reglas sintácticas de muchos lenguajes de computador (ej: Java) Reglas 1. Listar todas las producciones para el mismo símbolo no terminal en la misma expresión, separadas por barras ( ). 2. Usar el símbolo ::= en lugar del símbolo. 3. Encerrar los símbolos no terminales entre corchetes <>.

Forma Backus Naur (2) Ejemplo: Sea la gramática independe del contexto con P = {S 0S0, S 1S1, S 1, S 0, S λ} Su notación Backus-Naur es: < S >::= 0 < S > 0 1 < S > 1 1 0 λ

Forma Backus Naur (3) Ejercicio: Dar la notación BNF en cada caso: 1. Enteros con signo en notación decimal. 2. funciones en JAVA. 3. condicionales de JAVA. 4. iteradores de JAVA. 5. lenguaje HTML.