Teoría de Lenguajes - Universidad de Buenos Aires

Anuncio
Teoría de Lenguajes
Clase Teórica 1
Gramáticas y Jerarquía de Chomsky
Primer cuartimestre 2016
Material compilado por Julio Jacobo a lo largo de distintas ediciones de la materia Teoría de Lenguajes en el Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires, y recientemente revisado por Verónica Becher.
Bibliografía:
Capítulo 1. An Introduction to Formal Language Theory, Michael Harrison, Addison Wesley, 1978.
Capítulo 1, Introduction to Automata Theory, Languages and Computation, J. Hopcroft, R. Motwani, J. Ullman, Second Edition,
Addison Wesley, 2001.
Capítulo 1, The Theory of Parsing, Translating and Compiling, Volume 1: Parsing, Aho, J. Ullman, Prentice-Hall, 1971.
Alfabeto
Es un conjunto finito, no vacío, de elementos o caracteres.
Cadena
Es una secuencia finita de elementos (cero o más) de un alfabeto.
Ejemplo
Dado el alfabeto: Σ “ ta, j, ru, tenemos como cadenas posibles: aaj, rja, raja, jarra, etc.
Cadena nula λ
No tiene símbolos.
Lenguaje sobre un alfabeto Σ:
conjunto de cadenas sobre un alfabeto Σ.
Ejemplo:
φ es un lenguaje
tλu es un lenguaje (notar que es distinto de φ)
Dado Σ “ t0, 1u, t0, 01, 011, 0111, 01111, . . . . . .u, es un lenguaje sobre Σ.
Concatenación ˝
Es una operación entre un símbolo del alfabeto Σ y una cadena sobre dicho alfabeto
˝ : Σ ˆ tcadenas sobre Σu Ñ tcadenas sobre Σu .
Ejemplo
Si el alfabeto es Σ “ ta, b, cu, α “ ab es una cadena, y entonces a ˝ ab “ aab es también una cadena.
Cadena nula λ
Es el neutro de la concatenación:
@a P Σ, a ˝ λ “ a
1
Concatenación de cadenas
Definimos la operación de concatenación de dos cadenas ˝. Supongamos cadenas x, y donde x tiene n símbolos a1 a2 . . . an .
Entonces,.
x ˝ y “ x1 ˝ px2 ˝ . . . pxn ˝ yq . . .q
Para facilitar la notación, en adelante no escribiremos el símbolo ˝.
Concatenación de lenguajes
Sea L1 un lenguaje definido sobre el alfabeto Σ1 , y sea L2 un lenguaje definido sobre el alfabeto Σ2 . Definimos la
concatenacion de L1 y L2 como el lenguaje
L1 L2 “ txy : x P L1 ^ y P L2 u ,
definido sobre el alfabeto Σ1 Y Σ2 .
Clausura de Kleene de un alfabeto Σ: el lenguaje Σ˚
λ P Σ˚
Si pa P Σ y α P Σ˚ q entonces aα P Σ˚
Clausura positiva de un alfabeto Σ: el lenguaje Σ`
Si (a P Σ y α P Σ˚ ) entonces aα P Σ` .
Ejemplo
Sea Σ “ ta, j, ru, entonces arj P Σ˚ porque jλ “ j P Σ˚ , rj “ rj P Σ˚ , y arj “ arj P Σ˚ .
Clausura de Kleene de un lenguaje L: el lenguaje L˚
Se define por:
L0 “ tλu
Ln “ LLn´1 para n ě 1
Ť n
L˚ “
L .
ně0
Clausura positiva de un lenguaje L: el lenguaje L`
Se define por:
Ť n
L` “
L .
ně1
De lo anterior se ve que L` “ LL˚ “ L˚ L, y que L˚ “ L` Y tλu.
Y si L es un lenguaje definido sobre Σ, entonces, L Ď Σ˚ .
Relaciones
Definición.
Dados los conjuntos A y B, se llama relación de A en B a cualquier subconjunto de A ˆ B.
Notación
Si R es una relación de A en B, o sea, R Ă A ˆ B, podemos escribir R : A Ñ B.
Si B “ A se dice que R es una relación sobre A.
a R b denota que el par pa, bq pertenece a la relación R, esto es, pa, bq P R.
2
Figura 1: a) relación R “ tpa, bq , pa, dq , pb, cqu, b) clausura reflexiva, c) clausura simétrica, d) clausura transitiva.
Propiedades de una relación R sobre A
Reflexividad
Una relación R Ď A ˆ A es reflexiva cuando todo elemento de A está relacionado consigo mismo, o sea, cuando
@a P A, pa, aq P R.
Ejemplo
R: "ď"sobre N.
Simetría
Una relación R Ď A ˆ A es simétrica cuando el hecho de que el par pa, bq pertenece a la relación R implica que el par
pb, aq también pertenece a dicha relación, o sea, cuando
´
¯
@a, b P A, pa, bq P R ñ pb, aq P R .
Ejemplo
R: "‰"sobre N.
Transitividad
Una relación R Ď A ˆ A es transitiva cuando el hecho de que los pares pa, bq y pb, cq pertenecen a la relación R implica
que el par pa, cq también pertenece a dicha relación, o sea, cuando
´
¯
@a, b, c P A, pa, bq P R ^ pb, cq P R ñ pa, cq P R .
Ejemplo
R: "a paralela a b", en el conjunto de rectas del plano.
Relación de equivalencia
Una relación es de equivalencia, cuando es reflexiva, simétrica y transitiva.
Propiedad:
Una relación de equivalencia sobre un conjunto A particiona al mismo en subconjuntos disjuntos a los cuales se los llama
clases de equivalencia.
3
Composición de relaciones:
Sean A, B y C tres conjuntos, y sean R y G dos relaciones tales que R Ď AˆB y G Ď B ˆC. La relación de composición
G ˝ R Ď A ˆ C se define como
G ˝ R “ tpa, cq , a P A, c P C : Db P B tal que aRb ^ bGcu .
Relación de identidad:
Una relación R definida sobre A es de identidad (idA ) si se cumple que
@a, b P A, a idA b si y solo si a “ b.
Propiedad:
La relación de identidad es el elemento neutro de la composición. Dada una relación R Ď A ˆ B es cierto que
idB ˝ R “ R ˝ idA “ R
Relación potencia:
Dada una relación R Ď A ˆ A, y dado n se define Rn Ď A ˆ A como:
"
idA
si n “ 0
n
R “
R ˝ Rn´1 si n ą 0
con R “ R1 .
Aclaración:
Notar que Rn es una relación (o sea, un conjunto de pares), cualquiera sea el valor de n.
Clausura transitiva
Dada una relación R sobre A, se define clausura transitiva R` como:
R` “
8
ď
k“1
Propiedades:
Una clausura transitiva cumple que
1. R Ď R`
2. R` es transitiva
4
Rk ,
3. para toda relación G sobre A
si R Ď G ^ G transitiva entonces R` Ď G.
Demostración: R` es transitiva
Queremos probar que si aR` b y bR` c enonces aR` c. Si aR` b, entonces existe una secuencia de elementos d1 , . . . , dn
tal que d1 Rd2 , . . . , dn´1 Rdn , donde d1 “ a y dn “ b. Por lo tanto, aRn b. Análogamente, como bR` c entonces existe
una secuencia de elementos e1 , . . . , em tal que e1 Re2 , . . . , em´1 Rem , donde e1 “ b y em “ c. Por lo tanto bRm c.
Concluimos que aRn`m c, lo que a su vez implica que aR` c.
Demostración: Si R Ď G ^ G transitiva entonces R` Ď G
si aR` b entonces existe una secuencia de elementos c1 , . . . , cn tal que c1 Rc2 , . . . , cn´1 Rcn , donde c1 “ a y cn “
b. Como R Ď G tenemos que c1 Gc2 , . . . , cn´1 Gcn , y como G es transitiva entonces, la aplicación repetida de la
transitividad nos lleva a que c1 Gcn , o sea aGb.
Clausura transitiva reflexiva: R˚
R˚ “ R` Y id “
8
ď
Ri .
i“0
Gramáticas
Definición
Una gramática es una 4-upla G “ xVN , VT , P, Sy donde
VN es un conjunto de símbolos llamados no-terminales
(también, variables o categorías sintácticas)
VT es un conjunto de símbolos terminales
(tal como lo era Σ en los ejemplos anteriores)
P es el conjunto de ”producciones”, que es un conjunto finito de
˚
˚
˚
pVN Y VT q VN pVN Y VT q ˆ pVN Y VT q ,
estas producciones son entonces pares ordenados pα, βq, que usualmente son notados como α Ñ β.
S P VN es el símbolo distinguido de VN .
Forma sentencial de una gramática G “ xVN , VT , P, Sy
S es una forma sentencial de G.
Si αβγ es una forma sentencial de G, y pβ Ñ δq P P , entonces αδγ es también una forma sentencial de G.
Derivación directa en G
˚
Si αβγ P pVN Y VT q y pβ Ñ δq P P , se dice que αδγ se deriva directamente en G de αβγ y se denota como
αβγ Ñ αδγ.
G
˚
Entonces, Ñ es una relación sobre pVN Y VT q , es decir,
G
˚
˚
ÑĎ pVN Y VT q ˆ pVN Y VT q .
G
Podemos componer la relación Ñ consigo misma, 0 o más veces...
G
5
Clausura de Kleene de la relación de derivación Ñ
G
¯0
´
Ñ
G
¯k
´
Si n ą 0,
Ñ
G
“ idpVN YVT q˚
´
¯k´1
“ Ñ
˝Ñ
G
Ñ
k“1
¯˚
´
Ñ
G
¯k
Ñ
“
G
G
8 ´
ď
¯`
´
¯`
´
“
G
Ñ
G
Y idpVn YVT q˚
Definición
k
Denotaremos con Ñ a la potencia k de la relación Ñ.
G
G
Definición
`
˚
Denotaremos con Ñ y con Ñ a las clausura transitiva y a la clausura transitiva y reflexiva de Ñ respectivamente.
G
G
G
Definición
Lenguaje generado por una gramática G “ xVN , VT , P, Sy, el cual se denotará como L pGq,
!
)
`
L pGq “ α P VT˚ : S Ñ α
G
Clasificación de gramáticas (Chomsky)
3 (las más simples),
2,
1,
0 (las más sofisticadas)
Clasificación de gramáticas (Chomsky)
Gramáticas regulares (tipo 3)
Las producciones son de la forma A Ñ xB o A Ñ x, donde A, B P VN y x P VT˚ . La gramática es llamada regular
”lineal a derecha”.
Las producciones son de la forma A Ñ Bx o A Ñ x, donde A, B P VN y x P VT˚ .
La gramática es llamada regular ”lineal a izquierda”.
Ambos tipos de gramática son llamados regulares.
Clasificación de gramáticas (Chomsky)
Gramáticas independientes del contexto (tipo 2) (también llamadas libres de contexto)
˚
Cada producción es de la forma A Ñ α, donde A P VN y α P pVN Y VT q .
Clasificación de gramáticas (Chomsky)
Gramáticas Dependientes del contexto (tipo 1) (también llamada sensitiva al contexto)
Cada producción es de la forma
SÑλ
o de la forma
αAγ Ñ αβγ
donde
A P VN ; α, γ P pVY VT q˚ ; β P pVN Y VT q` .
(Notar que esta segunda forma impide la generación de la cadena nula λ)
6
Clasificación de gramáticas (Chomsky)
Sin restricciones (tipo 0)
No poseen ninguna restricción.
Lenguaje generado por una gramática
Un lenguaje generado por una gramática tipo t es llamado ”lenguaje t”.
Ejemplo de gramática tipo 3 (regular)
G “ xtS, A, B, Cu , ta, b, cu , S, P y, donde P está dado por
S Ñ aA
A Ñ aB
A Ñ aA
B Ñ bB
B Ñ bC
C Ñ cC
CÑc
Derivación de aabbbbccc
S
Ñ aA
Ñ aabbB
Ñ aabbbbcC
Ñ aaB
Ñ aabbbB
Ñ aabbbbccC
Ñ aabB
Ñ aabbbbC
Ñ aabbbbccc
(
G genera el lenguaje an bm ck : m ě 2; n, k ě 1 .
Ejemplo de gramática tipo 2 (independiente del contexto)
G “ xtE, T, F u , ta, `, ˚, p, qu , E, P y donde P está dado por
E ÑE`T
EÑT
T ÑT ˚F
T ÑF
F Ñ pEq
F Ña
Derivación de a ˚ pa ` aq donde
E ÑT ÑT ˚F
Ñ T ˚ pEq Ñ F ˚ pEq
Ñ a ˚ pEq Ñ a ˚ pE ` T q
Ñ a ˚ pT ` T q Ñ a ˚ pF ` T q
Ñ a ˚ pa ` T q Ñ a ˚ pa ` F q
Ñ a ˚ pa ` aq
Ejemplo de gramática tipo 1 (dependiente del contexto):
Gamática G “ xtS, B, Cu , ta, b, cu , S, P y, donde P está dado por
S Ñ aSBC
S Ñ abC
CB Ñ BC
7
bB Ñ bb
bC Ñ bc
cC Ñ cc
Derivación de aaabbbccc:
SÑ
Ñ aSBC
Ñ aaabBCCBC
Ñ aaabbBCCC
Ñ aaabbbccC
Ñ aaSBCBC
Ñ aaabBCBCC
Ñ aaabbbCCC
Ñ aaabbbccc
Ñ aaabCBCBC
Ñ aaabBBCCC
Ñ aaabbbcCC
Ejemplo de gramática tipo 0 (sin restricciones):
˚(
Gramática para generar ww : w P ta, bu G “ ptS, A, B, C, Du , ta, bu , S, P q, donde P está dado por
S Ñ CD
C Ñ aCA
C Ñ bCB
AD Ñ aD
BD Ñ bD
Aa Ñ aA
Ab Ñ bA
Ba Ñ aB
Bb Ñ bB
CÑλ
DÑλ
derivación de abaaabaa
S
Ñ CD
Ñ abaCABAD
Ñ abaaAABaD
Ñ abaaaAABD
Ñ abaaabAAD
Ñ abaaabaaD
Ñ aCAD
Ñ abaaCAABAD
Ñ abaaAAaBD
Ñ abaaaAAbD
Ñ abaaabAaD
Ñ abaaabaa
8
Ñ abCBAD
Ñ abaaAABAD
Ñ abaaAaABD
Ñ abaaaAbAD
Ñ abaaabaAD
Descargar