diapositiva 1 -...

24
0 0 07:00

Upload: buidung

Post on 12-Oct-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

0 0 07:00

1 1 07: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 .

2 2 07:00

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.

3 3 07:00

Es un sistema:

G = (VN, VT, P , S) donde:

VN es el vocabulario no terminal

VT es el vocabulario terminal

– 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.

4 4 07:00

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

VT = {a, b}

VN= {S, A}

P es:

S aS

S bA

A bA

A

S es el símbolo distinguido

5 5 07:00

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

aA A aA

aaA A bB

aabB B b

aabb

S S aA

Hilera Producción

6 6 07:00

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 (VNVT)*

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

7 7 07:00

Ejemplo G = ({S}, {0,1}, P, S)

donde P es:

1) S 0S1

2) S 01

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

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

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 α = β.

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

8 8 07:00

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.

9 9 07:00

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.

10 10 07:00

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

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}

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

11 11 07:00

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) = .

12 12 07:00

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 →.

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

1) S aSa

2) S b

1) <S> ::= a<S>a

2) <S> ::= b

BNF

13 13 07:00

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).

14 14 07:00

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.

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.

Avram Noam Chomsky

(1928)

15 15 07:00

:

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

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

Como se observa no existen restricciones sobre las producciones.

x=aa S ACaB AaaCB AaaE AaEa AEaa aa

16 16 07:00

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.

17 17 07:00

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

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

x=abc S T abD abc

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

Obsérvese que si bien se presenta S , S no aparece en la parte derecha y que || || para las producciones.

18 18 07:00

Las producciones son de la forma:

A donde A VN

V*

Generan lenguajes llamados Libres de Contexto.

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

Punto de vista práctico Los lenguajes de programación están basados en Lenguajes Libres de Contexto y Gramáticas Libres de Contexto.

19 19 07:00

Ejemplo 1:

G = ({S}, {a,b}, S ,P)

donde P es:

S aSb / 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 Genera L(G) = { wcw-1/ w {a,b}*}

S

S aSb ab

S aSb aaSbb aabb

S aSb aaSbb aaaSbbb aaabbb

S c

S aSa aca

S bSb bcb

S aSa abSba abcba

S aSa aaSaa aabSbaa aabcbaa

20 20 07:00

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.

21 21 07:00

Gramática lineal derecha

G1 = ({S,A} , {a,b}, S , P)

donde P es:

S aS / bA /

A bA /

Gramática lineal izquierda

G2 = ({S,A} ,{a,b} , S , P)

donde P es:

S Sb / Aa /

A Aa /

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

S

S aS a

S aS abA abbA abbb

S bA bbA bbbA bbb

S

S Aa a

S Sb Sbb Aabb abb

S Aa Aaa Aaaa aaa

22 22 07:00

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

Las inclusiones son propias porque existe al menos un

lenguaje de tipo k que no es de tipo k+1.

Tipo 0 Tipo 1 Tipo 2 Tipo 3

23 23 07:00

Gramática no restringida

Gramáticas Lenguajes

Generan

Lenguaje recursivamente enumerables

Gramática sensible al contexto

Gramática libre de contexto

Gramática regular

Lenguaje sensible al contexto

Lenguaje libre de contexto

Lenguaje regular

Jerarquía de Chomsky