Gramática no restringida Gramáticas Lenguajes

Jerarquía de Chomsky. ❖ Relación entre .... lenguajes es debida a N. Chomsky, quien propuso ... 07:00. ❖ Avram Noam Chomsky (1928) es profesor emérito.
3MB Größe 18 Downloads 259 vistas
07:00

00

Temas  Definición de Gramáticas de Estructura de Frase  Proceso de derivación  Gramáticas equivalentes  Lenguajes de Estructura de Frase  Jerarquía de Chomsky  Relación entre los lenguajes

Objetivo Que el estudiante logre:  Conocer, comprender y manejar conceptos vinculados con las Gramáticas de estructura de frase.  Definir y reconocer gramáticas y lenguajes . 07:00

11

 Símbolo: es simplemente una representación distinguible de cualquier información.

 Alfabeto o Vocabulario: es un conjunto finito y no vacío de símbolos arbitrarios (símbolos terminales). V = {a1 , a2 , ... , an }  Hilera: es cualquier string de longitud finita compuesto por símbolos sobre el vocabulario. Es un conjunto finito de símbolos yuxtapuestos. x es una hilera sobre V, si y solo si x = x1 … xn donde xi  V, i = 1, …, n

 Lenguaje: es un conjunto arbitrario de hileras de V* y se denota L. 07:00

22

Es un sistema: G = (VN, VT, P , S)  VN es el vocabulario no terminal  VT es el vocabulario terminal

donde:

– Ambos vocabularios son finitos y no vacíos V = VN  VT

y

VN  VT = 

 P: conjunto de producciones o reglas de reescritura. Es un conjunto de pares ordenados tales que P y Q están en (VN  VT)* y P contiene al menos un símbolo de VN. Las producciones son de la forma:   , donde   V* VN V* y  V*.  S: Símbolo inicial o cabeza del lenguaje. Se lo usa para comenzar las derivaciones de las palabras del lenguaje. S VN. 07:00

33

VT = {a, b} VN= {S, A} P es: S  aS S  bA A  bA A S es el símbolo distinguido

G = ({S,A}, {a,b}, { S  aS / bA, A  bA / }, S)

07:00

44

Una gramática genera un lenguaje de la siguiente manera:  Comience con una hilera, llamada hilera en mano, consistente del símbolo distinguido solamente.  Aplicar las producciones de P a la hilera en mano hasta que conste únicamente de símbolos terminales.

Ejemplo G = ({S,A,B}, {a,b},P,S) donde P es: S  aA A  aA / bB B  bB / b

07:00

Hilera

Producción

S

S  aA

aA

A  aA

aaA

A  bB

aabB

Bb

aabb 55

El proceso de usar una gramática para generar hileras se denomina derivación.

Derivación en un solo paso Dada una gramática G = (VN,VT,P,S) y dos palabras  y   (VNVT)* se dice que  es derivable de  en un paso (  ), si y solo si, hay palabras 1 y  2 en (VN  VT)* y una producción A  B en P tal que:

 = 1 A 2 y  = 1 B 2

07:00

66

Derivación en cero o más pasos Es el cierre reflexivo y transitivo de G y se denota con G *. Se dice que α G* β si existe una sucesión de cadenas intermedias φ1,φ2, ..., φn, tales que: α = φ1 G φ2 ... G φn = β. Si n = 0 entonces α = β.

Ejemplo G = ({S}, {0,1}, P, S) donde P es: 1) S  0S1 2) S  01

Usamos la producción (1) n-1 veces y se llega a: S * 0n-1 S 1n-1 Luego, se usa la regla (2), 1 vez y se llega a: S * 0n 1n

Las palabras 0n 1n con n  1 son los únicos terminales en L(G). 07:00

Por lo tanto: L(G) = { 0n 1n / n  1}

77

El lenguaje generado por G, se define como: *

L(G) = {p  VT / S  p} G

Esto significa que el lenguaje generado por G contiene exactamente aquellas palabras que son derivables del símbolo inicial S y contiene únicamente símbolos terminales.

