You are on page 1of 33

ST0270-031

Clase 4
J.F. Cardona
Universidad EAFIT

28 de julio de 2016

Agenda

Captulo 2. Sintaxis
Expresiones regulares y lenguajes
lingu
stica
Abstraccion

Gramaticas
generativas independiente del contexto

Gramaticas
generativas independiente del contexto
y generacion
del lenguaje
Derivacion

Cadenas erroneas
y reglas inutiles

Expresiones regulares y lenguajes - Propiedades de


clausura de la familia REG

op
op

L1 L2 L3
L1 L1 L3

Una familia de lenguaje es cerrada por los operadores op, si


el lenguaje es cualquier lenguaje de la familia, este esta en la
misma familia.
Propiedad La familia REG de lenguajes regulares es cerrado
union
y estrella (por lo
por el operador de concatenacion,
tanto cualquier operador derivado tal como el operador cruz).

Propiedad La familia REG de lenguajes regulares es el mas


lenguaje de la familia tal que:
pequeno
1
2

Este contiene todos los lenguajes finitos.


union
y estrella.
Este es cerrado por la concatenacion,

lingu
stica.
Abstraccion
Definiciones

Abstraccion
Considerar un concepto sin pensar en un ejemplo especfico.
lingu
stica
Abstraccion
de lenguaje que reemplaza los caracteres
Es una transformacion
terminales de un lenguaje concreto con otro lenguaje tomado de
lenguaje abstracto.
Los caracteres abstractos deben ser simples y apropiados para
representar constructores similares en diferentes lenguajes
artificiales.

Las estructuras abstractas sintacticas


de los lenguajes artificiales

existentes son facilmente


descritas como composiciones de unos
pocos paradigmas elementales por medio de operaciones de

iteracion
y substitucion.

lenguaje estandar:
union,

Listas abstractas y concretas

Lista abstracta

Contiene un ilimitado numero


de elementos e del mismo tipo. Esta
regular, e + o e si los elementos
es definida por una expresion
pueden ser omitidos.
Lista con separadores
regular, e (se ) indicando que el
Es definida por una expresion
pares de se.
primer elemento puede ser seguido por cero o mas
se puede definir de la siguiente forma:
Tambien

(es ) e

Listas abstractas y concretas

Lista con separadores y marcas de apertura y cierre


i
f

Marca de apertura
Marca de cierre
ie (se ) f


Substitucion

Definicion

Es un operador de lenguaje, este operador reemplaza un caracter


terminal de un lenguaje llamado fuente, con una frase (sentencia)
de otro lenguaje llamado el lenguaje objetivo.


Substitucion
formal
Definicion
Sea el alfabeto fuente.
Sea L .
ocurrencias
Considere un frase de L que contiene una o mas

del caracter (smbolo) fuente b:


i , ai = b
x = a1 a2 . . . an donde para algun
Sea otro alfabeto, llamado objetivo, y Lb sea el
lenguaje imagen de b.
Lb para b en la cadena x
El lenguaje de substitucion
produce un conjunto de cadenas, esto es, un lenguaje de
alfabeto ( \ {b }) , definido como:

{y | y = y1 y2 . . . yn (Si ai , b entonces yi = ai sino yi Lb )}


Substitucion
Ejemplo

La sintaxis abstracta de una lista de parametros


es
ie (se ) f

Las listas de intrucciones existen comunmente


en los lenguajes
imperativos y son generadas a partir de la sintaxis abstracta de

una lista de parametros


begin instr 1 ; instr 2 ; . . . ; instr n ; end

es la siguiente:
La sustitucion

Caracter
abstracto
i
e
s
f

Substitucion
Li = begin
Le = instr pos
Ls =;
Lf = end


Gramaticas
generativas independientes del contexto

Prefacio

Tiene un rol central en la compilacion.

Fueron inicialmente inventadas por linguistas


para el
procesamiento de lenguaje natural.

Lmites de los lenguajes regulares.

Aunque las expresiones regulares son practicas


para
construir listas y paradigmas relacionados, se quedan cortos
al definir otros constructores frecuentes.
de estructuras de
Un caso particular es la construccion

bloque (o parentesis
anidados), suministrados por muchos
como por ejemplo:
lenguajes de programacion,
begin begin . . . begin . . . end begin . . . end . . . end end

|
|

{z

} |
{z

{z

}
}

Lmites de los lenguajes regulares.

Resumiendo, sea {b , e } el alfabeto, y considere un cadena


limitada de estructuras anidadas, tal que todos las marcas de

apertura preceden a todas las marcas de terminacion.


deben
Claramente, las marcas de apertura y terminacion

tener un conteo identico:


L1 = {b n e n | n 1}
Argumentamos que este lenguaje no puede ser definido por
regular.
una expresion
Para definir este y otros lenguajes, regulares o no, nos

moveremos al modelo formal de las gramaticas


generativas.

a las gramaticas

Introduccion
independientes del
contexto

Una gramatica
generativa o sintaxis es un conjunto de
reglas que pueden ser aplicadas de forma repetitiva con el

