50
GRAMATICAS FORMALES ASTRID RODRIGUEZ PECHO

Gramáticas formales

Embed Size (px)

Citation preview

Page 1: Gramáticas formales

GRAMATICAS FORMALES

ASTRID RODRIGUEZ PECHO

Page 2: Gramáticas formales

CONCEPTOS: •Es una estructura matemática con un conjunto de reglas de formación que definen las cadenas de caracteres  admisibles en un determinado lenguaje formal o lenguaje natural. Las gramáticas formales aparecen en varios contextos diferentes: la lógica matemática, las ciencia de la computación y la lingüística  teórica, frecuentemente con métodos e intereses divergentes.

Page 3: Gramáticas formales

¿Cómo se puede definir las palabras que pertenecen a un

determinado lenguaje?

•Enumerando el conjunto de palabras:

⇒ ¿algunos lenguajes son infinitos?• Descripción informal de las palabras:

⇒ a veces complicado y demasiado impreciso•Descripción formal, basada en los operadores de palabras:

⇒ no suelen ser suficientes para especificar todos los lenguajes

Page 4: Gramáticas formales

• Necesitamos un formalismo para definir los lenguajes (las palabras que pertenecen a un lenguaje).

⇒ Una posibilidad - Gramáticas formales: • Una gramática describe de forma

inequívoca la estructura de las palabras de un lenguaje.

• Proporcionan un mecanismo para generar todas las palabras que pertenecen a un determinado lenguaje (también se llaman gramáticas generadoras)

Page 5: Gramáticas formales

Definición: Sea Σ un alfabeto. Una producción, o regla de producción, o regla de derivación, o regla de escritura, es un par ordenado (x,y), también representado por x::=y, tal que x∈∑+ e y∈∑* . Se llama x la cabeza o parte izquierda de la producción, e y su cuerpo o parte derecha.

PRODUCCIONES

Page 6: Gramáticas formales

Aplicación de una producción (x ::= y) a una palabra v para convertirla en otra w donde v=zxu y w=zyu (v, w, z, u * )

– Se cumple que para cada producción x::=y existe una derivación directa (haciendo z=u=λ): x y

DERIVACIÓN v * w:

Aplicación de una secuencia de producciones a una palabra. LONGITUD DE LA DERIVACIÓN:

Número de derivaciones que hay que aplicar para obtener la palabra. DERIVACIÓN MÁS A LA IZQUIERDA:

Se utiliza en cada derivación directa la producción aplicada a los símbolos más a la izquierda de la palabra.

DERIVACIÓN MÁS A LA DERECHA:

Se utiliza en cada derivación directa la producción aplicada a los símbolos más a la derecha de la palabra.

DERIVACIÓN DIRECTA

Page 7: Gramáticas formales

Se denomina gramática formal a la cuádrupla:

G = (T ,N, S, P) T , alfabeto de símbolos terminales N, alfabeto de símbolos no terminalesS N, es el axioma o símbolo inicialP es un conjunto finito de reglas de producción de la forma u ::= v, donde u + y v *.

Se verifica además que: T N = El alfabeto es = T N

Page 8: Gramáticas formales

1. La longitud de u→*u es 0.

2. ∑={C,N,0,1,2}

P={ N::=CN, N::=C, C::=0, C::=1, C::=2}

• N→CN

CN→CC

CC→0C ⇒ N→*00 con longitud 4

0C→00

• ¿{x|x∈∑* y CCC→*x y x es “irreducible”}?

• ¿{x|x∈∑* y N→*x y x es “irreducible”}? Propiedades de la derivación:

• Reflexiva: ∀x∈∑* : x→*x

• Transitiva: ∀x,y,z∈∑* : si x→*y e y→*z, entonces x→*z.

• Simétrica: no

Ejemplos:

Page 9: Gramáticas formales

Ejemplo : consideremos la gramática

T = {0, 1, 2}

N = {N, C}

S = N

P = { N::=NC, N::=C, C::=0, C::=1, C::=2} Es posible establecer una notación simplificada para las

reglas de producción. Si existen dos reglas de la forma

u::=v

u::=w

Se pueden representar de la forma:

u::=v | w

Esta forma de representar las reglas de producción recibe el nombre de “forma normal de Backus” (o BNF)

FORMA NORMAL DE BACKUS

Page 10: Gramáticas formales

