Lenguajes y Gramáticas

Documentos relacionados
06 Análisis léxico II

Clase 03: Alfabetos, símbolos y cadenas

CAPITULO 2: LENGUAJES

Tema 2: Lenguajes Formales. Informática Teórica I

Temas. Objetivo. Símbolo, alfabeto. Hileras y operaciones con hileras. Operaciones con lenguajes

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

Clase 11: Gramáticas. Solicitado: Ejercicios 09: Gramáticas

LENGUAJES Y GRAMÁTICAS

Unidad 1 Introducción

Teoría de la Computación y Leguajes Formales

Generalidades sobre lenguajes.

1. Cadenas EJERCICIO 1

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

Lenguajes y Compiladores Aspectos Formales (Parte 1) Compiladores

Unidad 1 Lenguajes Formales

Lenguajes y Compiladores Aspectos Formales (Parte 2) Compiladores

LENGUAJES Y GRAMÁTICAS

Modelos De Computación. Guía Modelos de Computación. Tema I: Lenguajes y Gramáticas

DEFINICIONES BÁSICAS E INTRODUCCIÓN A LENGUAJES FORMALES

Lenguajes, Gramáticas y Autómatas Conceptos

Curso Básico de Computación Preliminares

GRAMÁTICAS LIBRES DE CONTEXTO

Gramáticas tipo 0 o Estructura de frase En este tipo de gramáticas no hay restricción en su producciones y tienen la forma siguiente.

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

Sumario: Máquinas Secuenciales, Autómatas y Lenguajes Formales. Tema 1: Conceptos básicos (parte 1) Tema 1: Conceptos básicos

Expresiones Regulares

MODELOS DE COMPUTACIÓN CRISTIAN ALFREDO MUÑOZ ALVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACON PEÑA EDUARDO GONZALES PULGARIN

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

SSL Guia de Ejercicios

Ciencias de la Computación I

Alfabetos, cadenas y lenguajes

14 Lenguajes y gramáticas II

Máquinas de estado finito y expresiones regulares

Teoría de Autómatas y Lenguajes Formales.

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

INTRODUCCIÓN A LOS LENGUAJES

Ciencias de la Computación I

Introducción TEORÍA DE LA COMPUTACIÓN INTRODUCCIÓN. Lógica

INTRODUCCIÓN A COMPILADORES Y LENGUAJES FORMALES LENGUAJES FORMALES

Álgebra y Trigonometría

PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS

Compiladores. Análisis Sintáctico Ascendente. Adrian Ulises Mercado Martínez. Facultad de Ingeniería, UNAM. 5 de septiembre de 2013

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

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I

Expresiones Regulares y Derivadas Formales

Teoría de Conjuntos DEFINICION DE CONJUNTO

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.

Lenguajes (gramáticas y autómatas)

ESPECIFICACIÓN DE SÍMBOLOS

Conjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R.

Taller matemático (Cálculo) Venancio Tomeo Universidad Complutense

ÁRBOLES DE SINTAXIS. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales.

CONJUNTOS. Los conjuntos son conceptos primitivos que representan una totalidad, una reunión de cosas.

Preliminares. 1. Notación simbólica. Conjuntos. También se da en el curso de Conjuntos y Numeros.

Introducción TEORÍA DE LA COMPUTACIÓN INTRODUCCIÓN. Lógica

Se pueden agrupar las reglas que tienen la misma parte izquierda:

Máquina de estado finito con salida sin salida

Los modelos abstractos de cómputo. Tema 1: Introducción. El modelo transductor. El modelo reconocedor. ordenador. datos. Modelo Abstracto de Cómputo

Tema 1: Fundamentos.

Unidad 1 Teoría de autómatas y Lenguajes Formales

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

GRAMATICAS LIBRES DEL CONTEXTO

Alfabetos y cadenas (1) Alfabetos y cadenas (2) Lenguajes. Propiedades de la concatenación:

Las Gramáticas Formales

Tema 1: Introducción. Teoría de autómatas y lenguajes formales I

Si un objeto x es elemento de un conjunto A, se escribe: x A.

{ } Listado de elementos del conjunto

Igualdad de cadenas. Las nociones de sufijo y prefijo de cadenas sobre un alfabeto son análogas a las que se usan habitualmente.

MATRICES OPERACIONES BÁSICAS CON MATRICES

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

