MAYO 1 PROYECTO día de la madre el amor más grande
GRAMATICA GENERATIVA Y AUTOMATA DE PILA
1. CENTRO UNIVERSITARIO UAEM
ATLACOMULCO
INGENIERIA EN COMPUTACION
AUTOMATAS Y LENGUAJES FORMALES
ALUMNA: ALICIA SANDOVAL CAMACHO
PROFESOR: HECTOR CABALLERO HERNANDEZ
2° SEMESTRE TURNO MATUTINO
FECHA DE ENTREGA: 24-03-2015
2. INDICE
Introducción…………………………………………………………..............I
La gramática generativa segúnNoam Chomsky………………………II-III
- Competencia lingüística
- Gramática transformacional
- Estructura profunda y estructura superficial
- Estructura sintáctica
Forma normal de Chomsky…………………………………………..IV-VI
- Definición de la Forma Normal de Chomsky
- Ejemplo
Autómatas con transición vacía (AFND-ε)…………………………VII-VIII
-Definición
- Definición de una transición ε
-Consecuencias
- Transformación de AFND-V a AFND
Autómatas con pila……………………………………………………IX-XI
- Definición formal
- Representación
- Lenguaje aceptado por un autómata a pila
-Ejemplo
Referencias y bibliografía……………………………………………….XII
3. I
INTRODUCCION
Este trabajo forma parte de la materia “Autómatas y lenguajes formales”, abarca la gramática
generativa de Chomsky en la que nos dice que él fue el fundador de la gramática generativa que
expuso por primera vez en su libro Estructuras sintácticas, en el que explicaba un sistema de
análisis del lenguaje. Estableció una diferencia entre el conocimiento innato y con frecuencia
inconsciente que los individuos tienen de la estructura de su lengua y el modo en que utilizan ésta
diariamente.
También el tema sobre la forma normal de Chomsky en la que nos describe las reglas que debe
cumplir un lenguaje para estar e esta forma. Otro tema visto es el autómata con transición vacía
en el que nos dice su definición, las consecuencias y problemas que conlleva tener un autómata
con esta característica y la solución que seda al convertirlo en un autómata finito no determinista.
El último tema abarcado es el autómata de pila, en este vemos su definición, el lenguaje que es
aceptado para poder llevar a cabo las transiciones, su representación y un pequeño ejemplo.
4. II
LA GRAMATICA GENERATIVA SEGÚN NOAM CHOMSKY
Uno de los lingüistas más famosos, renovadores e influyentes del siglo XX es, indudablemente, Noam
Chomsky (n. en 1928) y es el fundador de la gramática generativa que expuso por primera vez en su libro
Estructuras sintácticas, un sistema de análisis del lenguaje que ha revolucionado la lingüística moderna.
Estableció una diferencia entre el conocimiento innato y con frecuencia inconsciente que los individuos
tienen de la estructura de su lengua y el modo en que utilizan ésta diariamente.
El primero, al que llamó “competencia”, permite al hablante distinguir las oraciones gramaticales de las
que no lo son, así como generar y comprender un número ilimitado de oraciones nuevas. El segundo, que
llamó “actuación”, es la manifestación de la competencia, las oraciones realmente emitidas por el hablante
en los actos de habla concretos. Para Chomsky, la lingüística también debe ocuparse de las estructuras
profundas, del proceso mental que subyace bajo el uso del lenguaje. Chomsky situó la lingüística en el
centro de los estudios sobre la mente. Según él, la teoría lingüística debe dar cuenta de la gramática
universal, del conocimiento innato común a todos los miembros de la especie humana; debe igualmente
explicar el hecho de que los niños aprenden a hablar con fluidez a una temprana edad, a pesar de los
escasos datos y la poca experiencia con los que cuentan.
De estas exigencias deriva su contribución a las ciencias cognitivas, que pretenden comprender el modo
en que piensa, aprende y percibe el ser humano.
Competencia lingüística
Para Chomsky, cualquier individuo dotado de la facultad de hablar es capaz de expresarse en su propia
lengua con corrección e interpretar y entender lo que otro individuo de su comunidad lingüística le pueda
comunicar. Es decir, como el ser humano posee la facultad de hablar y conocerla lengua, entendiendo por
conocer la lengua, no los conocimientos científicos sobre la misma, sino los mecanismos necesarios para
expresarse en su lengua. Es a lo que llama Chomsky la “competencia lingüística”.
Esta competencia está interiorizada, pero se exterioriza en cada acto lingüístico, y es a lo que llama
Chomsky “actuación lingüística” o manifestación de la competencia. Esta dicotomía es para Chomsky el
primer requisito de la gramática generativa, relacionada con la distinción lengua/habla de Saussure. Pero
no identificada, porque la “lengua” Saussureana es una visión estática de la lengua, mientras que la de
Chomsky es una visión dinámica.
Gramática transformacional
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: Descubrir la
gramática de una lengua sobre la base de un corpus representativo y garante. Chomsky piensa que esto es
imposible. Decidir si una gramática ya existente es adecuada o no lo es. Sin Premisas de criterio, sería un
apriorismo inadmisible. Valorar unas cuantas gramáticas e intentar aproximarse a la descripción más
5. III
perfecta. Para Chomsky es lo único asequible. Hay que anotar que la solución última implica a la segunda,
por lo que se viene a caer en el condenado apriorismo.
En esta primera selección, Chomsky está muy lejos de Hjelmslev y de la escuela europea en cuanto a
premisas lógicas. 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.
Estructura profunda y estructura superficial.
La estructura profunda es una abstracción formal de la frase, relacionada con su sentido, y que subyace a
la estructura superficial que es la frase proferida. Existen reglas que transforman una estructura profunda
en la superficial. "Una gramática es un sistema de reglas finito que genera una pluralidad de estructuras
profundas y superficiales relacionadas entre sí".
La estructura superficial corresponde varias estructuras profundas, a saber:
a) “Yo hago (o construyo) el cuarto (objeto)”.
b) “Yo construyo o limpio la habitación”.
c) “Yo estoy en cuarto lugar”.
En términos chomskianos diríamos, entonces, que esta oración es ambigua. La estructura profunda soporta
o contienen el significado de la oración. La estructura superficial es la forma según la cual se presenta la
oración, al ser dicha o escrita. Visto desde otro punto de vista, podemos decir que la estructura profunda es
abstracta, mientras que la estructura superficial es una realidad física.
La estructura profunda genera la estructura superficial o de superficie. Entre la estructura profunda y la
estructura superficial aparecen los procesos de transformación. De ahí la gramática transformacional.
Estructura sintáctica
Son símbolos que forman parte de un “alfabeto” finito. Cada una de tales cadenas es una oración de L. El
alfabeto de símbolos primitivos es determinado por la teoría lingüística general, en particular por la
fonética universal, la cual especifica los elementos mínimos disponibles para una lengua humana
cualquiera y proporciona algunas condiciones sobre su elección y combinación. Una gramática L es un
sistema que especifica el conjunto de oraciones L y asigna a cada oración una descripción estructural.
6. IV
FORMA NOMAL DE CHOMSKY
Una gramática formal está en Forma normal de Chomsky si todas sus reglas de producción son de
alguna de las siguientes formas:
o
α o
donde , y son símbolos no terminales (o variables) y α es un símbolo terminal.
Todo lenguaje independiente del contexto que no posee a la cadena vacía, es expresable por medio de una
gramática en forma normal de Chomsky (GFNCH) y recíprocamente. Además, dada una gramática
independiente del contexto, es posible algorítmicamente producir una GFNCH equivalente, es decir, que
genera el mismo lenguaje.
Una gramática libre de contexto se dice que está en Forma Normal de Chomsky (FNC) si todas sus
producciones son de la forma:
Excepcionalmente se permite la producción
La idea de la transformación de una gramática limpia a FNC se ejecuta en dos pasos:
·
Hacer que en la parte derecha de las producciones de longitud mayor o igual que dos sólo haya
terminales.
Trocear estas producciones para que tengan longitud dos.
Algoritmo FNC:
1. Para cada producción de la forma
(a) Para cada αi, si αi es terminal:
- Se añade la producción Ca → a
- Se cambia αi por Ca en A → α1..αn
2. Para cada producción de la forma A → B1...Bm, m ≥ 3
(a) Se añaden (m-2) no terminales D1, D2, ..., Dm-2 (distintos para cada producción)
(b) La producción A → B1...Bm se reemplaza por A → B1D1, D1 → B2D2, ... Dm-2 → Bm-1Bm
Definición de la Forma Normal de Chomsky
Diremos que una gramática incontextual G=(N, T, P, S) que no genera la cadena vacía, está en FNC
cuando todas sus reglas son de la forma: {A → BC con A, B, C ∈ N {A → a, con A, B ∈ N y a ∈T
Teorema. Todo lenguaje incontextual L que no incluye la cadena vacía, es generado por una gramática en
FNC.
7. V
Ejemplo
Sea la gramática incontextual G definida por las siguientes reglas:
S → bA | aB
A → bAA | aS | a
B → aBB | bS | b
Se obtiene la gramática en FNC intermedia G':
S → CbA | Ca B
A → CbAA | Ca S | a
B → Ca BB | CbS | b
Ca → a
Cb → b
A partir de G', se obtiene la gramática en FNC G'':
S → CbA | Ca B
A → CbD1 | Ca S | a
8. VI
D1 → AA
B → Ca D2 | CbS | b
D2 → BB
Ca → a
Cb → b
9. VII
AUTOMATAS CON TRANSICIÓN VACIA (AFND-ε)
Definición
Es el autómata finito que tiene al menos una transición vacía.
Los AFND-TV son definiciones de AFND dentro de los lenguajes regulares que dificultan su
implementación mecánica e informática; pero es común obtenerlos a partir de transformaciones a lo
interno de los LR (expresiones regulares a AF, gramáticas regulares a AF). Entonces son vitales para el
análisis lexicográfico durante el diseño de los lenguajes de programación.
Definición de una transición ε
Una transición ε es una transición que puede ocurrir sin consultar la cadena de entrada (y sin consumir
ningún carácter). Se puede ver como una “igualación” de la cadena vacía.
Las transiciones ε son contra intuitivas, porque pueden ocurrir “espontáneamente”, sin búsqueda hacia
adelante y sin modificación de la cadena de entrada.
Consecuencias
La definición formal de AFND-V se basa en la consideración de que a menudo según los algoritmos
de transformación de expresiones y gramáticas regulares a AF terminan obteniéndose autómatas con
transiciones múltiples para un mismo símbolo o transiciones vacías.
Independientemente que sean indeseables, sobre todo para la implementación material, fundamentalmente
mecánica, de los autómatas finitos; son imprescindibles durante la modelación de analizadores
lexicográficos de los elementos gramaticales de los lenguajes de programación, llamados tókenes, como
literales numéricos, identificadores, cadenas de texto, operadores, etc.
Reconocedor de lenguajes regulares que no usa
memoria para almacenar los estados de ejecución ni
los símbolos del lenguaje, con al menos una
transiciones vacía.
10. VIII
Transformación de AFND-V a AFND
Los AFND-V se pueden transformar a autómatas finitos no deterministas mediante una serie de
transformaciones que se basan en la reducción a solo los estados con transiciones significativas
determinados por la clausura , siguiendo los pasos:
1. Se calcula A=clausura-v(q0), que corresponderá al estado inicial del nuevo autómata.
2. Para cada símbolo del alfabeto T, se verifican los estados alcanzables a partir de algún estado
contenido en A, y se calcula la clausura-v de dichos estados alcanzables. Si dichas clausuras-v
producen nuevos conjuntos distintos de A, es decir conjuntos Ai, estos serán nuevos estados a los
que se accederá a partir de A y del símbolo correspondiente.
3. Se repite lo anterior para cada nuevo conjunto Ai obtenido en (2), hasta que no existan
transiciones posibles para ningún símbolo del alfabeto.
11. IX
AUTOMATAS CON PILA
Un autómata con pila, autómata a pila o autómata de pila es un modelo matemático de un sistema que
recibe una cadena constituida por símbolos de un alfabeto y determina si esa cadena pertenece
al lenguaje que el autómata reconoce. El lenguaje que reconoce un autómata con pila pertenece al grupo
de los lenguajes libres de contexto en la clasificación de la Jerarquía de Chomsky.
Los autómatas de pila, en forma similar a como se usan los autómatas finitos, también se pueden utilizar
para aceptar cadenas de un lenguaje definido sobre un alfabeto A. Los autómatas de pila pueden aceptar
lenguajes que no pueden aceptar los autómatas finitos.
Un autómata de pila cuenta con una cinta de entrada y un mecanismo de control que puede encontrarse en
uno de entre un número finito de estados. Uno de estos estados se designa como estado inicial, y además
algunos estados se llaman de aceptación o finales.
Definición formal:
Formalmente, un autómata con pila puede ser descrito como una
séptupla donde:
es un conjunto finito de estados;
y son alfabetos (símbolos de entrada y de la pila respectivamente);
es el estado inicial;
es el símbolo inicial de la pila;
es un conjunto de estados de aceptación o finales;
La interpretación de , con
, y es la siguiente:
Cuando el estado del autómata es , el símbolo que la cabeza lectora está inspeccionando en ese momento
es , y en la cima de la pila nos encontramos el símbolo , se realizan las siguientes acciones:
Si , es decir no es la cadena vacía, la cabeza lectora avanza una posición para inspeccionar el
siguiente símbolo.
Se elimina el símbolo de la pila del autómata.
Se selecciona un par de entre los existentes en la definición de , la función de
transición del autómata.
Se apila la cadena , con en la pila del autómata, quedando el
símbolo en la cima de la pila.
12. X
Se cambia el control del autómata al estado .
Representación
Una máquina de este tipo se representa de la siguiente forma
Al igual que un autómata finito un autómata de pila cuenta con un flujo de entrada y un flujo de control
que puede encontrarse en uno de entre un número finito de estados. Uno de estos estados se designa como
el inicial y por lo menos un estado es de aceptación
.
La principal diferencia es que los autómatas de pila cuentan con una pila en donde pueden almacenar
información para recuperarla más tarde.
Los símbolos que pueden almacenarse en esta pila se conocen como símbolos de pila de la máquina,
constituyen un conjunto finito que puede incluir algunos símbolos definiendo el alfabeto de la máquina y
quizá algunos símbolos adicionales que se utilizan como marcas internas. Si una máquina inserta un
símbolo especial en la pila antes de efectuar algún otro cálculo, entonces ese símbolo en la cima de la pila
puede usarse como indicador de pila vacía para cálculos posteriores, dicho símbolo es #.
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. Un AP= (Σ, Γ, Q, A0, q0, f, F) puede reconocer palabras del alfabeto de entrada de dos
13. XI
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.
Ejemplo
Sea el siguiente LLC ; formado por las
cadenas
Dicho lenguaje puede ser reconocido por el siguiente autómata con pila:
donde las transiciones son:
para cualquier
El significado de las transiciones puede ser explicado analizando la primera transición:
donde es el estado actual, es el símbolo en la entrada y se extrae de la cima de la pila. Entonces,
el estado del autómata cambia a y el símbolo se coloca en la cima de la pila.
14. XII
Referencia y bibliografía
http://vallejos-hayden.blogdiario.com/1165440000/
(pg.41).http://lengua.laguia2000.com/gramatica/estructura-profunda-y-estructura-
superficialhttp://www.csub.edu/~tfernandez_ulloa/spanishlinguistics/chomsky%20y%20la%20gra
matica%20generativa.pdf (REVISTA DIGITAL “ONVESTIGACIÓN Y EDUCACIÓN”
CHOMSKY LA GRAMÁTICAGENERATIVA,PAG
http://books.google.com.co/books?id=6tUv4IzUWtwC&pg=PA3&hl=es&source=gbs_toc_r&cad
=4#v=onepage&q&f=false (Noam Chomsky Estructuras Sintácticas PAG4
http://es.wikipedia.org/wiki/Forma_normal_de_Chomsky
http://users.dsic.upv.es/asignaturas/facultad/tal/practica6.pdf
http://teodelacomp.blogspot.mx/2011/03/forma-normal-de-chomsky.html
http://ingenieria.uatx.mx/labastida/files/2013/06/Aut%C3%B3matas-Finitos1.pdf
Acevedo Martínez, Liesner; Osorio Ramírez, Karel. Manual de apoyo a la docencia. Técnicasde
Compilación: Manual Práctico para estudiantesde Informática.Libro electrónico
en PDF. UCI. La Habana,2011.
http://www.ecured.cu/index.php/Aut%C3%B3mata_finito_no_determinista_con_transici%C3%B
3n_vac%C3%ADa
http://es.wikipedia.org/wiki/Aut%C3%B3mata_con_pila
http://www.ia.urjc.es/grupo/docencia/automatas_itis/apuntes/capitulo11.pdf