Sea G = (T,N, S, P). Una palabra x * se denomina forma sentencial de G si se verifica que:

S * x

Considerando la gramática anterior, las siguientes son formas sentenciales : NCC, NC2, 120

S = N NC NCC

S = N NC NCC NC2

S = N NC NCC CCC 1CC 12C 120 Si una forma sentencial x cumple que x T * se dice que

x es una sentencia o instrucción de G. Es decir, las sentencias estarán compuestas únicamente por símbolos terminales.

En el ejemplo anterior es sentencia: 120

FORMAS SENTENCIALES Y SENTENCIAS

Page 11: Gramáticas formales

Sea una gramática G = (T ,N, S, P). Se llama lenguaje asociado a la G, o lenguaje generado por G, o lenguaje descrito por G, al conjunto :

L(G) = { x / S * x and x T * }

Conjunto de todas las sentencias de la gramática.

Ya que la teoría de gramáticas formales (Chomsky), junto con la notación BNF, proporciona una forma de describir lenguajes, esta simbología se considera como un metalenguaje (lenguaje para describir lenguajes)

LENGUAJE ASOCIADO A UNA GRAMÁTICA

Page 12: Gramáticas formales

o Ejemplo Castellano: La sintaxis del castellano se define mediante reglas:

1. Un oración consta de sujeto y predicado y termina con un punto.

2. Un sujeto es una frase nominal.

3. Una frase nominal es un grupo nominal seguido de un calificativo (que puede faltar)

4. …

Podemos usar producciones para representar estas reglas:

<oración>::=<sujeto> <predicado>.

<sujeto>::=<frase_nominal>

<frase_nominal>::=<grupo_nominal> <calificativo>

<frase_nominal>::=<grupo_nominal>

MOTIVACIÓN

Page 13: Gramáticas formales

Podemos analizar si una palabra del lenguaje (en castellano son frases) es “gramaticalmente correcta”:

<oración>

<sujeto>

<frase nominal>

. ”juega

<calificativo>

".”

<grupo nominal>

<predicado>

pequeño “El gato

Page 14: Gramáticas formales

Esta gramática da lugar a un lenguaje formal que consiste en el conjunto de todas las cadenas de caracteres que pueden ser generadas por medio ellas. Por ejemplo: bbbc, bbbbbbbbc, c, bc, etc.

Para comprender mejor la idea, podemos considerar un modelo de reescritura para el español:

1. O → SUJ PRED (Oración → Sujeto Predicado)

2. SUJ → Det N (Sujeto → Determinante Nombre)

3. PRED → V COMP (Predicado → Verbo Completo)

4. Det → el

5. N → niño, (hombre, anciano)

6. V → duerme, (ríe, come)

7. COMP → plácidamente, (intranquilo)

Page 15: Gramáticas formales

Estas reglas pueden utilizarse para generar la frase "el niño duerme plácidamente", así:

1.O (símbolo inicial)

2.UJ(ETO) PRED(ICADO) (por la regla 1)

3.Det(erminante) N(OMBRE) PRED(ICADO) (por la regla 2)

4.Det(erminante) N(OMBRE) V(ERBO) COMP(LEMENTO) (por la regla 3)

5.el N(OMBRE) V(ERBO) COMP(LEMENTO) (por la regla 4)

6.el niño V(ERBO) COMP(LEMENTO) (por la regla 5)

7.el niño duerme COMP(LEMENTO) (por la regla 6)

8.el niño duerme plácidamente (por la regla 7)

Page 16: Gramáticas formales

Vemos que existen unas definiciones especiales como FRASE, SUJETO, etc. que no aparecen en la frase final formada. Son unas entidades abstractas denominadas "categorías sintácticas" que no son utilizables en una oración (tienen un papel similar al de las categorías gramaticales de las lenguas naturales). E igualmente el mismo sistema permite derivar otras oraciones similares usando formas las formas léxicas entre paréntesis:

Det. N V COMP

Elniño

hombreanciano

duermeríe

come

plácidamenteintranquilo

Page 17: Gramáticas formales

Las categorías sintácticas definen la estructura del lenguaje representando porciones más o menos grandes de las frases. Existe una jerarquía interna entre las categorías sintácticas.

La categoría superior sería la FRASE que representa una oración válida en lengua castellana.

Por debajo de ella se encuentran sus componentes. Ninguna de estas categorías dan lugar a frases válidas solo la categoría superior.

