Anda di halaman 1dari 22

UNIDAD 1: LENGUAJES DE PROGRAMACIN Y

TEORA DE LENGUAJES
SESIN 4: LENGUAJE Y GRAMATICA
REFLEXIONA:

Cuales son las Jerarquas de


Chomsky?

A qu se refiere con Lenguajes


Automatas?
LOGRO DE LA SESIN

La sesin de hoy comprende la continuacin de la clase anterior y se


complementa con los temas de Lenguajes Formales.
Al trmino de la sesin el estudiante complementar lo aprendido en
la clase anterior con la definicin de las Jerarquas de Chomsky.

Temario:
1. Continuacin de Lenguajes y Gramtica
2. Jerarqua de gramaticas segn Chomsky.
3. Lenguajes, Gramtica y Autmatas.
4. Expresiones Regulares
LENGUAJE Y GRAMATICA

Continuacin
LENGUAJE Y GRAMATICA

GRAMTICAS FORMALES

Las gramticas de todos los lenguajes humanos conocidos tienen una cosa en
comn: estn organizadas por frases.

Digamos a grosso modo que una frase es una unidad de lenguaje.

A su vez una frase para que sea sintcticamente correcta debe estar formada por
sujeto y predicado;

El predicado debe incluir un verbo; si el verbo es transitivo debe llevar un objeto


directo, etc..
LENGUAJE Y GRAMATICA

Tratamos de expresarlo con smbolos

<frase>::= <sujeto><predicado>
<sujeto>::= juan / antonio / mara / pepa
<predicado>::= <verbo transitivo><objeto directo>
<predicado>::= <verbo intransitivo>
<verbo transitivo>::= ama / lava / peina / adora
<objeto directo>::= paula / antonio / sultn
<verbo intransitivo>::= corre / salta / camina

Si partimos de <frase> y seguimos estas reglas podemos obtener

<frase> <sujeto><predicado> mara<predicado>


mara <verbo transitivo><objeto directo>
mara ama <objeto directo> mara ama sultn.
LENGUAJE Y GRAMATICA

Hemos construido una frase utilizando slo las reglas anteriores.

Decimos que mara ama sultn es una frase de la gramtica.

De modo anlogo

<frase> <sujeto><predicado> juan<predicado>


juan <verbo intransitivo> juan camina

As juan camina es otra frase de nuestra gramtica.

Queremos hacer una definicin formal de gramtica, para ello vamos a tratar de abstraer
lo principal de lo que en el lenguaje normal llamamos gramtica.
LENGUAJE Y GRAMATICA

Observamos que hay dos tipos de componentes: los que escribimos entre corchetes
<> y las que no.

Llamaremos a esos dos tipos de objetos no terminales y terminales respectivamente.

Obsrvese que una verdadera frase est escrita slo con terminales y los no
terminales se usan slo en pasos intermedios, para construir con sintaxis correcta.

Lo fundamental de la gramtica son las reglas que nos van a permitir formar frases
correctas.

Slo las frases que formemos de acuerdo a esas reglas sern frases correctas del
lenguaje de nuestra gramtica.

Antes de pasar a definir lo que es una gramtica, daremos unas definiciones previas.
LENGUAJE Y GRAMATICA

REGLA O PRODUCCIN.
Dado un alfabeto , llamamos regla a un par ordenado que se escribe u:= v, donde u
y v son palabras sobre .
En realidad una regla nos va a permitir cambiar la palabra u por la palabra v siempre
que queramos, (pero no al revs, v por u).

DERIVACIN DIRECTA.
Sea x:= y una regla sobre un alfabeto y sea una palabra tal que = uxv, entonces
decimos que la palabra w = uyv es una derivacin directa de y lo escribimos w
o bien uxv uyv.

DERIVACIN
Decimos que la palabra w se obtiene por derivacin de , y lo escribimos w,
cuando w se obtiene de aplicando varias reglas sucesivamente (ms de una vez),
o sea usando ms de una derivacin directa.
LENGUAJE Y GRAMATICA

Ejemplos:
Sea ={a,,z} sean las reglas (1) ab:= aba, (2) aa:= o, (3) ma:=tea.
Sea la palabra calabaza, podemos escribir
(1)

calabaza (2)
calabaaza (calabaza calabaaza, usando la regla (1))
calabaaza calaboza
(3)
manta teanta
(3)
maestro(3) teaestro
rizoma (1)
rizotea (2) (1)
caballo cabaallo cabollo cabaollo

As, calabaaza es una derivacin directa de calabaza y cabaollo es una derivacin


