Вы находитесь на странице: 1из 23

TIPOS DE GRAMATICAS

JERARQUIAS DE CHOMSKY
Para el estudio de este tema es necesario analizar dos tipos de gramticas de la
clasificacin de Chomsky, las regulares y las independientes de contexto, las
reglas permitidas y no permitidas. Tener un conocimiento amplio de las
gramticas y el lenguaje que se emplea en cada una de ellas, es una
herramienta mas para la realizacin de los analizadores.

En 1959 Noam Chomsky clasifico las gramticas en cuatro familias. Las gramticas
no restringidas, sensibles al contexto, independientes del contexto y las
gramticas regulares que se conocen como gramticas de tipo cero, uno, dos y
tres respectivamente. Los lenguajes que resultan de dichas gramticas tambin
se identifican con lenguajes de tipo cero, uno, dos y tres. A esta jerarqua de
lenguaje se le conoce como la jerarqua de chomsky.
GRAMTICAS Y TIPO DE
LENGUAJES

GRAMATICA TIPO LENGUAJE QUE GENERA


Regular 3 Lenguaje tipo 3 o lenguaje regular
Independiente del Lenguaje de tipo 2 o lenguaje independiente al
2
contexto contexto
Sensible al contexto 1 Lenguaje tipo 1 lenguaje sensible al contexto.
Tipo no restringido 0 Tipo cero lenguaje no restringido.
GRAMTICAS INDEPENDIENTES
DEL CONTEXTO.
A diferencia de las gramticas regulares, estas gramticas no tienen
restricciones con respecto a la forma del lado derecho de sus reglas de
reescritura aunque aun se requiere que el lado izquierdo de cada regla sea un no
terminal. La siguiente es una gramtica independiente del contexto, pero no es
regular.
S -> zMNz
M -> aMa
M -> z
N -> bNb
N -> z

El termino independiente del contexto refleja que, como el lado izquierdo de


cada regla de reescritura nicamente puede contener un solo no terminal la regla
puede aplicarse sin importar el contexto donde se encuentre dicho no terminal.
Gramtica Regular
Gramtica Regular: Es aquella gramtica cuyas reglas de reescritura tienen las
siguientes restricciones:

El lado izquierdo de cualquier regla de reescritura debe consistir en un solo no


terminal, el lado derecho debe ser un terminal seguido por un no terminal, o un
solo terminal o la cadena vaca

LA IMPORTANCIA DE LAS GRAMTICAS REGULARES


RESIDE EN QUE LOS LENGUAJES GENERADOS POR
ELLAS SON EXACTAMENTE AQUELLOS QUE RECONOCEN
LOS AUTMATAS FINITOS.
AUTOMATAS
AUTMATAS
La palabra autmata, pretende imitar las funciones de los seres
vivos, especialmente relacionadas con el movimiento, por ejes el
tpico robot antropomorfo.
En el campo de los traductores, Procesadores, Compiladores e
interpretes, lo fundamental no es la simulacin del movimiento, sino
la simulacin de procesos para tratar informacin.
La informacin se codifica en cadena de smbolos que se le
presentan a su entrada, produciendo otras tiras o cadenas de
smbolos a su salida.
Los smbolos de entradas son secuenciales y la salida no solo
depende de la entrada, sino de toda la secuencia recibida
anteriormente.
ESTADO DE UN AUTMATA: Es toda la informacin necesaria en un
momento dado, para poder deducir, dado un smbolo de entrada en
ese momento, cul ser el smbolo de salida.
Arquitectura de un autmata Finito
(AF)

Un autmata finito es una estructura matemtica que representa un sistema o