Al finalizar toda la jerarquía llegamos a las palabras que son las unidades mínimas con significado que puede adoptar una frase.

Aplicando las jerarquías y sustituyendo elementos, llegamos al punto en donde todas las categorías sintácticas se han convertido en palabras, obteniendo por tanto una oración válida; como por ejemplo: El niño corre. Este proceso se llama producción o generación.

Page 18: Gramáticas formales

Un conjunto de todas las palabras sobre {a,b}.

La Numeración de Gödel  {an : a es un número primo y n un número de Gödel}.

El conjunto de todos los programas sintácticamente válidos en un determinado lenguaje de programación.

El conjunto de todas las fórmulas bien formadas en la lógica de primer orden.

LENGUAJES FORMALES

Page 19: Gramáticas formales

Los lenguajes formales se pueden especificar de una amplia variedad de formas, como por ejemplo:

(Si el lenguaje es regular) Cadenas producidas por una gramática formal

(véase la jerarquía de Chomsky). Cadenas descriptas por una expresión regular. Cadenas aceptadas por un autómata, tal como una

máquina de Turing.

Las cadenas están formadas por un conjunto de símbolos que pertenecen a un mismo lenguaje, existen dos formas de componer una sentencia o función con los símbolos:

• Sintaxis

• Semántica

ESPECIFICACIÓN DE LENGUAJES FORMALES

Page 20: Gramáticas formales

En la formalización clásica de gramáticas generativas primero propuesto por Noam Chomsky en la década de 1950, una gramática T consta de los siguientes componentes: Un conjunto finito N de símbolos no terminales, ninguno de

los que aparecen en las cadenas forman a partir de G. Un conjunto finito de símbolos terminales que es disjunta de

N. Un conjunto P finito de reglas de producción, cada regla de la

forma donde es el operador estrella Kleene y denota establecer la unión. Eso es, cada uno de producción mapas de reglas de una cadena de símbolos a otra, donde la primera cadena contiene un número arbitrario de símbolos proporcionados al menos uno de ellos es un no terminal. En el caso de que la segunda cadena consiste únicamente de la cadena vacía - es decir, que no contiene símbolos en absoluto - puede ser denotado con una notación especial con el fin de evitar la confusión.

LA SINTAXIS DE LAS GRAMÁTICAS

Page 21: Gramáticas formales

Un distinguido símbolo que es el símbolo inicial.Una gramática se define formalmente como la dupla. Tal gramática formal a menudo se llama un sistema de reescritura o una gramática sintagmática en la literatura.

Page 22: Gramáticas formales

La operación de una gramática puede ser definido en términos de relaciones en las cadenas: Dada una gramática, la relación binaria en cadenas

en se define por: la relación se define como la clausura transitiva reflexiva de una forma proposicional es miembro de que se pueda obtener en un número finito de pasos del símbolo de inicio, es decir, una forma proposicional es un miembro de. Una forma proposicional que no contiene símbolos no terminales se llama una oración.

El lenguaje de, denotado como, se define como todas aquellas frases que se pueden derivar en un número finito de pasos del símbolo de inicio, es decir, el conjunto.

LA SEMÁNTICA DE GRAMÁTICAS

Page 23: Gramáticas formales

Se pueden utilizar varias operaciones para producir nuevos lenguajes a partir de otros dados. Supóngase que L1 y L2 son lenguajes sobre un alfabeto común. Entonces:

La concatenación L1L2 consiste de todas aquellas palabras de la forma vw donde v es una palabra de L1 y w es una palabra de L2

La intersección L1&L2 consiste en todas aquellas palabras que están contenidas tanto en L1 como en L2

La unión L1|L2 consiste en todas aquellas palabras que están contenidas ya sea en L1 o en L2

El complemento ~L1 consiste en todas aquellas palabras producibles sobre el alfabeto de L1 que no están ya contenidas en L1

OPERACIONES

Page 24: Gramáticas formales

El cociente L1/L2 consiste de todas aquellas palabras v para las cuales existe una palabra w en L2 tales que vw se encuentra en L1

La estrella L1*(Llamada también clausura de Kleene del lenguaje L1) consiste de todas aquellas palabras que pueden ser escritas de la forma W1W2...Wn donde todo Wi se encuentra en L1 y n ≥ 0. (Nótese que esta definición incluye a λ en cualquier L*)