Sintaxis y Semántica. Un repaso

Expresiones regulares, gramáticas regulares

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

Ejemplo No. 2 Empleando esta notación, los conjuntos del ejemplo anterior se pueden escribir como:

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

Introducción. Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas

CONJUNTOS. Por ejemplo, el E del ejemplo 2 se escribe.

Teoría de Lenguajes - Primer Parcial

Sea G = (V N, V T, S, P) una gramática libre de contexto, un árbol es un árbol de derivación para G si:

Clase 04: Lenguajes. Solicitado: Ejercicios 02: Lenguajes

Lógica Proposicional Lenguaje Proposicional Implicación semántica

MÉTODOS MATEMÁTICOS DE LA FÍSICA I

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

Autómata de Pila (AP, PDA) Tema 18

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 4: Expresiones Regulares. Luis Peña

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

Tema 1. Espacios Vectoriales Definición de Espacio Vectorial

Transcripción:

Lenguajes y Gramáticas Teoría de Lenguajes Fernando Naranjo

Introduccion Se desarrollan lenguajes de programación basados en el principio de gramática formal. Se crean maquinas cada vez mas sofisticadas y menos complicadas para el usuario final.

Definiciones Básicas Símbolo: Normalmente los símbolos son letras (a,b,c, z), dígitos (0,1,2 9) y otros caracteres (+,*,/,-,?...). Un símbolo también puede estar formado por varias letras o caracteres, como las palabras reservadas de un lenguaje de programación son símbolos de dicho lenguaje. Ejemplo: - a,b,c,#,+,-,*, then, begin, end, else,

Definiciones Básicas VOCABULARIO O ALFABETO Un vocabulario o alfabeto es un conjunto finito de símbolos, no vacío. Se suele denotar con la letra Σ.

Definiciones Básicas Los alfabetos se definen por el tipo de los símbolos que contienen, podemos ver los siguientes ejemplos: V1={A,B,C,D,E,F,..,X,Y,Z} V2={a,b,c,d,0,1,2,3,4,*,#,+} V3={0,1} V4={if, then, begin, end, else, a,b,;,=,>}

Definiciones Básicas PALABRA. Dado un alfabeto Σ una palabra sobre dicho alfabeto es la yuxtaposición finita de símbolos del alfabeto. Representamos una palabra genérica con la letra griega ω.

Definiciones Básicas Ejemplos: Camisa, door, table, for, antena, werse, aaaa, son palabras sobre Σ1 001100, 0, 1111, 10 son palabras sobre Σ2 baba, lacada, caca, dalala, son palabras sobre Σ3 0, 18, 01214, 9999 son palabras sobre Σ4

Definiciones Básicas También se pueden definir las tablas ASCII y EBCDIC como los alfabetos de distintos ordenadores.

Cadena (o serie) Secuencia de símbolos : Se representa con una letra griega en minúscula. Ejemplos : α = 011010 β = iauoe Longitud cadena: cantidad de símbolos que forman la cadena. Ejemplos : α = 6 β = 5 011 = 3

Cadena (o serie) CONCATENACIÓN DE CADENAS Sean A y B dos cadenas cualesquiera, se denomina concatenación de A y B a una nueva cadena AB constituida por los símbolos de la cadena A seguidos por los de la cadena B.

Cadena (o serie) CONCATENACIÓN DE CADENAS Sean u y v dos palabras sobre el mismo alfabeto Σ, la concatenación de u y v es una nueva palabra ω que se obtiene yuxtaponiendo primero u y detrás v, escribimos ω = uv. Ejemplos: Sea u = 01, v = 100 la concatenación de ambas es ω = uv= 01100 Sea u = az, v= men, la concatenación es ω = uv = azmen

Cadena (o serie) PROPIEDADES DE LA CONCATENACIÓN DE CADENAS. i) No es conmutativa, en general no es lo mismo uv que vu. ii) Es asociativa, es decir cualesquiera que sean las palabras u, v y w sobre el mismo alfabeto, se tiene que (uv)w = u(vw). Esta propiedad nos permite concatenar cualquier número finito de palabras sin tener que poner los paréntesis. Escribiremos uvw. iii) uv = u + v es decir la longitud de la palabra formada por la concatenación de dos palabras, es la suma de las longitudes de cada una de ellas. iv) La palabra vacía es el elemento neutro de la concatenación. En efecto uλ=λu =u.

