Está en la página 1de 4

Toda comunicación involucra la utilización de un lenguaje.

Así por ej, las personas se


comunican con otras en los diferentes idiomas (Lenguajes Naturales) o con las maquinas
(Lenguajes Formales) a través de un conjunto de símbolos. De manera general se define
lenguaje como un conjunto de palabras, también llamadas hileras, que están formadas por
símbolos de un alfabeto (o vocabulario). Existen dos tipos:

Los lenguajes Naturales (utilizados por el hombre) existen por sí mismos y las reglas
gramaticales que rigen su estructura han sido desarrollados con posterioridad. Se puede decir
que evolucionan con el paso del tiempo.

Los lenguajes Formales (como pueden ser los lenguajes de programación) obedecen reglas
preestablecidas y por tanto, se ajustan a ellas, no evolucionan y han sido creados para un fin
específico.

Una gramática da cuenta de la estructura de un lenguaje, es decir, de las sentencias que lo


forman, proporcionando las formas validas en que se pueden combinar los símbolos del
alfabeto.

Una maquina abstracta o autómata es un dispositivo teórico capaz de recibir y transmitir


información. A pesar de la conexión que existe entre estos conceptos, los trabajos iniciales
sobre gramáticas y maquinas abstractas tienen orígenes distintos.

El concepto de gramática procede de los estudios de Chomsky en su búsqueda de una


descripción formalizada de las oraciones de un lenguaje natural. Chomsky clasifico las
gramáticas en cuatro grandes grupos (G0, G1, G2, G3) cada uno de los cuales incluye a los
siguientes (G3 ⊆ G2 ⊆ G1 ⊆ G0). Las gramáticas Tipo 0 se denominan gramáticas sin
restricciones; las gramáticas Tipo 1 se denominan sensibles al contexto; las gramáticas Tipo 2
se conocen como independientes del contexto y las de Tipo 3 se denominan gramáticas
regulares. Cada tipo añade restricciones al tipo inmediatamente superior y la jerarquía va
desde la más general a la más restrictiva. Cada una de estas gramáticas es capaz de generar un
tipo de lenguaje. Un lenguaje L se llama del tipo i (i = 0, 1, 2, 3) si existe una gramática G del
tipo i capaz de generar o describir ese lenguaje.

La teoría de los autómatas proviene del campo de la ingeniería eléctrica. Shannon publico
varios trabajos donde demostraba la aplicación de la lógica matemática a los circuitos
combinacionales y secuenciales. Posteriormente, sus ideas se desarrollaron para dar lugar a la
Teoría de Autómatas. Moore público el primer estudio riguroso sobre autómatas y a finales
de los años 50 se comenzó a ver la utilidad de los autómatas en relación con los lenguajes.
La teoría de lenguajes y gramáticas formales tiene una relación directa con la teoría de las
maquinas abstractas, siendo posible establecer entre ambas un isomorfismo. Dado que las
gramáticas proporcionan las reglas utilizadas en la generación de las cadenas de un lenguaje,
se puede establecer una conexión entre la clase de lenguajes generados por ciertos tipos de
gramáticas y la clase de lenguajes reconocibles por ciertas maquinas. Así, se pueden
identificar los lenguajes tipo 0 con la clase de lenguajes reconocidos por una Maquina de
Turing; los lenguajes del tipo 1 con los Autómatas Linealmente Acotados; los lenguajes tipo
2 con los autómatas de pila y los de tipo 3 con los autómatas finitos.

****Definiciones y Conceptos Básicos (Cuaderno)****

Gramáticas Generativas o de Estructura de Frase

Si un lenguaje de interés contiene un número finito de hileras, puede ser definido por
extensión o por comprensión. Por extensión, se refiere con hacer el listado de todas las hileras
que el lenguaje tiene. Cuando se presenta una hilera particular esta se compara con el listado
y si está incluida se acepta como válida, caso contrario se la rechaza.

La inmensa mayoría de los lenguajes que tienen interés son infinitos, lo que nos impide
caracterizarlos por extensión. Entonces lo que se hace es definir el lenguaje por comprensión.
Para ello se utilizan las Gramáticas de Estructura de Frase (GEF): Las cuales son
descripciones estructurales de las sentencias de los lenguajes.

Lo que se hace es generar hileras con la GEF y de acuerdo a estas se establece el lenguaje.
Después, ante una sentencia particular se analiza si este puede ser generado o no por esa
gramática. En caso afirmativo se la acepta como válida, caso contrario se la rechaza.

Definición formal, G: Se define como una cuádrupla: G = (VN, VT, P, S) donde:

(VN) Vocabulario No Terminal: Símbolos que se introducen como elementos auxiliares para
definir la gramática, no figuran en las palabras, se definen generalmente con letras
mayúsculas y nos dicen la continuación de la derivación.