07:00

88

Dos gramáticas G1 y G2 son equivalentes cuando generan el mismo lenguaje. L(G1) = L(G2) Nota:

La equivalencia de gramáticas es una propiedad indecidible, y por tanto, cualquier otro problema que pueda plantearse como tal. Es posible demostrar equivalencia entre dos gramáticas particulares. Lo que no puede darse es un método general de prueba único para cualquier par de gramáticas. 07:00

99

Sea G = ({S,A,B}, {a,b,c}, P, S) donde P consta de las siguientes producciones: 1) S  Abc /  2) Ab  aAbB 3) Bb  bB 4) Bc bcc

5) A  a

Usamos la producción (1) una vez y se aplica la producción (2) n-1 veces con lo que se llega a: S * an-1 AbBn-1c Luego, se usa la regla (5), una vez y se llega a: S * an-1 abBn-1c o sea S * anbBn-1c Se aplica la producción (4) n-1 veces y la regla (3) n-2 veces en forma alternada y se llega a: S * an bn cn

Las palabras an bn cn con n  0 son los únicos terminales en L(G). Por lo tanto: L(G) = {an bn cn / n  0} 07:00

10 10

Es el lenguaje que no contiene ninguna hilera, se genera mediante cualquier gramática que no genera ninguna hilera. Ejemplo G = ({S}, {a}, {S  aS}, S) Proceso de Derivación S  aS  aaS  aaaS  ….. Esta gramática genera hileras de la forma akS con k = 1, 2, ... pero como ninguna de ellas consta de símbolos terminales únicamente, entonces L(G) = . 07:00

11 11

A veces se utiliza una notación especial para describir gramáticas llamada notación BNF (Backus-Naus-Form). En la notación BNF los símbolos no terminales o variables son encerrados entre ángulos y se utiliza el símbolo ::= para las producciones, en lugar de →.

1) S  aSa 2) S  b

BNF 1) ::= aa 2) ::= b

Se tiene también la notación BNF-extendida que incluye además los símbolos [ ] y { } para indicar elementos opcionales y repeticiones, respectivamente. 07:00

12 12

Se llama “clase de lenguajes” a conjuntos de lenguajes que comparten una cierta propiedad dada. Esta noción es muy abstracta, pues ya los lenguajes son en sí mismos conjuntos de secuencias de símbolos, y las clases de lenguajes son entonces conjuntos de conjuntos de secuencias de símbolos. La clasificación de lenguajes en clases de lenguajes es debida a N. Chomsky, quien propuso una jerarquía de lenguajes, donde las clases más complejas incluyen a las más simples. Esto se logra estableciendo ciertas restricciones en los elementos de P (reglas de producción). 07:00

13 13

 Avram Noam Chomsky (1928) es profesor emérito de Lingüística en el MIT y una de las figuras más destacadas de la lingüística del siglo XX.

 Creó la gramática generativa, disciplina que situó la sintaxis en el centro de la investigación lingüística y con la que cambió por completo la investigación en el estudio del lenguaje.  También es fundamental su contribución al establecimiento del ámbito de las ciencias cognitivas.

Avram Noam Chomsky (1928)

 Se le considera creador de la jerarquía de Chomsky, una clasificación de lenguajes formales de gran importancia en teoría de la computación.  Muy conocido por su activismo político y sus duras críticas a la política exterior de EE.UU. y de otros países, como el Estado de Israel.

07:00

14 14

: Las producciones son de la forma:    donde

  V* VN V*  V* Generan lenguajes llamados Conjuntos Recursivamente enumerables. Sea G = ({S,A,B,C,D,E},{a},P,S) donde P es: S  ACaB Ca  aaC CB  DB / E aD  Da AD  AC aE  Ea AE   07:00

x=aa S  ACaB  AaaCB  AaaE  AaEa  AEaa aa

Genera el lenguaje L(G) = { a2i / i  1}

Como se observa no existen restricciones sobre las producciones. 15 15