Palabra PREFIJOS Y SUFIJOS DE UNA PALABRA. Sea ω una palabra sobre cierto alfabeto Σ. Sean u y v dos palabras sobre Σ tales que ω=uv. Decimos que u es un prefijo y que v es un sufijo de ω. Observemos que ambas definiciones no hacen más que generalizar los conceptos de prefijo y sufijo del lenguaje habitual.

Palabra Ejemplos: Si ω = camisa, entonces los prefijos de ω son u0 = λ, u1 = c, u2 = ca, u3 = cam, u4 = cami, u5 = camis, u6 = camisa Y los sufijos v0 = λ, v1 = a, v2 = sa, v3 = isa, v4 = misa, v5 = amisa, v6 = camisa

Palabra INVERSIÓN DE UNA PALABRA. 1 Sea ω una palabra sobre w cierto a... n a2a1 alfabeto Σ. Llamamos inversa (o reflejada) de la palabra ω, y la representamos por w 1, a la palabra obtenida al escribir los símbolos que constituyen la palabra ω en orden inverso. Si w a1a 2a... 3 an su reflejada sería : Ejemplos: 1 w a... n a2a1 Si, como antes, tomamos ω = camisa, entonces ω 1 = asimac Puede ocurrir que una palabra coincida con su inversa como es el caso de ω = ana; tales palabras reciben el nombre de palíndromos.

Palabra PROPIEDADES DE LA INVERSIÓN Y LA CONCATENACIÓN DE PALABRAS. 1 1 1 i) ( UV ) V U es decir la palabra inversa (o reflejada) de la concatenación de dos palabras es la concatenación de las palabras inversas (o reflejadas) en orden contrario 1 ii) w w, es decir, la longitud de una palabra y su inversa coinciden siempre.

Cadena (o serie) Cadena vacía: Es una cadena cuya longitud es cero. Se representa con la letra griega epsilon ξ ξ = 0 o (Lambda) La cadena vacía actúa como elemento neutro. Es decir, toda cadena concatenada con la cadena vacía es igual a la misma cadena. 011 ξ = 011 ξ 11 = 11 10 ξ 1 = 101

Clausura (Σ*) Son las diferentes combinaciones que se pueden hacer con los símbolos de un alfabeto e inclusive la cadena vacía. Se representa Σ*, donde * se lee desde cero a más. Ejemplo: Para Σ = {0, 1} Su clausura es: Σ* = {0, 1}* = {0, 1} 0 υ {0, 1} 1 υ {0, 1} 2 υ υ {0, 1} n Es decir: {0, 1} 0 = ξ {0, 1} 1 = {0, 1} { 0, 1} 2 = {0, 1} {0, 1} = {00, 01, 10, 11} y así sucesivamente. Con lo cual:{0, 1}* = {ξ, 0, 1, 00, 01, 10, 11, }

Clausura positiva (Σ+) Es la misma clausura, pero sin incluir la cadena vacía. Se representa Σ +, donde + se lee desde uno a más. Σ + = Σ* - { ξ }

Gramática (G) Mecanismo que nos permite generar un lenguaje. Es un cuádruplo de la forma: Donde: G = (Σ, N, P, S) Σ : Conjunto de terminales (alfabeto) N : Conjunto de no terminales. P : Reglas de producción. Tienen la forma: (N υ Σ)* (N υ Σ)* S : Símbolo inicial, S Є N y es único.

Gramática (G) Vocabulario Terminal VT : Se define por enumeración de los símbolos terminales. Vocabulario no terminal VN : conjunto de símbolos introducidos como elementos auxiliares para la definición de la gramática, y que no figuran en las sentencias del lenguaje.

Gramática (G) La intersección entre el vocabulario terminal y no terminal es el conjunto vacío: {VN} Interceptado {VT} = {Ø} La unión entre el vocabulario terminal y no terminal es el vocabulario. {VN} Unido {VT} = {V}

Gramática (G) En ocasiones es importante distinguir si un determinado vocabulario incluye o no la cadena vacía, indicándose respectivamente con superíndice + o superíndice *, tal como se muestra a continuación: V+ = V - {ξ} V* = V + {ξ} Sea G la Gramática formada por G=(VT,VN,S,P) El símbolo inicial S es un símbolo no terminal a partir del cual se aplican las reglas de la gramática para obtener las distintas cadenas del lenguaje.

