UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO CENTRO UNIVERSITARIO
UAEM ATLACOMULCO
TEMAS A TRATAR:
o GRAMÁTICA GENERATIVA
o FORMA NORMAL
o AUTÓMATAS CON TRANSICIONES DE CERRADURA
o AUTOMATA DE PILA
ALUMNA:
ALETVIA JACQUELINE LEÓN VENEGAS
PROFESOR:
ING. HÉCTOR CABALLERO HERNÁNDEZ.
MATERIA:
AUTÓMATAS Y LENGUAJES FORMALES
23 DE MARZO DE 2015
1
INTRODUCCIÓN
En el presente trabajo se recopilan algunos temas relacionados con la teoría de Noam Chomsky en los
cuales tratamos de resumir gran parte de la información existente.
Noam Chomsky fue una de las personas que trato la mayor parte de los componentes de un autómata,
creó la gramática generativa, la forma normal, los autómatas con transición de cerradura, los
autómatas de pila, entre otros.
Aquí plasmamos la información más sobresaliente acerca de estos temas, esperando que sea de gran
apoyo para la comprensión de estos ya que son la base de próximos temas relacionados como lo es la
máquina de Turing.
Estos temas tienen un alto grado de dificultad, sin embargo, estudiándolos más a fondo podemos
llegarlos a comprender en su mayoría y quizá hasta llevarlos a la práctica.
Sin embargo, para poder llegar a la práctica debemos mantener una constancia y realizar diversos
ejercicios para poner a prueba todos los conocimientos que vamos adquiriendo a lo largo de nuestras
investigaciones. Podríamos llegar tal vez a crear o descubrir algún otro componente o perfeccionar la
información que actualmente se conoce.
En la materia de autómatas y lenguajes formales esperamos llegar a comprender gran parte de la
información ya existente y quizá llevarla a algo físico en menor escala, y es por esta razón que
realizamos estas investigaciones para tener un poco de conocimiento previo sobre el tema y se facilite
comprenderlo, y podamos plantear nuestras dudas y sea un poco más fácil y rápido adquirir los
conocimientos de estos temas.
2
ÍNDICE
Introducción…………………………………………………………………………… 1
Gramática generativa………………………………………………………….. 3
Forma normal……………………………………………………….…………. 7
Autómatas con transiciones de cerradura……………………………………. 10
Autómata de pila……………………………………………………………… 14
Bibliografía…………………………………………………………………… 19
3
GRAMÁTICA GENERATIVA
Gramática: Permite definir un lenguaje mediante reglas que nos permiten generar o producir cadenas
de un lenguaje. Estas gramáticas son similares a las gramáticas de los lenguajes naturales, pero mucho
más restrictivas y sencillas.
Definición Formal de Gramática
Las reglas de reescritura son un par ordenado de cadenas, α, β ∈ (VN ∪VT)*, representado de la
forma:
α →β
Esto significa que si α es una subcadena de una cadena p, entonces se puede sustituir α por β en p.
En general, las reglas son de la forma: α →β, con
α ∈ (VN ∪VT)+
β ∈ (VN ∪VT)*
La Gramática.Generativa, en cuanto teoría lingüística, supone, según Chomsky, un corte radical con
las teorías del lenguaje anteriores a él. Todo ese conglomerado prechomskiano queda dividido en dos
partes:
La GRAMÁTICA TRADICIONAL: Entra todo aquello que tenga algo que ver con el lenguaje
hasta Saussure, la filosofía del lenguaje, las diversas teorías gramaticales de los antiguos
(Platón, Aristóteles, Sofistas, Estoicos), las teorías gramaticales de la Edad Media y
principalmente la teoría de. Los gramáticos de Port-Royal, que siguen preferentemente la
teoría aristotélica y a los que Chomsky hace seguidores de Descartes, Leibniz, etc., como
referencia homogénea para sus citas de «gramática tradicional».
La TEORÍA LINGÜISTICA MODERNA. En este entran tanto Saussure como Harris,
Hjelmslev, Pike, etc. Esta es la Lingüística «taxonómica» y «meramente descriptiva», que sólo
proporciona métodos de descubrimiento, pero no teorías auténticas; se reduce a la pura
taxonomía y a la descripción de los datos de un corpus.
La Gramática Generativa se opone asimismo a la llamada Lingüística «moderna» o «estructural». La
oposición a esta teoría moderna no se debe ahora a cuestiones técnicas, sino que es, antes bien, una
cuestión de principio.
La gramática generativa es el conjunto de reglas que permiten generar todas y cada una de las
manifestaciones lingüísticas de una lengua. Pero para elaborar esa teoría lingüística se podría:
o Descubrir la gramática de una lengua sobre la base de un corpus representativo y garante.
Chomsky piensa que esto es imposible.
o Decidir si una gramática ya existente es adecuada o no lo es. Sin premisas de criterio, sería un
apriorismo inadmisible.
4
o Valorar unas cuantas gramáticas e intentar aproximarse a la descripción más perfecta. Para
Chomsky es lo único asequible.
Chomsky lleva razón al decir que una teoría debe ser independiente del material concreto que se va a
describir con ella. Pero una teoría exige un número de premisas implícitas que se reducen al mínimo, y
las definiciones sucesivas deben ir siempre apoyadas en lo ya expuesto. En la práctica equivale esto a
la necesidad de introducir las definiciones previas antes de las que las presuponen; es decir, partir de lo
más sencillo para llegar a lo más complejo como lo exigen la segunda y tercera reglas cartesianas.
La adecuación: gramaticalidad y aceptabilidad
La gramática generativa deberá cumplir, primeramente, el requisito de la gramaticalidad, que es la
adecuación de la gramática a la competencia. Pero no es suficiente que las frases sean gramaticales. La
gramática generará, además, frases con aceptabilidad, que es la adecuación de la gramática a la
actuación. Estos dos conceptos de gramaticalidad y aceptabilidad, serán los criterios que valorarán una
gramática, el primero a nivel de competencia y el segundo a nivel de actuación.
Los componentes gramaticales
El dominio genuinamente lingüístico es el gramatical. Si admitimos y parece indiscutible que en la
lengua hay un nivel fonológico, un nivel sintáctico y un nivel semántico, la gramática constará de los
siguientes componentes:
Componente sintáctico: primordial y generador de estructuras.
Componente semántico: asigna significado a esas estructuras.
Componente fonológico: permite que esas estructuras se hagan perceptibles.
La disposición jerárquica de esos tres tipos de componentes gramaticales puede expresarse como una
jerarquía de dependencias:
Además, un sistema es un lenguaje enormemente complicado. Pero la descripción conjunta de esos
niveles, aunque diferenciados, serán mucho más sencilla que la descripción independiente de las
diversas estructuras de cada uno de ellos. De todas maneras el componente con capacidad generativa
es el sintáctico por: los otros dos son componentes interpretativos.
El componente sintáctico aparece construido por:
Base: conjunto de reglas que generan las estructuras profundas. Está compuesta por:
5
o Un componente categorial o conjunto de reglas reescriturales que definen las
relaciones gramaticales de los elementos de una cadena discursiva.
o Y por un lexicón, especie de diccionario en el que los términos se definen por un
conjunto acabados de rasgos selectivos que aportan una información semántica y
gramatical. Estos rasgos entran en el proceso generativo después de haber
desarrollado las reglas del componente categorial, al cual se le otorga una
interpretación semántica.
las transformaciones: reglas que van a convertir las estructuras profundas en estructuras
superficiales. Decimos estructura y no cadena discursiva, pues esta aparecerá sólo y cuando
haya actuado el otro componente interpretativo, el componente fonológico.
La gramática de una lengua, entonces, es un sistema de reglas que especifica el conjunto de oraciones
de esa lengua y asigna a cada oración una descripción estructural, la cual muestra qué clase de
elementos tiene esa oración, cómo están organizados y las condiciones para un uso apropiado. Por
tanto, la estructura de una lengua será el conjunto de descripciones estructurales de las oraciones de
esa lengua.
Chomsky hace una referencia importante acerca de Humboldt y de Saussure, a propósito de la
gramática generativa: La forma del lenguaje de Humboldt es, en esencia, el sistema generativo de
reglas, o sea, la gramática generativa, en su sentido más amplio.
En conclusión: interesa descubrir aquellas semejanzas entre varias lenguas que puedan ser atribuidas a
la forma del lenguaje como tal, es decir, ciertos rasgos pueden ser propiedades universales. Según
Chomsky, investigar esto vendría a enriquecer la teoría de la forma lingüística precisando así la noción
de gramática generativa.
Noam Chomsky clasifica las gramáticas en cuatro tipos:
Gramáticas sin restricciones o gramáticas de estructura de frases (Tipo 0).
Gramáticas sensibles al contexto (Tipo 1).
Gramáticas independientes de contexto (Tipo 2).
Gramáticas regulares (Tipo 3).
Conforme a la clasificación de N. Chomsky, los lenguajes se clasifican en cuatro tipos:
Lenguajes sin restricciones (Tipo 0).
Lenguajes sensibles (o dependientes) al contexto (Tipo 1).
Lenguajes independientes de contexto (Tipo 2).
Lenguajes regulares (Tipo 3).
6
Teoría de autómatas – lenguajes formales
(Máquinas abstractas - Gramáticas Formales)
Gramáticas Lenguajes Máquina
Sin restricciones o de Tipo 0 Sin restricciones o de Tipo 0 Máquina de Turing
Sensible al contexto o de Tipo 1 Sensible al contexto o de Tipo 1 Autómata linealmente acotado
Libre de contexto o de Tipo 2 Libre de contexto o de Tipo 2 Autómata de pila
Regular o de Tipo 3 Regular o de Tipo 3 Autómata finito
Gramática Máquina
Lenguajes
equivale
reconoce
genera
describe
genera
7
FORMA NORMAL
Teorema de la forma normal de Chomsky
Toda gramática libre de contexto sin la cadena vacía tiene una gramática equivalente cuyas
producciones están en la Forma Normal de Chomsky.
Forma Normal de Chomsky (FNC)
Una gramática se dice que está en la Forma Normal de Chomsky si sus reglas son de una de estas
formas:
A →BC
A →a
Siendo A, B, Cno terminales y a un terminal.
El algoritmo a seguir es:
1. Pi¡P / Pi: A →1...n, donde ¡(NT), n≥2
a. j, si jT (es terminal) entonces hacer:
b. N=N{Cj}
c. P= P {Cj→j}
d. Modificar Pi, donde antes ponía j ahora poner Cj.
2. PkP / Pk: A →B1...Bm, donde BN, m≥3
a. N=N{Dj} j=1..m-2.
b. Reemplazar Pk por las producciones:
A →B1D1, D1→B2D2,..., Dm-2→Bm-1Bm
Cualquier Lenguaje Libre de Contexto sin λ es generado por una gramática en la que todas las
producciones son de la forma A→ a o
A → BC donde A, B, C ∈ VN y a ∈ VT.
Una gramática que tiene todas las producciones en la forma indicada anteriormente se dice que están
en Forma Normal de Chomsky (FNC).
Definición (Forma Normal de Chomsky)
Una gramática libre de contexto G := (V;;Q0;P) se dice que está en forma normal de Chomsky si es
- libre y las únicas producciones (exceptuando, eventualmente, la única - producción Q0 ↔), son
exclusivamente de uno de los dos
tipos siguientes.
A↔ a, con A V y a ,
A ↔ CD, con A;C;D V.
8
Toda gramática libre de contexto es equivalente a una gramática libre de contexto en Forma Normal
de Chomsky.
Además, esta equivalencia es algorítmicamente computable.
Supongamos que tenemos una gramática G = (V;;Q0;P)
propia. Procederemos del modo siguiente:
Definamos un par de clases ¯V y ¯P de símbolos no terminales y producciones.
Inicializar con ¯V := V, ¯P = 0 y añadimos estas producciones por defecto:
Si Q0 ↔ está en P, añadir Q0 ↔ a ¯P sin modificar ¯V.
Si en P hay una producción del tipo A 7! a 2 _ entonces, añadir A 7! a a _P sin modificar _V.
Si en P hay una producción del tipo A ↔ CD, con C, D V, entonces, añadir A ↔ CD a ¯P
sin 7!modificar ¯V.
Simplemente, añadimos las producciones que cumplan la definición.
Finalmente, para cada producción en P del tipo
A ↔ X1…Xk ;
con Xi V que no sea de ninguno de los tres tipos anteriores realizar las tareas siguientes:
Para cada i tal que Xi V, no modificar ¯V
Para cada i tal que Xi , añadir a ¯V una nueva variable ¯Xi , distinta a todas las que ya
estuvieran en ¯V. Añadir a ¯P la producción ¯Xi ↔ Xi en este caso.
Añadir a ¯P la producción A ↔ X01… X0k , donde X0i viene dada por:
Si k = 2, no modificar.
Si k > 2, reemplazar en ¯P, la producción A ↔ X01… X0k por una cadena de producciones:
A ↔ X01 Y2,Y2 ↔ X02 Y3;…;Yk-1 ↔ X0k-1X0k ;
añadiendo a ¯V las variables Y2;… ;Yk-1. Esto termina con el algoritmo.
TEOREMA
Sea G = (V, T,P,S) una CFG tal que L(G) 6= ∅. Sea G1 = (V1, T1,P1,S) la gramática obtenida:1
Eliminando todos los símbolos no-generadores y las producciones en las que ocurren. Sea la
nueva gramática G2 = (V2, T2,P2,S).
Eliminando de G2 todos los símbolos no-alcanzables y las producciones en que ocurren.
G1 no tiene símbolos inútiles, y L(G1) = L(G).
Una propiedad:
Si no hay producciones - ni producciones unitarias, en toda derivación a ⇒ b el valor de l + t se
incrementa reescribiendo una variable por una producción de forma:
A → γ donde γ (V )*
9
En particular, l + t se incrementa en uno si las producciones tienen la siguiente forma:
A → BC (i.e. l se incrementa en uno)
A → a (i.e. t se incrementa en uno)
Por lo tanto, una derivación S ⇒ * x donde x * & |x| = k (de l + t = 1 a l + t = 2k) tiene cuando más
2k – 1 producciones!
10
AUTÓMATAS CON TRANSICIONES DE CERRADURA
Un autómata finito no determinista (NFA) puede elegir uno de varios estados posibles cuando
lee un carácter.
Además, tiene un conjunto de estados iniciales S.
La función de transición de un NFA es : Q x → P(Q).
La función anterior se extiende a una función
* : P(Q) x * → P(Q) de esta forma:
*(A, ) = A
*(A, a) =U (q,a)
q*(A,)
El lenguaje aceptado es | *(S, ) F = 0
Transiciones _ Un autómata finito no determinista con transiciones -es una quinteta N = (Q,,, S, F),
igual a un NFA salvo que
: Q x ( ) → P(Q).
Ahora es posible transitar de un estado a otro sin consumir símbolos. * se define así
Los conjuntos regulares son cerrados bajo las operaciones de: Unión Intersección Complemento Concatenación Estrella de Kleene
Nota: en las demostraciones siguientes se supondrá que los autómatas son completos, i.e.,
que la función no es parcial. Podemos construir un diagrama que nos ayude a determinar los distintos miembros del lenguaje. Tal
diagrama tiene la forma de un grafo dirigido son información adicional añadida, y se llama diagrama
de transición. Los vértices del grafo se llaman estados y se usan para señalar, en ese momento, hasta
que lugar se ha realizado la cadena. Las aristas del grafo se etiquetan con caracteres del alfabeto y se
llaman transiciones. Si el siguiente carácter a reconocer concuerda con la etiqueta de alguna transición
que parte del estado actual, nos desplazamos al estado al que nos lleve la arista correspondiente. Se
comienza en un estado inicial, y cuando se hayan tratado todos los caracteres de la palabra (cadena)
correspondiente, necesitamos saber si la cadena es "legal". Para ello se marcan ciertos estados
Matemáticas Discreta Prof. José Luis Chacón Pensar y actuar como estados de aceptación o estados
finales (doble círculo). Toda cadena que surja de una transición desde el estado inicial a un estado
11
final de aceptación es "legal". Marcamos el estado inicial con una flecha (→) y alrededor de los
estados de aceptación trazamos un círculo.
Por ejemplo el diagrama de la Figura 1 acepta todas las cadenas que están formadas por 0 o más a s
seguidas por una única b. Obsérvese que para toda cadena de la forma akb, para k ≥ 0, el recorrido del
diagrama termina en un estado de aceptación. El recorrido del mismo con cualquier otra cadena de a s
y b s (incluida la cadena vacía) termina en cualquier otro estado, pero este no es de aceptación.
Considérese el lenguaje A = {(ab)i | i ≥ 1}, el cual está representado por la expresión regular (ab)+. La
palabra más corta de este lenguaje es ab. El estado inicial no es un estado de aceptación, porque
entonces aceptaría la palabra vacía. Hay dos transiciones una para a y una para b; ninguna de ellas
puede llevar a un estado de aceptación. Esto se debe a que ni a ni b son palabras del lenguaje A. Las
cadenas legales se obtienen al llegar a un estado de aceptación y se debe hacer esto después de un
número finito de pares de transiciones ab. Un diagrama de transición para A es el que muestra la
Figura 2. Este diagrama tiene un único estado de aceptación. Si el análisis termina en cualquier otro
estado, la cadena no está correctamente construida. Asimismo se puede ver que una vez que se
identifica un prefijo incorrecto, se realiza un desplazamiento a un estado que no es de aceptación y se
permanece en el mismo.
12
Consideremos el lenguaje (ab)*. En este caso se acepta la cadena vacía. Por lo tanto, el estado inicial
es también de aceptación. El diagrama de transición se muestra en la Figura 3
Podemos representar el diagrama por medio de una tabla que indica el siguiente estado al cual
desplazarse, dado un estado y un símbolo de entrada (Figura 4). Obsérvese que la tabla para nuestro
diagrama de transición tiene, para cada par estado-entrada, un único estado siguiente. De este modo
para cada estado y símbolo de entrada, se puede determinar el siguiente estado. Se puede pensar que
sean acciones de una máquina. dicha máquina se denomina autómata finito, una computadora ideal. El
autómata finito se define en términos de sus estados, la entrada que acepta y su reacción ante la
misma. Hay autómatas de dos tipos, deterministas y no deterministas. El autómata que corresponde a
la figura 4 es determinista.
Formalmente, un autómata finito determinista M es una colección de cinco elementos.
Un alfabeto de entrada .
Una colección finita de estados Q.
Un estado inicial S.
Una colección de estados finales o de aceptación.
Una función : Q × → Q que determina el único estado siguiente para el par (qi, )
correspondiente al estado actual y la entrada.
Autómata Finito No Determinista
Si se permite que desde un estado se realicen cero, una o más transiciones mediante el mismo símbolo
de entrada, se dice que el autómata finito es no determinista. A veces es más conveniente diseñar
autómatas finitos no determinista (AFN) en lugar de deterministas.
13
Un autómata finito no determinista es una colección de cinco objetos (Q,, S, F, ), donde
Una colección finita de estados Q.
Un alfabeto de entrada .
Un estado inicial S.
Una colección de estados finales o de aceptación F.
Una función : Q× → P(Q) que determina un subconjunto de Q para el par (qi, )
correspondiente al estado actual y la entrada. P(Q) son los subconjuntos de Q.
Equivalencia entre AFN y AFD
Decimos que dos autómatas M y M′son equivalentes si L(M) = L(M′).
Teorema 2 Para todo autómata finito no determinista M existe un autómata finito determinista M1 tal
que M y M1 son equivalentes.
-Transiciones
Estas son las transiciones de un estado en otro que no dependen de ninguna entrada. Para todo estado
q ∈ Q, definimos la -cerradura de q como
− c(q) = {p | p es accesible desde q sin consumir ninguna entrada}
Para q ∈ Q y ∈ se define
d(q, ) = {p | hay una transición de q a p etiquetada con }
Esta definición se amplía a conjuntos como sigue
Eliminación de las Transiciones-
Las transiciones- son una conveniencia, pero no incrementan la potencia de los FA’s. Para eliminar
las transiciones-:
Calcular la cerradura transitiva s´olo para los arcos .
Ejemplo: q → {q}; r → {r , s}; s → {r , s}.
Si un estado p puede alcanzar al estado q por medio de arcos , y existe una transición de q a
r en la entrada a (no ), entonces añádase una transición de p a r con la entrada a.
Convertir el estado p en un estado de aceptación siempre y cuando p pueda alcanzar algún
estado de aceptación q por medio de arcos .
Eliminar todas las transiciones-.
14
AUTÓMATA DE PILA
Una pila es un dispositivo de almacenamiento que sigue el principio ``primero-en-entrar-último-en
salir''. Lo podemos pensar como un arreglo lineal indicado con los números naturales:
AUTÓMATAS DE PILA O PUSH -DOWN (PDA).
Un autómata de pila o Push-Down es un autómata que cuenta con un mecanismo que permita
almacenamiento ilimitado y opera como una pila.
El autómata de pila (se abrevia PDA de sus siglas en inglés Push-Down Autómata) tiene una cinta de
entrada, un control finito y una pila. La pila es una cadena de símbolos de algún alfabeto.
Un autómata a pila es una séptupla:
AP= (Σ, Γ, Q, A0, q0, f, F)
donde :
Σ es el alfabeto de entrada
Γ es el alfabeto de la pila
Q es un conjunto finito de estados
A0 ∈ Γ es el símbolo inicial de la pila
q0 ∈ Q el estado inicial del autómata
F ⊆ Q es el subconjunto de estados finales
f es una aplicación denominada función de transición de ternas (estado, símbolo de entrada o
λ, símbolo de pila) en el conjunto de las partes Q×Γ*
f : Q×{Σ∪{λ}}× Γ → 2Q×Γ* (subconjunto finito)
Un AP comienza su funcionamiento en la configuración inicial:
En el estado inicial (q0)
Con sólo un símbolo en la pila (A0)
Con la cabeza lectora en el primer símbolo de la entrada
A partir de esta configuración realiza transiciones según la definición de la función f.
Interpretación de la función de transición
Representaremos con:
(a, b,...) los elementos de Σ
(A, B, C..) los de Γ
(x, y, z,...) los de Σ*
(X, Y, Z,...) los de Γ*
La interpretación de f es:
15
f(q, a, A) = {(q1, Z1), (q2, Z2),... (qn, Zn)}
cuando el autómata se encuentra en el estado q, lee el símbolo de entrada a y tiene el símbolo A en la
cima de la pila; el autómata pasará a algún estado qi (recordar que es no determinista), eliminará el
símbolo A de la pila e introducirá en ella la palabra Zi , quedando la cabeza de Zi en la cima de la pila.
f(q, λ, A) = {(q1, Z1), (q2, Z2),... (qn, Zn)}
cuando el autómata se encuentra en el estado q, y tiene el símbolo A en la cima de la pila; el autómata
pasará a algún estado qi (recordar que es no determinista), eliminará el símbolo A de la pila e
introducirá en ella la palabra Zi , quedando la cabeza de Zi en la cima de la pila.
Representación gráfica
AP=({a,b,c},{S,A,B,b},{p,q,r},S,p,f,{r})
f (p,a,S)={(p,SAB), (q,b)}
f (p,λ,S)={(p,SAB)}
f (q,b,b)={(q,λ)}
f (q,b,B)={(q,λ)}
f (q,c,A)={(q,A),(q,λ)}
f (q,λ,B)={(r,λ)}
Cada estado corresponde a un nodo en el grafo y está etiquetado con el nombre del estado (si
es un estado final se marca además con *)
Cada transición (q, Z)∈f(p, a, A) corresponde a un arco del nodo p al nodo q y tiene la etiqueta
(a,A,Z).
Las etiquetas de los arcos pueden tener la forma:
(a,A,λ), (a,A,B), (a,A,BC...), (λ,A,λ), (λ,A,B), (λ,A,BC...) siendo (a∈Σ, A,B,C∈Γ).
No hay transiciones de forma:
(..., λ, ...), (ab..., ..., ...) o (..., AB..., ...)
Lenguaje aceptado por un autómata a pila
Se describe el proceso de aceptación o rechazo de una palabra de Σ* mediante una sucesión de
movimientos.
16
Un AP= (Σ, Γ, Q, A0, q0, f, F) puede reconocer palabras del alfabeto de entrada de dos formas
distintas:
por estado final:
LF(AP) = {x | (q0, x, A0) ├* (p, λ, X), con p∈F, X∈Γ*}
por vaciado de pila :
LV(AP) = { x | (q0, x, A0) ├* (p, λ, λ) con p∈Q}
LF(AP) y LV(AP) representan a los lenguajes reconocidos por el autómata AP por estado final y por
vaciado de pila respectivamente. Cuando la aceptación se realiza por vaciado de pila, el conjunto de
estados finales F es irrelevante.
Equivalencia de autómatas de pila
Dos autómatas de pila M1 y M2 diremos que son equivalentes si L(M1)=L(M2).
Autómatas a pila deterministas
Decimos que un autómata a pila es determinista si se verifica lo siguiente:
∀ q∈Q, ∀ A∈Γ:
f(q, λ, A) ≠ ∅ ⇒ ∀ a∈Σ: f(q, a, A) = ∅
∀q∈Q, ∀A∈Γ, ∀a∈ Σ∪{λ}:
f(q, a, A) contiene como máximo un elemento. .
A diferencia de los autómatas finitos, se entiende que un AP es no determinista, a menos que se diga
lo contrario.
Gramáticas independientes del contexto.
Recordemos que las gramáticas independientes del contexto se caracterizan porque la parte izquierda
de todas sus reglas es un solo no teminal (A:= w, donde w es cualquier palabra escrita con terminales y
no terminales) y no hay reglas compresoras salvo tal vez S:= λ, siendo S el axioma.
Símbolos inaccesibles
Un símbolo no terminal decimos que es inaccesible si desde el axioma no se puede derivar ninguna
palabra que lo contenga. Si un símbolo es inaccesible y lo eliminamos junto con todas sus
producciones y todas las producciones en las que aparezca, la gramática obtenida es equivalente a la
dada.
Símbolos superfluos
Hay dos tipos de posibles símbolos superfluos de una gramática
No terminales: un símbolo no terminal es superfluo si a partir de él no se puede obtener
ninguna derivación escrita sólo con símbolos terminales. Si eliminamos un símbolo no
terminal superfluo, sus producciones y las producciones en que aparece, la gramática obtenida
es equivalente a la dada.
17
Terminales: un símbolo terminal decimos que es superfluo si no aparece en ninguna
derivación desde el axioma. Si eliminamos del alfabeto de terminales los terminales
superfluos la gramática obtenida es equivalente a la dada.
Gramática limpia
Una gramática que no tiene símbolos inaccesibles ni superfluos se dice que es una gramática limpia.
Proceso de Análisis Sintáctico
Ejemplo:G = ({a}, {S}, S, {S ::= aS | a}) cadena de entrada= aa
Análisis de la cadena de entrada
Comenzara siempre introduciendo en la pila del autómata la marca inicial, a la que se suele
llamar 0.a partir de este momento, cada vez que se introduce un símbolo en la pila, se mete a
continuación un símbolo de estado o marca. Por lo tanto, en cualquier instante, la pila
contendrá alternativamente símbolos de la gramática y marcas.
18
Determina la fila m a estudiar, que vendrá siempre dado por la marca que aparezca en la cima
de la pila y la columna c dada por el símbolo en curso de la entrada.
APLICACIONES.
Existe un gran número de problemas de diseño de software que se simplifican mediante la conversión
automática de las expresiones regulares a una instrumentación eficiente de computadora del autómata
finito correspondiente.
Los autómatas finitos se usan frecuentemente en los problemas que implican el análisis de cadenas de
caracteres. Tales problemas incluyen problemas de búsqueda e identificación, tales como la búsqueda
de la existencia de una cadena en un archivo o el reconocimiento de cadenas de entrada que satisfagan
ciertos criterios. Un autómata finito es, él mismo, un modelo de un procedimiento para reconocimiento
de cadenas por medio de la expresión regular asociada. Por tanto, en la búsqueda de una cadena en un
archivo, podemos aplicar el autómata finito de forma sistemática a las cadenas del archivo hasta que se
acepta la cadena o se termina el archivo.
19
BIBLIOGRAFÍA
J. E. Hopcroft, R. Motwani, J. D. Ullman. Introducción a la Teoría de Autómatas, Lenguajes y
Computación Addison Wesley Longman, Pearson Education Company, Segunda Edición
2001.
Dean Kelly.Teoría de Autómatas y Lenguajes Formales Prentice- Hall, 1998.
Pedro García, Tomás Perez, etc.Teoría de Autómatas y Lenguajes Formales. Alfaomega
Grupo Editor. 2001.
Chomsky, N. (1974). Observaciones sobre la nominalización. En Sánchez de Zavala, V.
(Comp.), Semántica y sintaxis en lingüística transformatoria I (pp. 133-187). Madrid:
Alianza.