La Clausura positiva L1+ consiste de todas aquellas

palabras que pueden ser escritas de la forma W1W2...Wn donde todo Wi se encuentra en L1 y n > 0. (Difiere de la clausura de Kleene ya que contiene a λ si y sólo si L1 contiene a λ)

La intercalación L1*L2 consiste de todas aquellas palabras que pueden ser escritas de la forma v1w1v2w2...vnwn; son palabras tales que la concatenaciónv1...vn está en L1, y la concatenación w1...wn está en L2.

Page 25: Gramáticas formales

Una pregunta que se hace típicamente sobre un determinado lenguaje formal L es cuán difícil es decidir si incluye o no una determinada palabra v. Este tema es del dominio de la teoría de la computabilidad y la teoría de la complejidad computacional.

Por contraposición al lenguaje propio de los seres vivos y en especial el lenguaje humano, considerados lenguajes naturales, se denomina lenguaje formal a los lenguajes «artificiales» propios de las matemáticas o la informática, los lenguajes artificiales son llamados lenguajes formales (incluyendo lenguajes de programación). Sin embargo, el lenguaje humano tiene una característica que no se encuentra en los lenguajes de programación: la diversidad.

Page 26: Gramáticas formales

La idea consiste en definir un lenguaje mediante reglas de producción.

Ejemplo lenguaje formal 1

Σ={S,A,a,b}

P={S::=Ab, A::=aAb, A::=λ}

¿Cuáles son todas las posibles derivaciones (irreducibles) desde S?

S→Ab→b

S→Ab→aAbb→abb

S→Ab→aAbb→ aaAbbb→aabbb

{x|S→*x y x es “irreducible”}={anb n+1|n>=0}

Page 27: Gramáticas formales

Ejemplo lenguaje formal 2

Σ={S,a,b}

P={S::=λ, S::=aSb}

¿ {x|S→*x y x es “irreducible”}?

Se puede considerar que los elementos de Σ tienen distinta funcionalidad:

S y A – variables (“símbolos no terminales”)

a y b – “símbolos terminales”

S – símbolo no terminal de partida (“axioma”)

Page 28: Gramáticas formales

Una gramática formal es un modelo matemático (más exactamente una estructura algebraica) compuesto por una serie de categorías sintácticas que se combinan entre sí por medio de unas reglas sintácticas que definen cómo se crea una categoría sintáctica por medio de otras o símbolos de la gramática. Existen varios tipos de gramáticas formales históricamente importantes:Las gramáticas formales categoriales (C-

gramáticas) que usan un análisis de abajo a arriba y requieren el uso de etiquetas de categoría para cada secuencia formada o constituyente sintáctico  propiamente dicho. Existe una única categoría superior que denota cadenas completas y válidas.

GRAMATICAS FORMALES EN LINGÜÍSTICA TEÓRICA

Page 29: Gramáticas formales

Las gramáticas de estructura sintagmática (ES-gramáticas, en inglésPS-grammars) basadas en reglas de reescritura  y con un análisis de arriba abajo. Al igual que las C-gramáticas se basan en la noción de constituyente sintáctico.

REGLAS DE REECRITURA

• Todas las oraciones excepto las impersonales (oraciones referentes al tiempo) se desglosan en dos partes, un Sintagma nominal y un Sintagma verbal. El sintagma nominal hace referencia al sujeto de la oración, y el sintagma verbal al predicado.

O → SN + SV

• Un sintagma nominal siempre está compuesto por un determinante, un núcleo y un complemento.

SN → det + N + C

• Un sintagma verbal siempre está compuesto por el auxiliar y el grupo verbal.

SV → Aux.( voz, modo, etc) + G.V

Page 30: Gramáticas formales

• El Grupo Verbal es el verbo en infinitivo. Puede ser un verbo predicativo o copulativo.

G.V. → V [+Complementos]

ó

G.V. → Copula + Atributo [ + Complementos ]

• Los complementos pueden ser del nombre, directos, indirectos y/o circunstanciales.

•  Completo Directo (CD). Puede tratarse de un Sintagma Nominal, o un Sintagma Preposicional.

CD   → SN → det + N +C

ó

CD = S.Prep. → R + SN

(R = Refuncionalizador )

Page 31: Gramáticas formales

• Complemento indirecto (CI). Es siempre un sintagma preposicional (Un sintagma nominal precedido de una preposición)