Gramática (G) Las producciones P son las reglas que se aplican desde el símbolo inicial para obtener las cadenas del lenguaje. El conjunto de producciones P se define por medio de la enumeración de las distintas producciones, en forma de reglas

Gramática (G) Ej 3: Sea la gramática: G=(VN, VT,S,P) donde: VN={<número>, <dígito>} VT={0,1,2,3,4,5,6,7,8,9} S= <número> Las reglas de producción P son: <número>::=<dígito><número> <número>::=<dígito> <dígito>::=0 1 2 3 4 5 6 7 8 9

Gramática (G) Ejemplo: G = ({0, 1}, {A, S}, P, S) Donde: Σ = {0, 1} N = {A, S} P son las reglas, que tienen la forma S 0A1 0A 00A1 A ξ S = Símbolo Inicial

Gramática (G) Ejemplo: G = ({+, -, *, e}, {E, T, F}, P, S) Donde: Σ = {+, -, *, e} N = {E, T, F} P son las reglas, que tienen la forma E E + T E E T E T T T * F T F F e S = Símbolo Inicial

Sentencia Cadena generada a partir de una gramática. AUTÓMATA Máquina que imita la figura y los movimientos de un ser animado. En el caso de los Procesadores de Lenguaje un autómata es una construccion lógica que recibe como entrada una cadena de símbolos y produce una salida indicando si dicha cadena pertenece o no a un determinado lenguaje.

Lenguaje (L) Dado un alfabeto Σ, un lenguaje sobre Σ es un conjunto de palabras sobre dicho alfabeto, es decir un subconjunto de Σ*. Conjunto de sentencias con estructura bien definida y por lo general con significado. L = {sentencias} Sintaxis: Define que líneas de caracteres son validas. Semántica: Define el significado de la construcción de un lenguaje. Asigna un significado o interpretación a los símbolos.

Lenguaje (L) Lenguaje en Informática: Conjunto de signos y reglas que permite la comunicación con un ordenador. Conjunto de palabras ó cadenas de símbolos (palabras, oraciones, textos o frases) de un determinado alfabeto.

Lenguaje (L) Ejemplos: L1 = {Camisa, door, table, for, antena, werse, aaaa} es un lenguaje sobre Σ1 L2 = {001100, 0, 1111, 10} es un lenguaje sobre Σ2 L3 = {baba, lacada, caca, dalala} es un lenguaje sobre Σ3 L4 = {0, 18, 01214, 9999} es un lenguaje sobre Σ4

Lenguaje (L) LENGUAJE VACÍO Es un conjunto vacío y que se denota por {Ø}. El lenguaje vacío no debe confundirse con un lenguaje que contenga una sola cadena, y que ésta sea la cadena vacía, es decir { }, ya que el número de elementos (cardinalidad) de estos dos conjuntos es diferente. Cardinal ({ Ø }) = 0 Cardinal ({ξ }) = 1 PALÍNDROMO : Cadenas que se leen igual hacia delante, que hacia atrás. Por ejemplo, ORURO

Lenguaje (L) LENGUAJE Se denomina lenguaje a un conjunto de palabras de un determinado alfabeto. También un lenguaje es un conjunto de cadenas de símbolos (palabras, oraciones, textos o frases). Un lenguaje está compuesto por Sintaxis: (gramática), que define las secuencias de símbolos que forman cadenas válidas de un lenguaje. Y por Semántica, que es el significado de las cadenas que componen un lenguaje.

Lenguaje (L) Ejemplo 1: Sintaxis: A Semántica: es un número natural. Diferente sintaxis en diferentes lenguajes: A: natural A: es un número que pertenece al conjunto de N={1,2,3..N} Ejemplo 2: Sintaxis: if a=b then write(a, " es igual a ", b ) else write(a, " es distinto a ", b )

Lenguaje (L) Semántica: Si se cumple la condición entonces se muestra un mensaje que ambos números son iguales. Caso contrario, se escribe los número son distintos.

Ejercicios Propuestos Expresar por extensión y por comprensión el lenguaje generado por las siguientes gramáticas: a) S X Y X a X a Y Y b b b) S X X a X b a b c) S a S P a P Q QP PQ ap ab bp bb bq be eq ee