mquina abstracta cuya arquitectura puede verse en la figura
La cinta de entrada (que se extiende infinitamente hacia la derecha) est dividida en
celdas, cada una de las cuales es capaz de almacenar un slo smbolo de un
cierto alfabeto. La mquina es capaz de leer los smbolos de esta cinta de
izquierda a derecha por medio de un cabezal de lectura.
Cada vez que se lee un smbolo, el cabezal de lectura se mueve a la siguiente celda a
la derecha y la mquina efecta un cambio de estado o transicin. Esta
transicin est determinada por el mecanismo de control (que contiene un
nmero finito de estados), programado para conocer cual debe ser el nuevo
estado, que depender de la combinacin del estado actual y el smbolo de
entrada ledo.
Los autmatas finitos pueden considerarse como mecanismos aceptadores o
reconocedores de palabras. De manera informal decimos que un autmata finito
aceptar una palabra de entrada si, comenzando por un estado especial llamado
estado inicial y estando la cabeza de lectura apuntando al primer smbolo de la
cadena, la mquina alcanza un estado final o de aceptacin despus de leer el
ltimo smbolo de la cadena.
Autmatas Finitos deterministas
Un autmata finito determinista (AFD) se define como una quintuplaM = (Q; V; ; q0;
F),
donde:

El nombre determinista" viene de la forma en que est definida la funcin de


transicin: si en un instante t la mquina est en el estado q y lee el smbolo a
entonces, en el instante siguiente t + 1 la mquina cambia de estado y sabemos
con seguridad cual es el estado al que cambia,
que es precisamente (q; a).
Autmatas Finitos deterministas
La funcin de transicin de un AFD se puede representar de dos formas: mediante
una tabla de transicin o mediante un diagrama de transicin.
Ejemplo: Supongamos que tenemos el autmata finito determinista dado por
M = ({q0, q1, q2}, {0, 1}, , q0, {q1})
donde la funcin : {q0, q1, q2} x {0, 1} -> {q0; q1; q2} viene dada por

(q0, 0) = q0 (q0, 1) = q1
(q1, 0) = q0 (q1, 1) = q2
(q2, 0) = q2 (q2, 1) = q1

La tabla de transicin correspondiente sera:

y el diagrama de transicin
Autmatas finitos no deterministas
Un autmata finito no determinista (AFND) es una quntupla M = (Q; V;; q0; F)
donde todos los componentes son como en los AFDs, excepto la funcin de transicin
que se define ahora como:

donde P(Q) denota el conjunto de las partes de Q (o conjunto potencia 2Q).


El hecho de que el condominio de la funcin de transicin sea P(Q) es lo que
aade esta caracterstica de no determinismo": a partir del estado actual y
del smbolo actual de entrada no se puede determinar de forma exacta cul
sera el estado siguiente. Por ejemplo, podemos tener (q; a) = {q1, q2,..qm}
y esto indica que dado el estado actual q y el smbolo de entrada a, el
estado siguiente puede ser cualquier estado entre q1 y qm: Tambin puede
darse el caso de que (q; a) = , lo que indica que el estado siguiente no
est definido.
Autmatas finitos no deterministas
Mquina de Moore
Se define como la 6-tupla {Q,,S,, ,q0} donde:
Q: Es el conjunto finito de estados.
: Es el alfabeto de entrada.
S: Es el alfabeto de salida.
: Funcin de transicin Q Q.
: Funcin de Q a S, dado q nos arroja una s donde s S y q Q.
q0: Estado inicial.
Nuestra mquina comienza en su estado inicial q0, la funcin de salida nos entrega un
smbolo s cada vez que llegamos a un estado, la funcin de transicin lee un
elemento de la cadena de entrada e indica el nuevo estado que adoptaremos,
puede ser el mismo, depende del smbolo ledo y del estado actual.
Mquina de Moore
Un ejemplo es:

Si introducimos la cadena 11001 la mquina arroja la secuencia de datos


baabba. El primer smbolo siempre ser el mismo ya que siempre que
comenzamos a analizar una cadena partimos del estado inicial.
Mquina de Mealy
Mquina de Mealy Tambin se define como una 6-tupla {Q, , S, , , q0}
donde:
Q: Es el conjunto finito de estados.
: Es el alfabeto de entrada.
S: Es el alfabeto de salida.
: Funcin de transicin Q Q.
: Funcin de salida Q S, (qi, a) s donde s S, q Q y a .
q0: Estado inicial.
Mquina de Mealy
Un ejemplo de una Mquina de Mealy es:

