1.3. Lenguajes, tipos y herramientas

Lenguajes, tipos y herramientas

Lenguaje: Subconjunto del universo del discurso. Conjunto de palabras de un determinado alfabeto. "El alfabeto Σ es también un lenguaje sobre Σ."

Lenguaje vació: Es aquel que no contiene la cadena vacía ni ninguna otra cadena.

    Cardinal ( { Ø } ) = 0

    Cardinal ( { λ } ) = 1

Clausula (cierre) positiva de un lenguaje: El lenguaje obtenido uniendo el lenguaje L con todas sus potencias posibles, excepto L0. Obviamente, ninguna clausura positiva contiene la palabra vacía, a menos que dicha palabra esté en L. Puesto que el alfabeto Σ es también un lenguaje sobre Σ, puede aplicársele esta operación. Se verá entonces que:

L+ = L1 U L2 U L3....

W(∑) = Lenguaje universal de ∑.

∑+ = W(∑) - { λ }

Estrella de kleene: Es la unión de todas las potencias de un lenguaje incluso L0. Obviamente, todas las clausuras contienen la palabra vacía. Son evidentes las siguientes identidades:

L0 = λ

L* = L+ U { λ }

L* =L0 U L1 U L2 U L3.....

Puesto que el alfabeto Σ es también un lenguaje sobre Σ, puede aplicársele esta operación. Se verá entonces que

∑* = W(∑)

A partir de este momento, representaremos al lenguaje universal sobre el alfabeto Σ con el símbolo Σ*.

 

Tipos de lenguajes:

Natural: Los que hablamos los seres humanos.

Artificial: Los lenguajes de programación de computadoras.

Primera generación: Lenguaje máquina. Los programas se escriben en código binario

Segunda generación: Lenguajes simbólicos. Cada instrucción de la maquina se representan mediante símbolos

Tercera generación: Lenguajes de alto nivel. Una sola instrucción de este tipo representa usualmente varias instrucciones de la máquina.

 

Clasificación de los lenguajes

Chomsky definió cuatro tipos distintos de gramáticas en función de la forma de las reglas de derivación. La clasificación comienza con un tipo de gramáticas que pretende ser universal, aplicando restricciones a sus reglas de derivación se van obteniendo los otros tres tipos de gramáticas. Esta clasificación es jerárquica, es decir cada tipo de gramáticas engloba a todos los tipos siguientes.

 

Gramáticas de tipo 0

También llamadas gramáticas no restringidas o gramáticas con estructura de frase. Las reglas de derivación son de la forma:

→ β

Siendo ε (VN U VT)+ y β ε (VN U VT)*, es decir la única restricción es que no puede haber reglas de la forma λ → β donde λ es la cadena vacía.

 

Gramáticas de tipo 1

También llamadas gramáticas sensibles al contexto (en ingles context sensitive). En ellas las reglas de producción son de la forma:

A β → ɤ β

Siendo A ϵ VN; , β ϵ (VN U VT)* y ɤ ϵ (VN U VT)+

Estas gramáticas se llaman sensibles al contexto, pues se puede reemplazar A por ɤ siempre que estén en el contexto ... β.

La gramática G = ({S, A, B}, {a,b), S, P) cuyas producciones P se muestran a continuación es de tipo 1.

S → aB

S → bA

A → a

A → aS

A → bAA

B → b

B → bS

B → aBB

 

Gramática de tipo 2

Las gramáticas de tipo 2 también se denominan gramáticas de contexto libre o libres de contexto (en inglés context free). Sus reglas de producción tan solo admiten tener un símbolo no terminal en su parte izquierda, es decir son de la forma:

A →

Siendo A ϵ VN y ϵ (VN U VT)+.

Si cada regla se presenta como un par ordenado (A, ), el conjunto P es un subconjunto del conjunto producto cartesiano VN x ({ VN U VT })+, es decir:

P { N x ( { VN } U { VT } ) + }

La denominación contexto libre se debe a que se puede cambiar A por , independientemente del contexto en que aparezca A.

 

Gramáticas de tipo 3

Las gramáticas de tipo 3 también denominadas regulares o gramáticas lineales a la derecha comienzan sus reglas de producción por un símbolo terminal, que puede ser seguido o no por un símbolo no terminal, es decir son de la forma:

A → aB

A → a

Donde A, B ϵ VN y ϵ VT.

 

Gramática

Es un ente formal para especificar de una manera finita al conjunto de cadenas que constituye un lenguaje. "Una gramática es una cuádrupla." (Cueva Lovelle, 2001).

    G = ( VT, VN, S, P )

 

Donde

    VT = { conjunto finito de símbolos terminales }

    VN = { conjunto finito de símbolos no terminales }

    S es el simbolo inicial y pertenece a VN

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

 

Vocabulario terminal: Se define por enumeración de los símbolos terminales. Todas las cadenas del lenguaje definidos por la gramática están formados con símbolos del vocabulario VT. (Cueva Lovelle, 2001, 7).

Vocabulario no terminal: "VN es el conjunto de símbolos introducidos como elementos auxiliares para la definición de la gramática, y que no figuran en las sentencias del lenguaje. El vocabulario no terminal se define por enumeración de los símbolos no terminales." (Cueva Lovelle, 2001, 7).

La intersección entre el vocabulario terminal y no terminal es el conjunto vacío:

{ VN } ∩ { VT } = { Ø }

La unión entre el vocabulario terminal y no terminal es el vocabulario:

{ VN } { VT } = { V }

En ocaciones es importante distinguir si un determinado vocabulario incluye o no la cadena vacía, indicándose respectivamente con superíndice + o superíndice *, tal como se muestra a continuación:

    V+ = V - { λ }

    V* = V + { λ }

El símbolo inicial S: "Es un símbolo no terminal a partir del cual se aplican las reglas de la gramática para obtener distintas cadenas del lenguaje." (Cueva Lovelle, 2001, 7).

Las producciones P: "Son las reglas que se aplican desde el símbolo inicial para obtener las cadenas del lenguaje. El conjunto de producciones P se define por medio de la enumeracion de las distintas producciones, en forma de reglas o por medio de un metalenguaje por ejemplo BNF (Backus Naur Form) o EBNF (Extended Backus Naur Fourm)."

 

Cadena válida: Es aquella cadena que cumple con la gramática establecida.

 

Derivación: "La  derivación  consiste  en  tratar  a  cada  producción  como  una  regla  de  sustitución,  donde  el  símbolo  no  terminal  de  la  cabecera  de  una  regla  se  sustituye  por  la  cadena  formada  por  el  cuerpo de la producción. El árbol sintáctico se construye a partir de las derivaciones."



Comentarios

Entradas populares de este blog

3.1 conceptos: definición y clasificación de autómata finito (AF)