CI → S.Prep. → R + SN

• Complemento del nombre  (CN). Son adjetivos que complementan a un nombre en un SN. Pueden ser formales (estructura de un SN) o funcionales (estructura de un S. Prep.).

Ejemplo: La casa verde. (verde es un adjetivo formal)

det La

N casa

SN det 0 C N verde

C 0

Page 32: Gramáticas formales

Las gramáticas asociativas (por la izquierda) (A-gramáticas, en inglésLA-grammars), que usa usa un análisis de abajo a arriba, que permiten un análisis en de complejidad lineal, aunque ignoran el concepto de constituyente sintáctico.

Los dos primeros tipos tienen puntos de conexión obvia con la noción de constituencia sintáctica y el análisis mediante árboles sintácticos. Sin embargo, los analizadores sintácticos para las oraciones formadas según ellas no pueden basarse en las reglas de generación (asimetría hablante-oyente), lo cual sugiere que no puedan ser buenos modelos de la intuición de los hablantes. Además los modelos de lengua natural basados en ellas parecen tener una complejidad polinómica o exponencial, lo cual no parece avenirse con la velocidad con que los hablantes procesan las lenguas naturales.

Page 33: Gramáticas formales

Por contra las A-gramáticas en general tienen complejidad lineal, simetría entre hablantes y oyentes, sin embargo, ignoran los constituyentes clásicos del análisis sintáctico. Sin embargo, siguen siendo usadas para los analizadores sintácticos usados en computación.

Por medio de estos elementos constituyentes se define un mecanismo de especificación consistente en repetir el mecanismo de sustitución de una categoría por sus constituyentes en función de las reglas comenzando por la categoría superior y finalizando cuando la oración ya no contiene ninguna categoría. De esta forma, la gramática puede generar o producir cada una de las cadenas del lenguaje correspondiente y solo estas cadenas.

Page 34: Gramáticas formales

Una gramática categorial o C-gramática es una basada en categorías gramaticales. Las formas léxicas y secuencias formadas a partir de ellas están etiquetadas con categorías que indican el tipo de entidad formada y sus posibilidades combinatorias (por ejemplo en una lengua nominal una secuencia de palabras puede constituir un sintagma nominal lo cual especifica con qué otro tipo de categorías puede combinarse este sintagma para formar otro sintagma mayor).

Las gramáticas categoriales se pueden definir como una estructura formal algebraica. Una gramática categorial es un quíntupla ( W, C, LX, R, CE)

DEFINICIÓN DE UNA C-GRAMÁTICA

Page 35: Gramáticas formales

En la definición clásica que dio Noam Chombsky en la década de 1950, unagramática formal de estructura sintagmática (ES-gramática) es una cuádrupla G = (N,T,S,P) donde:

• N es un conjunto finito de símbolos no terminales (variables).

• T es un conjunto finito de símbolos terminales (constantes), disjunto con N.

• S es un símbolo distinguido de N, el símbolo inicial.

• P es un conjunto finito de reglas de producción, cada una de la forma:

( N U T ) * N( N U T ) → ( N U T) *

DEFINICIÓN DE UNA ES-GRAMÁTICA

Page 36: Gramáticas formales

Las ES-gramáticas como la usada en los primeros modelos de gramática generativa requieren ciertas restricciones para ser computacionalmente tratables. Para entender esa restricción debe considerarse la interacción entre un hablante y un oyente, el primero genera una oración o secuencia de acuerdo con las reglas de la gramática, el segundo para entender dicha secuencia debe analizar la secuencia para entenderla, encontrando los elementos formantes, interpretándolos y reconstruyendo la relación hay entre ellos (estructura interna).

LIMITACIÓN DE LAS GRAMÁTICAS FORMALES

Page 37: Gramáticas formales

Para que eso segundo sea posible se requiere que la estructura interna tenga una estructura suficientemente simple como poder analizar sintácticamente las secuencias con un bajo grado de ambigüedad. Pues bien computacionalmente se ha encontrado que la clase de complejidad frente al análisis inverso de ciertas gramáticas es excesiva. Para ES-gramáticas basadas en reglas de reescritura se tiene:Restricciones

en las reglas

Tipo de

ES-gramática

Tipo de

lenguaje

Grado de

complejidad

tipo 3 Gramática ES regular lenguajes regulares lineal

