La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

LENGUAJES GRÁMATICAS Y AUTÓMATAS

Presentaciones similares


Presentación del tema: "LENGUAJES GRÁMATICAS Y AUTÓMATAS"— Transcripción de la presentación:

1 LENGUAJES GRÁMATICAS Y AUTÓMATAS
MATEMATICAS DISCRETAS II LENGUAJES GRÁMATICAS Y AUTÓMATAS Fernando Naranjo

2 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Un alfabeto es un conjunto no vacío y finito de símbolos. Según el Webster´s New Coollegiate Dictionary, un lenguaje es conjunto de palabras y métodos para combinar palabras, que es usado y entendido por un extenso grupo de personas.

3 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Toda secuencia finita de letras de un alfabeto se denomina palabra. Por ejemplo para el alfabeto V={0,1} -que muchas veces se denomina alfabeto binario- son palabras 1101, Podemos indicarlas w=1101, z= Al conjunto de todas las palabras que se pueden construir con las letras de un alfabeto se indica con V*.

4 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Por ejemplo: Sea V = {a, b}, el alfabeto formado por los símbolos a y b. v = ababbaaaw = bbbbx = aaaaa son palabras de V*. Llamamos a la palabra nula., es decir aquella que no tiene letras. Algo para tener en cuenta es que convenimos que la palabra nula siempre pertenece a V*, sin importarnos cual es el alfabeto V.

5 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Las siguientes son operaciones para realizar con palabras sobre un alfabeto V: Concatenación: si x e y son palabras, la concatenación, x.y es una palabra formada por los símbolos de x seguidos por los símbolos de y. Sea V = {0,1} alfabeto binario, sean v, w e y palabras de V* Sean v=0111, w=1110 La palabra y= vw que leemos “v contatenado con w” queda: y =

6 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Potenciación: si concatenamos n veces una cadena x, es decir..., n veces x.x.x.x.x....x obtendremos Tengamos en cuenta que si n = 0, se tiene la palabra nula y si n = 1 la palabra que se tiene es la dada. En realidad la potenciación es un caso particular de la concatenación, ya que concatena una sola palabra n veces. Si concatenamos 2 veces la cadena x obtendremos x². Si concatenamos 3 veces la cadena x, obtendremos x³.

7 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Esquema de los componentes de un alfabeto Símbolo Letra o Carácter Cadena o Palabra Alfabeto

8 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Operaciones sobre lenguajes; tengamos en cuenta que un lenguaje es un conjunto y por lo tanto son válidas las operaciones para conjuntos: Concatenación: Dados dos lenguajes L1 y L2, su concatenación, L1 . L2 contendrá todas las palabras que se puedan formar por la concatenación de una palabra de L1 y otra de L2. L1 = { nana, napa, lana} L2 = { , nana, napa, pana, palabra, papa, pala} L1 . L2 = { nana, napa, lana, nananana, napanana, ...}

9 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Potencia: La potencia i-ésima de un lenguaje corresponde a la concatenación i veces del lenguaje en él mismo. Reflexión, Inversión o Trasposición: La reflexión de un lenguaje L está formada por la aplicación de la reflexión a cada una de las palabras del lenguaje. Unión: Dados dos lenguajes L1 y L2, su unión L1 con L2 contendrá todas las palabras que pertenezcan a cualquiera de los dos lenguajes.

10 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Intersección: Dados dos lenguajes L1 y L2, su intersección L1 con L2 contendrá todas las palabras que pertenezcan a los dos lenguajes. Diferencia: Si L1 y L2 son lenguajes la resta de L1 y L2,L1 - L2, contendrá todas las palabras que pertenezcan a L1 y no pertenezcan a L2 .

11 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Lenguajes naturales - una semántica, es decir, un significado - una sintaxis, es decir, un conjunto de reglas gramaticales. Son ejemplos de este tipo de lenguaje, los lenguajes de seres humanos, tales como: chino, español, inglés. Formales son los que se aplican para modelar un lenguaje natural y comunicarse con la computadora.

12 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Ambos tipos de lenguajes tienen algunas cuestiones en común como por ejemplo un alfabeto y reglas gramaticales.

13 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Componentes de una gramática : G = (Alfabeto,VT,P,S) - un alfabeto, llamado alfabeto de elementos terminales que representa el conjunto de letras que tendrán las palabras del lenguaje que genera esa gramática - un conjunto de símbolos especiales, denominados no terminales, que son elementos auxiliares y permiten representar estados intermedios antes de llegar al de la generación de las palabras del lenguaje.

14 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
- Un conjunto de producciones o reglas gramaticales que permitirán realizar las transformaciones desde los símbolos no terminales a las palabras del lenguaje. - Un símbolo inicial del que se partirá para la obtención de cualquiera de las palabras del lenguaje, denominado cabeza del lenguaje, que es uno de los elementos no terminales.

15 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Observaciones que tendremos que tener en cuenta: 1. El lenguaje generado por una gramática G se denomina L(G). 2. Si la gramática G genera un lenguaje L se indica G L(G) 3. Ninguna regla gramatical puede comenzar con la palabra nula. 4. Dos gramáticas G1 y G2 son equivalentes si L(G1) = L(G2); es decir, si generan el mismo lenguaje. 5. El proceso para obtener las palabras del lenguaje que genera la gramática se llama derivación

16 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Derivación: Se comienza con el símbolo inicial S. Se aplican las producciones de P al símbolo inicial S hasta obtener sólo elementos terminales. Cualquier string que se consigue usando el proceso anterior es un elemento del lenguaje L(G).