objetivo de generar todas las cadenas validas y unicamente


estas.
Ejemplo. El lenguaje de los palndromos
L = {uuR | u {a , b } } = {, aa , bb , abba , baab , . . .}

La siguiente gramatica
contiene las tres reglas:
pal 

pal a pal a

pal b pal b

puede ser continuado y termina cuando la


El proceso de derivacion

de un smbolo terminal; en
ultima
cadena obtenida no contiene mas
de la frase concluye.
ese momento la generacion

a las gramaticas

Introduccion
independientes del
contexto

Ejemplo: Lista de palndromos


list pal , list
list pal

pal 
pal a pal a
pal b pal b

a las gramaticas

Introduccion
independientes del
contexto

Ejemplo: Metalenguaje de las expresiones regulares


1. expr
2. expr a
3. expr b

4. expr (expr expr )


5. expr (expr expr )
6. expr (expr )

de gramatica

Definicion
independiente de contexto

Definicion

Una gramatica
independiente del contexto G esta definida por
cuatro entidades:
1

V , alfabeto no-terminal, un conjunto de smbolos


denominados no terminales (o meta-smbolos).

, alfabeto terminal.

P, un conjunto de reglas sintacticas


(o producciones).

S V , un termino
particular no-terminal denominado axioma.

de gramatica

Definicion
independiente de contexto

Reglas
Una regla P es un par ordenado X con X V y
(V ) .
reglas
Dos o mas
X 1 , X 2 , . . . , X n
con la misma parte izquierda X pueden ser concisamente
agrupados en
X 1 | 2 | . . . | n
Decimos que 1 , 2 , . . . , n son alternativas de X .


Gramaticas
generativas independientes del contexto

Prefacio

Tiene un rol central en la compilacion.

Fueron inicialmente inventadas por linguistas


para el
procesamiento de lenguaje natural.

Lmites de los lenguajes regulares.

Aunque las expresiones regulares son practicas


para
construir listas y paradigmas relacionados, se quedan cortos
al definir otros constructores frecuentes.
de estructuras de
Un caso particular es la construccion

bloque (o parentesis
anidados), suministrados por muchos
como por ejemplo:
lenguajes de programacion,
begin begin . . . begin . . . end begin . . . end . . . end end

|
|

{z

} |
{z

{z

}
}

Lmites de los lenguajes regulares.

Resumiendo, sea {b , e } el alfabeto, y considere un cadena


limitada de estructuras anidadas, tal que todos las marcas de

apertura preceden a todas las marcas de terminacion.


deben
Claramente, las marcas de apertura y terminacion

tener un conteo identico:


L1 = {b n e n | n 1}
Argumentamos que este lenguaje no puede ser definido por
regular.
una expresion
Para definir este y otros lenguajes, regulares o no, nos

moveremos al modelo formal de las gramaticas


generativas.

a las gramaticas

Introduccion
independientes del
contexto

Una gramatica
generativa o sintaxis es un conjunto de
reglas que pueden ser aplicadas de forma repetitiva con el

objetivo de generar todas las cadenas validas y unicamente


estas.
Ejemplo. El lenguaje de los palndromos
L = {uuR | u {a , b } } = {, aa , bb , abba , baab , . . .}

La siguiente gramatica
contiene las tres reglas:
pal 

pal a pal a

pal b pal b

puede ser continuado y termina cuando la


El proceso de derivacion

de un smbolo terminal; en
ultima
cadena obtenida no contiene mas
de la frase concluye.
ese momento la generacion

a las gramaticas

Introduccion
independientes del
contexto

Ejemplo: Lista de palndromos


list pal , list
list pal

pal 
pal a pal a
pal b pal b

a las gramaticas

Introduccion
independientes del
contexto

Ejemplo: Metalenguaje de las expresiones regulares


1. expr
2. expr a
3. expr b

4. expr (expr expr )


5. expr (expr expr )
6. expr (expr )

de gramatica

Definicion
independiente de contexto

Definicion

Una gramatica
independiente del contexto G esta definida por
cuatro entidades:
1

V , alfabeto no-terminal, un conjunto de smbolos


denominados no terminales (o meta-smbolos).

, alfabeto terminal.

P, un conjunto de reglas sintacticas


(o producciones).

S V , un termino
particular no-terminal denominado axioma.

de gramatica

Definicion
independiente de contexto

Reglas
Una regla P es un par ordenado X con X V y
(V ) .
reglas
Dos o mas
X 1 , X 2 , . . . , X n
con la misma parte izquierda X pueden ser concisamente
agrupados en
X 1 | 2 | . . . | n
Decimos que 1 , 2 , . . . , n son alternativas de X .

sobre la representacion
de las gramaticas

Convencion

Los meta-smbolos , |, y  no deben ser utilizados


por los smbolos terminales y no-terminales;
los alfabetos terminales y no terminales deben ser disjuntos.
Los no-terminales deben ser identificados por nombres
auto-explicativos y las reglas deben ser dividas y
numeradas para referencia.