tipo 2Gramática ES

libre de contexto

lenguajes libres

de contextopolinómica

tipo 1Gramática ES

dependiente del contexto

lenguajes dependientes

del contextoexponencial

tipo 0Gramática ES

no restringida

lenguajes recursivamente

enumerablesindecidible

Page 38: Gramáticas formales

• Chomsky clasificó las gramáticas en cuatro grandes grupos : G0, G1, G2 y G3. Cada uno de estos grupos incluye las gramáticas del siguiente, e acuerdo con el siguiente esquema:

G3 G2 G1 G01. Gramáticas tipo 0• Las reglas de producción tienen la forma u ::= v donde u + , v *, u = xAy con x *, y *, A N sin otra restricción.• En las reglas de producción:• La parte izquierda no puede ser la palabra vacía.• En la parte izquierda (u) ha de aparecer algún

símbolo no terminal.

Page 39: Gramáticas formales

• Los lenguajes representados por estas gramáticas reciben el nombre de lenguajes sin restricciones. Puede demostrarse que todo lenguaje representado por este tipo de gramáticas pueden ser descritos también por un grupo de gramáticas un poco más restringido (llamado de gramáticas de estructura de frases), cuyas producciones tienen la forma xAy ::= xvy, donde x, y, v *, siendo A un símbolo no terminal.

• Ya que v puede ser la palabra vacía, se sigue que en estas reglas podemos encontrar situaciones en que la parte derecha sea más corta que la izquierda. Las reglas en que ocurre esto se denominan compresoras. Una gramática que contenga al menos una regla compresora se denomina gramática compresora.

• En las gramáticas compresoras, las derivaciones pueden ser decrecientes, ya que la longitud de las palabras puede disminuir en cada uno de los pasos de derivación.

Page 40: Gramáticas formales

Ejemplo: sea G = ({a, b}, {A, B, C}, A, P), donde P:

A ::= aABC | abC

CB ::= BC

bB ::= bb

bC ::= b Esta gramática es de tipo 0, no es de estructura de

frases por la regla CB ::= BC Formas de considerarla:

Considerando x = , A = C, y = B. Estaría formada la parte izquierda de la producción, pero la derecha será vB y sea cual sea v, no podrá ser BC

Considerando x = C, A = B, y = . Así tendríamos formada la parte izquierda de la regla, pero en la derecha tendríamos Cv, y sea v lo que sea no podremos obtener CB.

Page 41: Gramáticas formales

Ya no es posible hacer ninguna otra descomposición, por lo que esta regla no pertenece al esquema de reglas visto para las gramáticas de estructura de frases.

Para la producción : A ::= aABC: A = A, x= , y =. Si hacemos v = aABC, la regla

se ajusta al formato considerado. Sin embargo la regla CB ::= BC puede

descomponerse en las cuatro reglas siguientes, que permiten obtener las mismas derivaciones con más pasos, pero ajustándose a las condiciones exigidas para que la gramática sea de estructura de frases.

CB ::= XB

XB ::= XY

XY ::= BY

BY ::= BC

Page 42: Gramáticas formales

La gramática resultante, tendrá 3 reglas de producción más y dos símbolos adicionales (X, Y) en el alfabeto de símbolos no terminales. Veamos la derivación de la sentencia aaabbb,

mediante la gramática original :

A a(A)BC aa(A)BCBC aaab(CB)CBC aaa(bB)CCBC aaab(bC)CBC aaab(bC)BC aaab(bB)C aaabb(bC) aaabbb

Se observa también que la gramática es compresora, debido a la presencia de la regla bC ::= b.

Puede comprobarse que el lenguaje generado por esta gramática es {anb n|n=1,2,..}

Page 43: Gramáticas formales

Las reglas de producción de esta gramática tienen la forma:

xAy ::= xvydonde x, y *, v + y A ha de ser un símbolo no terminal. (A puede transformarse en v sólo si aparece en el contexto definido por x e y)

Ya que v no puede ser la palabra vacía, se deduce de aquí que este tipo de gramáticas no pueden tener reglas compresoras. Se admite una excepción en la regla S ::= (siendo S el axioma de la gramática). Como consecuencia se tiene que la palabra vacía pertenece al lenguaje generado por la gramática sólo si contiene esta regla.

Los lenguajes generados por este tipo de gramáticas se denominan “dependientes del contexto”.