A diferencia de la Mquina de Moore se excluye el primer elemento en todas


las cadenas de salida, es decir, si introducimos la misma cadena que en el
ejemplo anterior 11001 obtenemos como resultado aabba y podemos
observar la equivalencia de ambas mquinas.
Mquina de Turing
La idea de una Mquina que pudiera seguir un conjunto de pasos que describen
cualquier sentencia matemtica, es decir que puede ser descrita por un algoritmo fue
introducida por primera vez por Alan Turing en 1936
Una Mquina de Turing es solamente un concepto abstracto y no realmente
una mquina como posiblemente la imaginemos
Imaginemos que nuestra mquina tiene un conjunto finito de estados (Q),
tiene uno y solo un estado inicial (q0) el cual siempre es el primero cuando la
mquina comienza a trabajar, puede tener uno o ms estados finales (F) que le
indican a la mquina cuando parar . Cambia de un estado a otro y regresa a
ellos cuantas veces es necesario hasta llegar a uno de los estados finales y haber
recorrido todos los elementos de una cadena de entrada (E). Tambin tiene un
cabezal de lectura y escritura con el cual puede obtener datos y escribirlos en
una cinta que idealmente es infinitamente larga, la cual est dividida en casillas
o celdas donde solo puede contener uno y slo uno de los smbolos de entrada.
Mquina de Turing
Su forma de trabajo es la siguiente:
Segn el estado de la mquina y el valor ledo de la cadena de entrada escrita
en la cinta (un smbolo por celda), escribe un nuevo smbolo en esa casilla,
mueve la cinta a la derecha o a la izquierda (una celda a la vez) y cambia de
estado.
Nuevamente lee el smbolo de la celda actual y segn su nuevo estado repetira
el mismo proceso hasta recorrer todos los smbolos de entrada o situarse en un
estado terminal.
Existe una funcin de transicin () o tabla de transicin que nos indica, segn
el estado de la mquina y el valor ledo, el smbolo a ser escrito y el nuevo estado
que se debe adoptar as como el movimiento de la cinta (derecha o izquierda)
que se va a realizar.
Mquina de Turing
Ahora podemos definir formalmente una Mquina de Turing (MT) como una
7-tupla de la forma: MT = {Q, , , , q0, B, F}
Q: Es el conjunto finito de estados, son todos y cada uno de los posibles
estados en que puede estar nuestra mquina.
: Es un conjunto finito de smbolos de entrada. Son todos aquellos elementos
que va a recibir nuestra mquina para su lectura.
: Es el conjunto finito de smbolos que puede reconocer nuestra mquina,
es decir, el alfabeto, donde .
: Es la funcin de transicin (qi,) (qk,,R|L), tambin puede ser
representada por una tabla llamada Tabla de transicin. Y nos indica la funcin
de nuestra mquina:
Mquina de Turing
La funcin recibe como parmetros el estado qi(qi Q) en el que se
encuentra actualmente la maquina y un smbolo ( ) ledo de la cadena de
entrada.
Tal combinacin de parmetros nos va a dar un nuevo estado (qk) y escribir un
smbolo ( ) en la celda donde recin acaba de leer el smbolo.
Por ultimo se mover la izquierda (R) o a la derecha (R) una sola celda a
la vez y se repetir el mismo proceso ahora con los nuevos valores.

B: Es el smbolo en blanco, indica que la celda est vaca.


F: Es el conjunto de estados finales.
Mquina de Turing
A simple vista parece un modelo sencillo, pero su poder es tal que cualquier
modelo computacional o algoritmo existente puede ser modelado por una
Mquina de Turing.

Podemos decir que cualquier solucin a un problema que pueda ser representada
por una Mquina de Turing est haciendo una computacin.

Si una mquina imprime dos tipos de smbolos, donde el primer tipo (llamadas
figuras) consiste ntegramente en 1 y 0 y el segundo tipo sern llamados smbolos
de la segunda especie entonces podemos llamar a esa maquina computadora