Está en la página 1de 5

CeRP del Suroeste

Lenguajes Formales Lógica

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.

Si las computadoras admitieran lenguajes naturales, podríamos caer en este tipo de


situaciones, causando errores. Por tal motivo, es necesaria la utilización de lenguajes
que no admitan la menor duda en la interpretación de una afirmación.

Por lo tanto, tenemos la necesidad de describir procedimientos exactos y precisos; esto


es, ser formales: todos los pasos y reglas que vamos a emplear en los diferentes
procedimientos deben ser explícitos y tienen que estar completamente especificados.
Esto nos garantiza control y verificación sobre la corrección de ese procedimiento.

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}

Profesor Domingo Pérez -1-


CeRP del Suroeste
Lenguajes Formales Lógica

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”.

Ahora estamos en condiciones de definir formalmente qué es un lenguaje.

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’}

Profesor Domingo Pérez -2-


CeRP del Suroeste
Lenguajes Formales Lógica

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,

Es bueno aclarar que consideramos estos lenguajes como artificiales; es decir,


diferentes a aquellos que utilizamos cotidianamente para comunicarnos “entre
humanos”.

Profesor Domingo Pérez -3-


CeRP del Suroeste
Lenguajes Formales Lógica

Ejemplo de un lenguaje formal


Consideremos un lenguaje formado por cadenas tomadas del alfabeto Σ = {M, I, U}, que
se construyen aplicando estas reglas:
1. MI es una cadena del lenguaje.
1. Si una cadena termina en I, se puede agregar una U al final y así construir una
nueva palabra.
2. Si hay una cadena de la forma Mx, entonces Mxx también es una palabra.
3. Si III aparece en una palabra se puede obtener una nueva palabra sustituyendo
III por U.
4. Si UU aparece en una palabra se puede eliminar.
Por lo tanto, son ejemplos válidos de cadenas (o palabras) de este lenguaje: MI, MIU,
MII, MIII, MU…

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.

Fórmulas bien formadas


En los lenguajes formales, a los teoremas los denominamos Fórmulas Bien Formadas
(FBF) o por sus siglas en inglés WFF: Well-Formed Formula.

Profesor Domingo Pérez -4-


CeRP del Suroeste
Lenguajes Formales Lógica

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.

Definición Inductiva de los Números Naturales


1) Cláusula base: 0 ϵ N
2) Cláusula Inductiva: Si n ϵ N, entonces n+1 ϵ N
3) Cláusula de clausura: solo pertenecen a N los números que se deducen de
aplicar la cláusula 1 y/o 2 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).

Profesor Domingo Pérez -5-

También podría gustarte