de caballo. Escribimos

calabaza calabaaza (en un paso)


caballo * cabaollo (en ms de un paso)
LENGUAJE Y GRAMATICA

GRAMTICA.

Una gramtica es un objeto G = (T, N, S, P), donde

T es un alfabeto cuyos smbolos llamamos smbolos terminales de la gramtica.

N es un alfabeto tal que T N = , cuyos smbolos llamamos smbolos no


terminales de G.

S es un smbolo no terminal sealado al que llamamos axioma de la gramtica.

P es un conjunto de reglas definidas sobre el alfabeto = T N, tales que en la


parte izquierda de todas las reglas aparece al menos un smbolo no terminal.

Ejemplo:
LENGUAJE Y GRAMATICA

Sea G1 = (T, N, S, P) siendo

T = {0,1,2} el conjunto de smbolos terminales,


N ={A, B, C, D} el alfabeto de los no terminales, en tal caso se tiene
={0, 1, 2, A, B, C, D}, sea el axioma el smbolo no terminal A, y sea
P ={A::=1B2, 1B::=00, 1A::=CD, C::= D1, D::=2}. As
G1 = (T, N, S, P) es una gramtica

En la gramtica que pusimos anteriormente como ejemplo tenemos

T = {juan, antonio, mara, pepa, ama, lava, peina, adora, paula, sultn, corre,
salta, camina}
N ={<frase>, <sujeto>, <predicado>, <verbo transitivo>, <verbo intransitivo>,
<objeto directo>}
<frase> es el axioma
LENGUAJE Y GRAMATICA

P es el conjunto formado por las siete reglas


<frase>::= <sujeto><predicado>
<sujeto>::= juan / antonio / mara / pepa
<predicado>::= <verbo transitivo><objeto directo>
<predicado>::= <verbo intransitivo>
<verbo transitivo>::= ama / lava / peina / adora
<objeto directo>::= paula / antonio / sultn
<verbo intransitivo>::= corre / salta / camina.

De nuevo tenemos una gramtica G2 = (T, N, <frase>, P)

El objetivo de la creacin de una gramtica es obtener todas las palabras posibles


que se puedan derivar desde el axioma y que estn escritas slo con smbolos
terminales.
LENGUAJE Y GRAMATICA

FORMA SENTENCIAL.

Dada una gramtica G = (T, N, S, P) y una palabra sobre el alfabeto = T N,


decimos que es una forma sentencial de G, si puede derivarse desde el axioma,
es decir si S* .

SENTENCIA.

Dada una gramtica G = (T, N, S, P) y una palabra que slo contiene smbolos
terminales ( T *) decimos que es una sentencia de G si puede derivarse desde
el axioma, es decir si S* .
Segn estas definiciones, todas las sentencias son formas sentenciales, pero no al
revs.
Cualquier derivacin del axioma es una forma sentencial, pero slo son sentencias
las derivaciones que contengan exclusivamente smbolos terminales de G.

Ejemplos:
LENGUAJE Y GRAMATICA

Sea la gramtica G3 = (T, N, S, P) dada por S:= xSy | xy, siendo T = {x,y}, el nico
no terminal es S, que adems necesariamente es el axioma. Las nicas derivaciones
posibles partiendo de S son del tipo
S xSy xxSyy .xxxxyyyy (tantas y como x)

xSy, xxSyy son formas sentenciales por que se derivan del axioma; no son
sentencias porque ambas palabras contienen el smbolo S que es no terminal.

xxxyyy es una sentencia porque puede ser derivada del axioma (derivarla) y slo
contiene smbolos terminales.

En la gramtica G2 = (T, N, <frase>, P) una forma sentencial podra ser


mara <verbo transitivo><objeto directo>
Y una sentencia
mara lava antonio
LENGUAJE Y GRAMATICA

LENGUAJE DE UNA GRAMTICA.

Sea G = (T, N, S, P) una gramtica. Llamamos lenguaje de G al conjunto de todas


las palabras sobre T que se puedan derivar desde el axioma, es decir al conjunto de
todas las sentencias
L(G)= { *T : S * )
Ejemplos:

Sea la gramtica G1 dada en los ejemplos anteriores cuyas reglas son S:= xSy / xy
Las nicas derivaciones posibles partiendo de S son del tipo
S xSy xxSyy .xxxxyyyy (tantas y como x)
Por tanto podemos escribir L(G) = {xn yn : n>0}.

Si consideramos la gramtica G2 las sentencias son del tipo maria lava antonio juan
corre , etc, Todas las sentencias constituyen el lenguaje de G2.
LENGUAJE Y GRAMATICA

