Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lenguajes Formales
Conceptos preliminares sobre lenguajes
Definimos un lenguaje como un sistema de comunicación estructurado, en el cual existe
un contexto para su uso, así como principios o reglas sobre cómo combinar los
elementos que lo componen. Algunos lenguajes admiten ambigüedades, algo que en
Ciencias de la Computación debemos evitar. Veamos el siguiente ejemplo, por más
trivial y banal que suene:
“El pavo de mi vecino me molesta”.
¿Qué se afirma en esta frase? Puede tener dos significados: que mi vecino tiene un
pavo (ave de corral) que por algún motivo me causa molestias; o bien, que considero a
mi vecino un “pavo” (por algún motivo le adjudico tal epíteto) y es esta persona quien
me molesta y es el origen de mi queja.
Lenguajes formales
Es aquel cuyos elementos (símbolos) y reglas para unirlos están formalmente
especificados.
Para adentrarnos en el estudio de los lenguajes formales, veamos algunas definiciones
sobre los componentes de los mismos.
Alfabeto
Conjunto finito y no vacío de símbolos primitivos del lenguaje.
Lo representamos con la letra griega Sigma mayúscula (Σ).
Ejemplos:
Σ={0,1}
Σ={a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}
Cadena o Palabra
Secuencia finita de símbolos de un determinado alfabeto.
Ejemplos:
“110011” es una cadena del alfabeto Σ={0,1}
“hola” es una cadena del alfabeto Σ={a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}
Palabra vacía
Denotamos como ε (épsilon minúscula) a la cadena o palabra que tiene cero símbolos.
Longitud de la cadena
Número de símbolos que contiene la misma.
|ε| = 0
|11011011| = 8
|hola| = 4
Potencia
La potencia k de un alfabeto es el conjunto de cadenas con longitud k.
Por ejemplo, si Σ={0,1}, entonces Σ1 ={0,1}, y Σ2 ={00,01,11,10}
Denotamos como Σ* al conjunto de todas las cadenas sobre un alfabeto Σ.
Concatenación
Denotamos ab la concatenación de las cadenas a y b.
Por ejemplo si a = “ho” y b = “la”, entonces ab = “hola”.
Lenguaje
Conjunto de cadenas escogidas de Σ*, incluyendo la cadena vacía ε.
Ejemplos:
Las cadenas que tienen el doble de símbolos ‘0’ que ‘1’, llamado D
D = {ε, 001, 100, 010, 000011, 110000, …}
D = {w | w consiste del doble de ‘0’ que ‘1’}
Gramática formal
Consiste de: un alfabeto Σ, un conjunto de símbolos terminales T tal que T ⊆ Σ, un
conjunto de reglas de producción, un símbolo inicial.
El lenguaje generado por una gramática G y que denotamos L(G) es el conjunto de
cadenas sobre Σ que pueden producirse aplicando las reglas de producción, empezado
con el símbolo inicial.
Nota: Al conjunto Σ − T se le llama (conjunto de) símbolos no terminales,
Axiomas y teoremas
En los lenguajes y sistemas formales existen axiomas y reglas de inferencia a partir de
los cuales se deducen teoremas (los lenguajes formales son casos particulares de
sistemas formales).
En el ejemplo anterior, 1. es un axioma; mientras que 2., 3., 4., 5. son reglas de
inferencia, pues nos indican cómo construir palabras a partir de otras construidas
previamente.
Estas palabras que construimos son los teoremas que se corresponden con las
palabras que pertenecen al lenguaje. Mientras que los pasos que seguimos para
construir los teoremas se llama derivación.
Definiciones Inductivas
Para definir un conjunto inductivamente se tienen que dar las reglas que indican como
construir los elementos del conjunto, estas reglas también se llaman cláusulas y son de
tres tipos.
1) Las cláusulas bases estas afirman que ciertos elementos pertenecen al conjunto.
2) Las cláusulas inductivas: estas son las que establecen reglas para construir un
elemento del conjunto a partir de otro que pertenece al conjunto que se está definiendo.
3) La cláusula de clausura: ella establece que ningún elemento pertenece al
conjunto a no ser que se pueda construir mediante la aplicación de las cláusulas bases
e inductiva dadas un número finito de veces.
Algunas observaciones
• Esta definición está compuesta por una única cláusula base y una única cláusula
inductiva, esto no siempre tiene por qué ser así. Puede haber más de una cláusula
base y/o más de una inductiva.
• La cláusula de clausura se verá muy similar en todas las definiciones inductivas, por
lo tanto, muchas veces la podemos omitir o simplemente escribir Cláusula de Clausura
(CC).