Las producciones son de la forma:  z1Az2  z1Xz2

donde z1, z2  V* A  VN X  V+ Se admite sólo S  , pero S no debe aparecer en el lado derecho de ninguna producción. Se impone la siguiente condición a las producciones:        Generan lenguajes llamados Sensibles al Contexto.

07:00

16 16

G = ({S,T,B,C,D} , {a,b,c} ,S, P} donde P es: S /T T  aTBD / abD DB  AB AB  AD AD  BD bB  bb D c

x=abc S  T  abD  abc

x=aabbcc S  T  aTBD  aabDBD  aabABD  aabADD  aabBDD  aabbDD  aabbcc

Genera: L(G) = {an bn cn / n



0}

Obsérvese que si bien se presenta S   , S no aparece en la parte derecha y que ||  || para las producciones. 07:00

17 17

Las producciones son de la forma: A   donde A  VN   V* Generan lenguajes llamados Libres de Contexto.

Punto de vista teórico Punto de vista práctico

07:00

Las Gramáticas Libres de Contexto se relacionan con los Autómatas de Pila.

Los lenguajes de programación están basados en Lenguajes Libres de Contexto y Gramáticas Libres de Contexto. 18 18

Ejemplo 1: G = ({S}, {a,b}, S ,P) donde P es: S  aSb / 

S  S  aSb  ab  S  aSb  aaSbb  aabb  S  aSb  aaSbb  aaaSbbb  aaabbb

Genera L(G) = { an bn/ n  0}

Obsérvese que a la izquierda de la regla hay sólo un no terminal y a la derecha de la regla no terminales y/o terminales. Ejemplo 2: G = ({S}, {a,b,c}, S ,P) donde P es: S  aSa / bSb / c 07:00

Sc  S  aSa  aca  S  bSb  bcb  S  aSa  abSba  abcba  S  aSa  aaSaa  aabSbaa  aabcbaa

Genera L(G) = { wcw-1/ w {a,b}*}19 19

Las producciones son de la forma: – Gramáticas Lineales Izquierda A  Ba donde A,B  VN Ab b  VT   a  VT – Gramáticas Lineales Derecha A  aB donde A,B  VN Ab b  VT   a  VT

Generan lenguajes llamados Regulares. Propiedad: a toda gramática G lineal regular derecha (izquierda) le corresponde otra gramática G' lineal regular izquierda (derecha) tal que: L(G') = L(G). Es decir, un lenguaje se genera mediante una gramática regular lineal derecha si y sólo si, se genera por alguna gramática lineal izquierda. 20 07:00 20

Gramática lineal derecha G1 = ({S,A} , {a,b}, S , P) donde P es: S  aS / bA /  A  bA /  S  S  aS  a  S  aS  abA  abbA  abbb  S  bA  bbA  bbbA  bbb

Gramática lineal izquierda G2 = ({S,A} ,{a,b} , S , P) donde P es: S  Sb / Aa /  A Aa / 

S  S  Aa  a  S  Sb  Sbb  Aabb  abb  S  Aa  Aaa  Aaaa  aaa

Ambas gramáticas generan: L(G) = {ai bj / i  0, j  0} 07:00

21 21

Un lenguaje de estructura de frase se dice de tipo k (k=0,1,2,3) si existe una gramática de tipo k que lo genere. Sea Lk el conjunto de lenguajes de estructura de frase de tipo k. Entonces se tiene que: L3  L2  L1  L0

Tipo 0

Tipo 1

Tipo 2

Tipo 3

Las inclusiones son propias porque existe al menos un lenguaje de tipo k que no es de tipo k+1. 07:00

22 22

Generan

Lenguajes

Gramáticas

Jerarquía de Chomsky

Gramática no restringida

Lenguaje recursivamente enumerables

Gramática sensible al contexto

Lenguaje sensible al contexto

Gramática libre de contexto

Lenguaje libre de contexto

Gramática regular

Lenguaje regular

07:00

23 23

proponer documentos