17 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Sea G una gramática en la cual: VT = {a, b} VN = {S, A, B}, donde S es el símbolo inicial. Las reglas gramaticales o producciones son S aB S bA A a A aS A bAA B b B bS B aBB Pueden escribirse de la forma siguiente:

18 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
S aB/ bA A a/ aS/bAA B b/bS/aBB Aplicando las reglas gramaticales y teniendo en cuenta que esta gramática genera palabras con las letras a, b, Debemos plantearnos como objetivo eliminar las letras S, A, B.(Siempre serán mayúsculas) Tenemos que comenzar con S, eso no podemos elegirlo, pero si podemos seleccionar cualquiera de las opciones que S nos ofrece, por ejemplo

19 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
S aB A continuación, para eliminar B elegimos B b, reemplazamos en la expresión anterior y queda S aB ab que es una palabra del lenguaje ya que ambas letras pertenecen al vocabulario terminal. Veamos otra palabra (si hay que reemplazar una letra por más de una conviene poner un paréntesis): S aB a(bS) ab(bA) abb(bAA) abbb(AA) abbb(aa) Finalmente la palabra es w=abbbba

20 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Para construir las cadenas que pertenecen al lenguaje formal de una gramática es necesario seguir las reglas de producción y usar las operaciones de substitución y concatenación. Por ejemplo, considere la siguiente gramática: G =({S,A}, {a, b}, S, Rp) donde: Rp es el siguiente conjunto de reglas de producción : S A S bA A aaA A b El mecanismo de la construcción de cadenas validas es :

21 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Pasos Resultado 1) Comenzar con el símbolo inicial “S” 2) Sustituir el símbolo inicial por la “bA” parte derecha de alguna producción cuyo lado izquierdo sea justo dicho símbolo. 3) De la misma manera sustituir cada símbolo no terminal por el lado derecho de alguna “baaA” producción con dicho símbolo en su lado “baaaaA” izquierdo hasta que la cadena no contenga ningún símbolo no terminal. “ baaaab”. El Lenguaje L(G) de la gramatica se puede explicar : Todas las cadenas sobre el alfabeto {a,b}, tales que comiencen y terminen con el simbolo b y en medio contienen cero o mas parejas de simbolos a.

22 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Puede ocurrir que nos pidan que describamos ese lenguaje ya que es imposible listar todas sus palabras. Ejemplo de un enunciado del lenguaje: “Formar todas las cadenas de letras a y b en las que el número de letras a es igual al número de letras b.”

23 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Imaginemos una gramática con estas dos reglas: 1. A → bAc 2. A → de La idea es substituir el símbolo inicial de la izquierda por otros símbolos aplicando las reglas. El lenguaje al cual representa esta gramática es el conjunto de cadenas de símbolos que pueden ser generados de esta manera: en este caso, por ejemplo: A → bAc → bbAcc → bbbAccc -→ bbbdeccc. El elemento en mayúsculas es el símbolo inicial. Los elementos en minúsculas son símbolos terminales. Las cadenas de la lengua son aquellas que solo contienen elementos terminales, como por ejemplo: bbbdeccc, de, bdec, … Estas serían tres posibles realizaciones del lenguaje cuya gramática hemos definido con dos reglas

24 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Una forma práctica de representar las derivaciones son los árboles de derivación que se utilizan en la construcción de compiladores para representar el análisis sintáctico de los programas fuente y sirven de base para la generación de un código. Sin embargo, no siempre se pueden usar. En los árboles de derivación: La cabeza del lenguaje se representa en la raíz del árbol Los nodos hojas del árbol son símbolos terminales de la gramática

25 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Las derivaciones se representan creando tanto los sucesores del símbolo no terminal de la izquierda de las producciones como los símbolos (terminales y no terminales) aparezcan en la parte derecha de las producciones. Ejemplo : Sea G = ({0,1,2}; {a, b}; P; 0) con las siguientes producciones. a2 / b1 a / a0 / b11 b / b0 / a22 Algunas de las palabras del lenguaje L(G) son: 0 a2 ab L(G)

26 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
El árbol de derivación es el siguiente: 0 a2 ab0 aba2 abab L(G). Cuyo árbol de derivación es: a 2 b a 2 b

27 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Tengamos en cuenta que para cada palabra hay un árbol de derivación Una palabra no pertenece al lenguaje generado por una gramática, esto sucede cuando al aplicar las reglas gramaticales no se puede obtener la palabra en cuestión. Si nos remitimos al primer ejemplo , donde las palabras tenían el mismo número de a que de b, la palabra w= aabbb no podríamos encontrarla

28 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Clasificación de gramáticas: Noam Chomsky definió cuatro tipos de gramáticas formales, en función de las producciones, es decir de las reglas gramaticales. Esta clasificación comienza con las más generales para finalizar en las que presentan más restricciones, siempre teniendo en cuenta las producciones.

29 LENGUAJES, GRÁMATICAS Y AUTÓMATAS
Existe al menos una regla de producción tal que, en su lado izquierdo, contiene exclusivamente al símbolo inicial. Las reglas de producción, en una gramática, permiten construir ciertas cadenas. Por ello, el conjunto de todas las cadenas que permite formar una gramática, se conoce como el Lenguaje de dicha gramática. Cada gramática determina un lenguaje formal específico.


Descargar ppt "LENGUAJES GRÁMATICAS Y AUTÓMATAS"

Presentaciones similares


Anuncios Google