sobre la representacion
de las gramaticas

Convencion

No-terminales
palabras
entre

parentesis
angulares, por ejemplo:
hsentence i,
hlist of sentences i
palabras
escritas
como ellas son,
sin marcas especiales; pueden no
contener
espacios en blanco, por
ejemplo: sentence,
list of sentences
letras latinas en

mayusculas;
alfabeto
termina y no-terminal
disjuntos

Terminales
escritas como ellas
son, sin marcas especiales

Ejemplos
hif
sentence i

if hcond i then hsentence i else hsentence i

escritas en negrillas,
en cursiva o entre comillas, por ejemplo:
a then o 0 a 0 0 then0

if
sentence

if cond then sentence else sentence


o
if
sentence

0 if 0 cond 0 then 0 sentence 0 else 0 sentence

escritas como ellas


son, sin marcas especiales

F if C then D else D

sobre la representacion
de las gramaticas

Convencion

de gramaticas

Representacion
independientes de contexto

Se adopta el siguiente estilo de representacion:

letras latinas minusculas


cercanas al inicio del alfabeto
{a , b , c , . . .} para representar terminales;

letras latinas mayusculas


{A , B , C , . . .} para smbolos no
terminales;

letras latinas minusculas


cercanas al final del alfabeto
{r , s , . . . , z } para cadenas sobre (por ejemplo: incluyendo

unicamente
terminales);

letras griegas minusculas


{, , , . . .} para cadenas sobre
el alfabeto combinado (V ) .

Tipo de reglas

La reglas pueden ser clasificadas de acuerdo a su forma.


mostramos una tabla con los
En la siguiente presentacion
comunes de reglas.
tipos mas
Cada regla es enseguida esquematizada, con los smbolos
adheridos a las siguientes estipulaciones:
a, b son terminales,
u, v, w denotan posiblemente cadenas vacas de terminales,
A , B, C son no-terminales,
, denotan posiblemente cadenas vacas conteniendo
terminales y no-terminales,
finalmente, denota una cadena de no-terminales.
se basa tanto en forma del lado derecho de la
La clasificacion
regla (rhs-right hand side), excepto en los casos recursivos
que se consideran con respecto al lado izquierdo (lhs -left
hand side) y el lado derecho.

Tipo de reglas

Clase y descripcion

Ejemplos

terminal: rhs contiene terminales o la cadena vaca


vaco (o nulo): rhs es vaco
inicial: lhs es el axioma
recursivo: lhs ocurre dentro de rhs
recursivo por la izquierda: lhs es prefijo de rhs
recursivo por la derecha: lhs es sufijo de rhs
de los anteriores
recursivo por la derecha e izquierda: conjuncion
casos
rhs es un unico

copia o categorizacion:
no-terminal
lineal: a lo sumo uno no terminal en rhs
lineal por la derecha (tipo 3): como el lineal pero un no-terminal es
sufijo
lineal por la izquierda (tipo 3): como el lineal pero un no-terminal es
prefijo

normal homogeneo:
n no-terminales o un solo terminal

normal Chomsky o (homogeneo


grado 2): dos no-terminales o un
solo terminal
normal Greibach: un terminal posiblemente seguido por noterminales
normal operador: dos no-terminales separados por un terminal
generalmente, cadenas evitando no-terminales ad(operador); mas
yacentes

u|

S
A A
A A
A A
A A A
A B
uBv|w
uB|w

Bv|w
A1 . . . An | a
BC|a
a | b

A aB

y generacion
del lenguaje
Derivacion

Sea = A una cadena que contiene un no-terminal, donde


y sean cualquier cadena, posiblemente vaca.
Sea A sea una regla de G y sea = la cadena
obtenida al reemplazar el no terminal A con .
entre tales dos terminales es llamada derivacion.

La relacion

Decimos que deriva para la gramatica


G, escribiendo

Cuando la gramatica
es conocida: .
y la cadena
La regla A es aplicada en tal derivacion
reduce al no terminal A .

y generacion
del lenguaje
Derivacion
de longitud
Considere la siguiente cadena de derivacion
n 0:

0 1 . . . n
Puede ser acortada a

o n
0

Si n = 0, para cada cadena se propone , esto es, que


que tenemos es reflexiva.
la relacion
Para expresar derivaciones de cualquier longitud, escribimos

0 n
es n 0.
si la longitud de la derivacion

Igualmente podemos expresar la siguiente derivacion


+

0 n
si la longitud de las derivaciones es n 1.


Lenguaje de una gramatica
independiente de contexto
a partir del no-terminal A
Definicion

El lenguaje generado definido por una gramatica


G iniciada
desde un no-terminal A es
+

LA (G ) = {x | A x }

Este es el conjunto de cadenas terminales derivada en uno o mas


pasos desde A .

El lenguaje generado por la gramatica


G
Si el no-terminal fue el axioma S, se tiene el lenguaje generado
por G.
+

L (G ) = {x | S x }

You might also like