tipos de lenguaje formal según chomsky

3
Tipos de Lenguaje Formal Zaraos Vázquez Jorge Alejandro [email protected] Resumen En este reporte se introducirá los conceptos teóricos necesarios sobre la teoría de lenguajes formales el conjunto finito o infinito de cadenas finitas de símbolos primitivos formadas por un alfabeto y una gramática especificada, así como los diferentes tipos de las jerarquías gramaticales regulares, recursivamente enumerables, independiente y dependiente del contexto estos divididos en jerarquías. 1. Cuerpo 1.1. Definiciones previas El lenguaje L(G) generado por una gramática G es el conjunto de todas las sentencias que puede generar G. Es decir expresado formalmente. L(G) = {η ϵ VT*/S → η} Una sentencia pertenece a L(G) si: -está compuesta de símbolos terminales. -la sentencia puede derivarse del símbolo inicial S aplicando las reglas de producción de la gramática. [1] 1.1.1. Propiedad. Dos gramáticas son equivalentes si ambas generan el mismo lenguaje. y son equivalentes si L( )= L( ) 1.1.2. Alfabeto. Conjunto finito de símbolos, no vacio. Para definir que un símbolo a pertenece a un alfabeto V se utiliza notación a ϵ V. Los alfabetos se definen por enumeración de los símbolos que contienen. Así como por ejemplo: = {A, B, C, D, E, F,…, X, Y, Z} = {a, b c, d, 0, 1, 2, *, #, +} = {if, then, end, a, b, =, >} [4] 1.1.3. Gramática. Conjunto finito de reglas para formar cadenas finitas juntando símbolos del alfabeto, es una cuádrupla G = (NT, T, S, P). NT = {conjunto finito de símbolos no terminales} T = {conjunto finito de símbolos terminales} S = {es el símbolo inicial y pertenece a NT} P = {conjunto de producciones o reglas de derivación} 1.2. Jerarquía de las gramáticas Es una clasificación jerárquica de distintos tipos de gramáticas formales que generan lenguajes formales. Hay 4 distintos tipos de gramáticas en función de la forma de las derivaciones de P. [2] 1.2.1. Gramática de tipo 0. Llamada también gramática no restringida o recursivamente enumerable, es un lenguaje formal para el cual existe una máquina de Turing que acepta y se detiene con cualquier cadena del lenguaje, pero que puede parar y rechazar, o bien iterar indefinidamente, con una cadena que no pertenece al lenguaje, en contraposición a los lenguajes recursivos en cuyo caso se requiere que la máquina de Turing pare en todos los casos. Las reglas de derivación son de la forma: α → β Siendo α ϵ (NT T y β ϵ (NT T)*, es decir la única restricción es que no puede haber reglas de la forma ƛ → β donde ƛ es la cadena vacía. [6] Los lenguajes recursivamente enumerables son cerrados con las siguientes operaciones. Esto es, si L y P son dos lenguajes recursivamente enumerables, entonces los siguientes lenguajes son recursivamente enumerables también: [3] Cierre estrella L* de L, concatenación LP de L y P, la unión L P de L y P, la intersección L ᴖ Pde L y P.

Upload: alex-vazquez

Post on 20-Jul-2015

1.092 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tipos de lenguaje formal según Chomsky

Tipos de Lenguaje Formal

Zaraos Vázquez Jorge Alejandro

[email protected]

Resumen

En este reporte se introducirá los conceptos

teóricos necesarios sobre la teoría de lenguajes

formales el conjunto finito o infinito de cadenas finitas

de símbolos primitivos formadas por un alfabeto y una

gramática especificada, así como los diferentes tipos

de las jerarquías gramaticales regulares,

recursivamente enumerables, independiente y

dependiente del contexto estos divididos en jerarquías.

1. Cuerpo

1.1. Definiciones previas

El lenguaje L(G) generado por una gramática G es

el conjunto de todas las sentencias que puede generar

G. Es decir expresado formalmente.

L(G) = {η ϵ VT*/S → η}

Una sentencia pertenece a L(G) si:

-está compuesta de símbolos terminales.

-la sentencia puede derivarse del símbolo inicial S

aplicando las reglas de producción de la gramática. [1]

1.1.1. Propiedad. Dos gramáticas son equivalentes si

ambas generan el mismo lenguaje.

y son equivalentes si L( )= L( )

1.1.2. Alfabeto. Conjunto finito de símbolos, no vacio.

Para definir que un símbolo a pertenece a un alfabeto V

se utiliza notación a ϵ V. Los alfabetos se definen por

enumeración de los símbolos que contienen. Así como

por ejemplo:

= {A, B, C, D, E, F,…, X, Y, Z}

= {a, b c, d, 0, 1, 2, *, #, +}

= {if, then, end, a, b, =, >} [4]

1.1.3. Gramática. Conjunto finito de reglas para

formar cadenas finitas juntando símbolos del alfabeto,

es una cuádrupla G = (NT, T, S, P). NT = {conjunto finito de símbolos no terminales}

T = {conjunto finito de símbolos terminales}

S = {es el símbolo inicial y pertenece a NT}

P = {conjunto de producciones o reglas de derivación}

1.2. Jerarquía de las gramáticas

Es una clasificación jerárquica de distintos tipos

de gramáticas formales que generan lenguajes

formales. Hay 4 distintos tipos de gramáticas en

función de la forma de las derivaciones de P. [2]

1.2.1. Gramática de tipo 0. Llamada también

gramática no restringida o recursivamente enumerable,

es un lenguaje formal para el cual existe una máquina

de Turing que acepta y se detiene con

cualquier cadena del lenguaje, pero que puede parar y

rechazar, o bien iterar indefinidamente, con una cadena

que no pertenece al lenguaje, en contraposición a

los lenguajes recursivos en cuyo caso se requiere que la

máquina de Turing pare en todos los casos. Las reglas

de derivación son de la forma: α → β

Siendo α ϵ (NT ∪ T y β ϵ (NT ∪ T)*, es decir la

única restricción es que no puede haber reglas de la

forma

ƛ → β donde ƛ es la cadena vacía. [6]

Los lenguajes recursivamente enumerables son

cerrados con las siguientes operaciones. Esto es, si L y

P son dos lenguajes recursivamente enumerables,

entonces los siguientes lenguajes son recursivamente

enumerables también: [3]

Cierre estrella L* de L, concatenación LP de L y P,

la unión L ∪ P de L y P, la intersección L ᴖ P de L y P.

Page 2: Tipos de lenguaje formal según Chomsky

1.2.2. Gramática de tipo 1. Llamada gramática

sensible al contexto es equivalente a una máquina de

Turing no determinista linealmente acotada, también

llamado Autómata linealmente acotado. Se trata de

una máquina de Turing no determinista con una cinta

de sólo kn posiciones, donde n es el tamaño de la

entrada y k es la constante asociada a la máquina. Esto

significa que cada lenguaje formal que puede ser

decidido por una máquina es un lenguaje sensible al

contexto en ellas las reglas de producción son de la

forma: αAβ → αγβ

Estas gramáticas tienen reglas de la forma αAβ →

αγβ con A un no terminal y α, β y γ cadenas de

terminales y no terminales. Las cadenas α y β pueden

ser vacías, pero γ no puede serlo. La regla S → ϵ está

permitida si S no aparece en la parte derecha de

ninguna regla. Los lenguajes descritos por estas

gramáticas son exactamente todos aquellos lenguajes

reconocidos por una máquina de Turing determinista

cuya cinta de memoria está acotada por un cierto

número entero de veces sobre la longitud de entrada,

también conocidas como autómatas linealmente

acotados.[3]

Siendo A ϵ NT; α, β ϵ (NT ∪ T)* y γ ϵ (VN ∪ VT .

Estas gramáticas se llaman sensibles al contexto,

pues se pueden reemplazar A por γ siempre que estén

en el contexto α…β.

La unión, intersección, y concatenación de dos

lenguajes sensibles al contexto es un lenguaje sensible

al contexto. El complemento de un lenguaje sensible al

contexto es en sí mismo sensible al contexto.

Cada gramática libre de contexto es un lenguaje

sensible al contexto. Ejemplo: La gramática G = ({a,

b}, {A, S}, S, P) donde P son las producciones

siguientes: [2]

S → aS

S → aA

A → bA

A → b

1.2.3. Gramática de tipo 2. Llamada también de

contexto libre. Sus reglas tan solo admiten tener un

símbolo no terminal en su parte izquierda, es decir son

de la forma: A → α Siendo A ϵ NT y α ϵ (NT ∪ T .

Si cada regla se representa como un par ordenado

(A, α), el conjunto P es un subconjunto del conjunto

cartesiano NT x ({T ∪ NT} . La denominación

contexto libre se debe a que se puede cambiar A por α,

independientemente del contexto que aparezca A. [5]

Las reglas son de la forma A → α con A un no

terminal y α una cadena de terminales y no terminales.

Estos lenguajes son aquellos que pueden ser

reconocidos por un autómata con pila. [1]

El término libre de contexto se refiere al hecho de

que el no terminal A puede siempre ser sustituido por α

sin tener en cuenta el contexto en el que ocurra.

Un lenguaje formal es libre de contexto si hay una

gramática libre de contexto que lo genera.

Una de las definiciones alternativas y equivalentes

de lenguaje libre de contexto emplea autómatas no

deterministas, un lenguaje puede ser también modelado

como un conjunto de todas las secuencias de

terminales aceptadas por la gramática, la unión y

concatenación de dos lenguajes libres de contexto, el

inverso de un lenguaje libre de contexto, los lenguajes

regulares, la intersección de un lenguaje libre de

contexto y un lenguaje regular es libre de contexto, la

intersección no tiene por qué serlo, para demostrar que

un lenguaje dado no es libre de contexto, se puede

emplear el Lema del bombeo para lenguajes libres de

contexto. Ejemplo: La gramática G = ({S, A, B}, {a,

b}, S, P,) cuyas producciones P serán las siguientes:[4]

S → aB A → bAA

S → bA B → b

A → a B → bS

A → aS B → aBB

1.2.4. Gramática de tipo 3. Las gramáticas de tipo 3

también denominadas regulares o gramáticas lineales.

Estas gramáticas se restringen a aquellas reglas que

tienen en la parte izquierda un no terminal, y en la

parte derecha un solo terminal, posiblemente seguido

de un no terminal. La regla S → ϵ también está

permitida si S no aparece en la parte derecha de

ninguna regla. Estos lenguajes son aquellos que pueden

ser aceptados por un autómata finito. También esta

familia de lenguajes pueden ser obtenidas por medio

de expresiones regulares, es decir de la forma:

A → aB

A → a

Donde A, B ϵ NT y α ϵ T. Satisface las siguientes

propiedades, los lenguajes más sencillos que se

considerarán son los lenguajes regulares, es decir, los

que se pueden generar a partir de los lenguajes básicos,

con la aplicación de las operaciones de unión,

concatenación y * de Kleene un número finito de

veces. [5]

Page 3: Tipos de lenguaje formal según Chomsky

Puede ser reconocido por un autómata finito

determinista, un autómata finito no determinista,

un autómata de pila, un autómata finito alterno,

una máquina de Turing de solo lectura. Es generado

por, una gramática regular, una gramática de prefijos.

Es descrito por una expresión regular. [6]

Los lenguajes regulares son cerrados con las

siguientes operaciones, de modo que si L y P son

lenguajes regulares los siguientes lenguajes también

serán regulares: El complemento “L” de L, la clausura

o estrella de Kleene L* de L, el homomorfismo φ(L)

de L, la concatenación L'P de L y P, la

unión L ∪ P de L y P, la intersección L ∩ P de L y P, y

la diferencia L \ P de L y P, el reverso LR de L.

Ejemplo: La gramática G=({a, b}, {A, S}, S, P) donde

P son las producciones que se muestran a continuación.

S → aS

S → aA

S → bA

S → b

1.2.5. Relación de inclusión. Se denomina lenguaje

tipo 0 al generado por una gramática de tipo 0. De la

misma forma, se denomina lenguajes de tipo 1, 2 y 3, a

los generados por las gramáticas de tipo 1, 2 y 3,

respectivamente. [3]

Si los lenguajes generados por los distintos tipos de

gramáticas se relacionan entre sí con respecto a la

relación de inclusión se obtiene: [1]

{L( )} ⊂ {L( )} ⊂ {L( )} ⊂ {L( )}

Figura 1. Relación de inclusión entre los distintos tipos

de gramáticas.

2. Conclusión

Los cuatro tipos de gramáticas estudiados

anteriormente (tipo 0, tipo 1, tipo 2, y tipo 3), cada una

de ellas tiene restricciones más fuertes que las

anteriores. Las gramáticas de tipo 0, contienen a todas

las demás. Las de tipo 1 contienen alas de tipo 2 y tipo

3, y por último las de tipo 2 contienen alas de tipo 3, es

decir, una gramática de tipo 3 es de tipo 2, tipo 1 y 0.

Por lo tanto se define una jerarquía de gramáticas

respecto de la relación de inclusión de ahí el nombre de

jerarquías.

Tomando como referencia un lenguaje formal, la

gramática de tipo 3 que es la que es incluida en cada

tipo es el lenguaje más simple dentro de la jerarquía,

esta se suele expresar en diferentes formas como las

expresiones regulares. Todo lenguaje formal finito

constituye a un regular, las gramáticas regulares sólo

pueden generar a los lenguajes regulares de manera

similar a los autómatas finitos y las expresiones

regulares, son las gramáticas más restrictivas el lado

derecho de una producción debe contener un símbolo

terminal y, como máximo, un símbolo no terminal

Un ejemplo de estas son todas las cadenas sobre el

alfabeto {a, b} que contienen un número par de a o el

lenguaje que consiste en varias a seguidas de varias b.

Referencias [1] Aho A.V. y Ullman J.D., 1973 The Theory of Parsing,

Translation and Com-pilin, Vol. II: Compiling, Prentice-Hall.

[2] Juan Manuel cueva Lovelle, lenguajes gramáticas y

autómatas, Universidad de Oviedo (España), 2 Edición,

Noviembre 2011.

[3] Alfonseca M., Sancho J. y Martínez Orga M., 1987,

Teoría de lenguajes gramáticas y autómatas, Ediciones

Universidad y Cultura.

[4] Chomsky N., 1962, Context-free grammars and

pushdown storage. Quarterly Prog. Rept. No. 65, pp. 187-

194, MIT REs. Lab. Elect., Cambridge, Mass.

[5] Joaquín Aranda, Natividad Duro, José Luis Fernández,

José Jiménez, Fernando Morilla, "Fundamentos de Lógica

Matemática y Computación", Sanz y Torres, 2006.

[6] Sipser, M. (1996), Introduction to the Theory of

Computation, PWS Publishing Co.