GRAMÁTICAS TIPO 1

Page 44: Gramáticas formales

Evidentemente todas las gramáticas de tipo 1 son también de tipo 0, y así, todos los lenguajes dependientes de contexto serán también lenguajes sin restricciones.

Ejemplo : G = ({S, B, C}, {a, b, b}, S,P), donde P es:

S ::= aSBc | aBC

bB ::= bb

bC ::= bc

CB ::= BC

cC ::= cc

aB ::= ab

Page 45: Gramáticas formales

o Las reglas de estas gramáticas se ajustan al siguiente esquema:

A ::= v donde v *, y A N En concreto v puede ser .

o Para toda gramática de tipo 2 existe una gramática equivalente desprovista de reglas de la forma A ::= , que generará el mismo lenguaje que la de partida, excepto la palabra vacía. Si se le añade a la segunda gramática la regla S ::= , las gramáticas generarán el mismo lenguaje.

o Por lo tanto, se pueden definir las gramáticas de tipo 2 de una forma más restringida, en el que las reglas de producción tendrán la siguiente forma:

A ::= v donde v + , y A N . Además podrán contener regla

S ::=

GRAMÁTICAS TIPO 2

Page 46: Gramáticas formales

o Los lenguajes generados por este tipo de gramáticas se denominan independientes de contexto, ya que la conversión de A en v puede realizarse independientemente del contexto en que aparezca A.

o La mayor parte de los lenguajes de programación de ordenadores pueden describirse mediante gramáticas de este tipo.

o Ejemplo : sea la gramática G = ({a, b}, {S}, S, { S ::= aSb | ab}). Es una gramática de tipo 2. La derivación de la palabra aaabbb será: S aSb aaSbb aaabbb

Puede verse que el lenguaje definido por esta gramática es {anb n | n=1, 2, ...}

o Un mismo lenguaje puede generarse por muchas gramáticas diferentes. Sin embargo, una gramática determinada describe siempre un lenguaje único.

Page 47: Gramáticas formales

Estas gramáticas se clasifican en los dos grupos siguientes: Gramáticas lineales por la izquierda, cuyas reglas de

producción pueden tener una de las formas siguientes:

A ::= a

A ::= Va

S ::= donde a T , A, V N, y S es el axioma de la gramática.

Gramáticas lineales por la derecha, cuyas reglas de producción tendrán la forma:

A ::= a

A ::= aV

S ::= donde a T , A, V N, y S es el axioma de la gramática.

GRAMÁTICAS TIPO 3

Page 48: Gramáticas formales

Los lenguajes representados por este tipo de gramáticas se denominan lenguajes regulares.

G1 = ({ 0, 1}, {A, B}, A, { A ::= B1 | 1, B ::= A0}) Gramática lineal por la izquierda que describe el lenguaje: L1 = { 1, 101, 10101, ... } = {1(01)n | n = 0, 1, 2, ...}

G2 = ({ 0, 1}, {A, B}, A, { A ::= 1B | 1, B ::= 0A}) Gramática lineal derecha que genera el mismo lenguaje que la gramática anterior.

Page 49: Gramáticas formales

Dentro del enfoque formalista y axiomático de las matemáticas se concibió que ciertas áreas de las matemáticas podían concebirse como un sistema lógico-deductivo de fórmulas sujetas a restricciones de manipulación. La gramática formal de esos sistemas sería el conjunto de reglas combinatorias acordes a ciertos principios deductivos.

GRAMÁTICAS FORMALES EN MATEMÁTICAS Y LÓGICA

Page 50: Gramáticas formales

Un lenguaje formal en lógica o matemáticas es una tripleta  (A, RF ,A,D)

donde A denota el alfabeto o conjunto de signos usados, el conjunto de reglas  RF  explica qué combinaciones de signos están bien definidas y permite definir lo que es una fórmula bien formada (en ese sentido   RF define la morfología de las palabras de la lengua formal). El conjunto de fórmulas bien formadas constituyen el vocabulario o léxico, mientras el par  (A,D) describe el conjunto de axiomas y el conjunto de reglas de deducción válidas. Estas dos últimas permiten establecer secuencias de fórmulas bien formadas (palabras del lenguaje formal) que constituyen demostraciones válidas dentro del sistema formal (son de alguna manera el equivalente a la sintaxis de la lengua formal).