VT Vocabulario Terminal: Símbolos que forman las palabras del lenguaje, se usan letras
minúsculas y se cumple que ambos vocabularios son finitos. Denotamos con V la unión:

V = VT U VN ^ VT ∩ VN = Ø VT = {a,b,c,....,z,1,2,3}

Además, el VN no tiene elemento en común con el VT, ósea que su intersección es vacía.
(Conjuntos Disjuntos)

(P) Producciones o Reglas de escritura: Es un conjunto finito de V+ x V*. Que se escribe


generalmente como α➡ β, significa que la hilera α se reescribe como β. Da el cuerpo de la
gramática, hace referencia a la sintaxis.

α ϵ V*. VN . V* (Significa que debe venir al menos un no terminal).

β ϵ V* (significa que puede venir cualquier cosa).


(S) Símbolo Inicial: Pertenece al vocabulario No Terminal. Se lo usa para comenzar las
derivaciones de las hileras del lenguaje.

La derivación

Proceso de aplicar las reglas de producción partiendo de S y a través de ellas llegar a cadenas
formadas exclusivamente por elementos terminales.

Ejemplo: dada la gramática G = ({S, A, B},{a, b}, S, P )

P: S-> aA

A-> aA / bB Entonces: S -> aA -> aaA -> aabB -> aabb

B-> bB / b S -> aA -> abB -> abb

Con la gramática tengo que poder generar todas las cadenas del lenguaje, de otro modo está
mal definida. Cómo saber si una cadena es o no del lenguaje, lo que se hace es tratar de
producirla: Dada x = abb

S -> aA -> abB -> abb Se obtiene x, entonces x es una cadena del lenguaje

Como consecuencia, la gramática dada reconoce cualquiera de las cadenas del siguiente
lenguaje: L(G) = {ai bj / i ≥ 1, j ≥ 2}

Lenguaje generado por una gramática de estructura de frase

Definición: L(G) = {x /x ϵ VT * / S ➡ x}

Es el conjunto de todas las cadenas generadas por G, se lo indica L(G). Donde L(G) =
lenguaje generador de una gramática de estructura de frase.

Se dice que dos gramáticas G1 y G2 son equivalentes, si generan igual lenguaje, de modo que
L(G1) = L(G2) .

Lenguaje Vacío: Lenguaje que no contiene ninguna hilera. Se genera mediante cualquier
gramática que no genere ninguna hilera. Ej: Dada

G = ({ S }, { a } , P, S)

S -> aS

Esta gramática genera un lenguaje vacío, ya que no genera ninguna hilera.

Jerarquía de los lenguajes y gramáticas de estructura de frase

Chomsky definió 4 tipos de gramáticas formales, esta clasificación se realizó basándose en


ciertas restricciones que deben cumplir las reglas de producción.
Gramática No Restringida o General (Tipo 0)

Corresponde a la definición general de gramática. La menos restrictiva de todas. En este tipo


de gramática tiene que haber al menos un símbolo no terminal en la parte izquierda. Respecto
a la parte derecha de sus producciones no existe ningún tipo de restricción.

Las producciones son de la forma α ➡ β. Donde

α ϵ V*.VN .V* Significa, al lado derecho ∃ al menos un no terminal

β ϵ V* Significa que puede venir cualquier cosa

Gramáticas Sensibles de Contexto (Tipo 1)

En este tipo de gramática se tiene en cuenta lo que viene antes y después del símbolo que se
sustituye y además nunca genera la hilera nula, la producción de esta gramática es de la
forma:

Restricciones

 Estos tipos de lenguajes no pueden generar la hilera nula.


 La longitud de α es menor o igual a la longitud de β : | α | ≤ | β |
 S puede derivar en λ si y sólo si, S no pertenece a ninguna producción, es decir S no
debe estar en el lado derecho de alguna producción.

Gramáticas Libres de Contexto (Tipo 2)

Generan lenguajes libres de contexto, estas gramáticas están atadas a la restricción que en la
parte izquierda de sus producciones sólo puede haber un solo símbolo No Terminal, la
producción de esta gramática es de la forma: A➡α. Donde

A ϵ VN Del lado izquierdo debe haber un solo no terminal.

α ϵ V*

Gramáticas Regulares (Tipo 3)

Llamamos gramáticas regulares a cualquier gramática que sea lineal por la izquierda o por la
derecha. Las producciones de esta gramática tienen la forma:

A ➡ Ba Dónde: A, B ϵ VN a ϵ VT+ no puede ser λ A ➡ aB

A➡b b ϵ VT* puede ser λ A➡b

Lineal Izquierda Lineal Derecha

También podría gustarte