GRAMTICAS EQUIVALENTES.
Dos gramticas decimos que son equivalentes si tienen el mismo lenguaje asociado.
Ejemplos:
Sean G1=(T ={x,y}, N ={S}, S, P ={S:= xSy, S:= xy}) y
G2=(T ={x,y}, N ={A,B}, A, P ={A:= xBy, B:= xBy, B:= })
Ambas gramticas son equivalentes, G1 G2.

Normalmente las reglas cuyas partes izquierdas coinciden, se escriben una a


continuacin de otra, separadas por una barra.
No escribimos S:= xSy, S:= xy, sino S:= xSy / xy
No escribimos B:= xBy, B:= , sino B:= xBy / .

El mayor problema que nos encontramos es dada una gramtica y una palabra
escrita sobre el alfabeto de smbolos terminales, decidir si la palabra pertenece o no
al lenguaje de la gramtica, es decir si se puede obtener como una derivacin del
axioma.
JERARQUA DE GRAMATICAS SEGN CHOMSKY

Las gramticas fueron clasificadas por Noah Chomsky, segn la forma de las reglas en:

Gramticas tipo 0 o sin restricciones: son las gramticas ms generales, no se pone


ninguna condicin a sus reglas.

Gramticas tipo 1 o dependientes del contexto: la parte derecha de todas las reglas
debe obtenerse por sustitucin de exactamente un smbolo no terminal de la palabra
que aparece a la izquierda de dicha regla y no hay ninguna regla compresora salvo
quiz S:= , siendo S el axioma. Formalmente

P = {vAw:=vxw : v,w,x, AN}

Gramticas tipo 2 o independientes del contexto: la parte izquierda de todas las


reglas debe ser exactamente un nico no terminal y no hay ninguna regla
compresora salvo quiz S:= , siendo S el axioma. Formalmente

P = {A:= w : w , AN}
JERARQUA DE GRAMATICAS SEGN CHOMSKY

Gramticas tipo 3 o regulares: no hay ninguna regla compresora salvo quiz S:=,
siendo S el axioma; adems la parte izquierda de todas las reglas debe ser
exactamente un nico no terminal y la parte derecha o es un nico smbolo terminal
o bien es un terminal seguido de un no terminal o al revs. Las gramticas regulares
se dividen en dos clases atendiendo a esta ltima condicin.

Gramtica lineal a la izquierda, sus reglas son de uno de los tipos siguientes A:= b,
A:= Ab, siendo AN , bT.

Gramtica lineal a la derecha, sus reglas son de uno de los tipos siguientes
A:= b, A:= bA, siendo AN , bT.

Ejemplos:
JERARQUA DE GRAMATICAS SEGN CHOMSKY

Sean T = {0,1,2}, N = {A, B, C, D}, A el axioma y las reglas


i) A:= BC1 iii) 1BC:= 11 v) B:= 0
ii) 1B1A:=1B11B1 iv) A:=1D vi) D:= B1

La regla i) es del tipo independiente del contexto.


La regla ii) es del tipo dependiente del contexto (se cambia el no terminal A por 1B1)
La regla iii) es del tipo general.
La regla iv) es regular, lineal a la derecha (el terminal de la parte derecha de la regla
est a la derecha).
La regla v) es regular (vlida para gramticas regulares a derecha o izquierda).
La regla vi) es regular, lineal a la izquierda (el terminal de la parte derecha de la regla
est a la izquierda).

Obsrvese que se da la inclusin descendente

G0 G1 G2 G3
JERARQUA DE GRAMATICAS SEGN CHOMSKY

RBOLES DE DERIVACIN.

Son una forma de representacin de las derivaciones a partir del axioma de una
gramtica. Slo se puede representar con rboles las derivaciones en gramticas al
menos dependientes del contexto.

Se dibuja un rbol cumpliendo las siguientes condiciones:

Un nico nodo raz que es el axioma


los nodos hojas son smbolos terminales
de cada nodo no terminal salen tantas ramas como smbolos tiene la parte
derecha de la regla que se va a utilizar.

Ejemplos
JERARQUA DE GRAMATICAS SEGN CHOMSKY

Sea de nuevo la gramtica S:= xSy / xy, y sea la derivacin ya mencionada


S xSy xxSyy xxxyyy
Su rbol de derivacin es

La palabra derivada se obtiene leyendo los smbolos correspondientes a los nodos


hojas de izquierda a derecha.

Anda mungkin juga menyukai