Você está na página 1de 4

TEORA DE LOS LENGUAJES FORMALES: Estudio de los Lenguajes Formales.

Una rama importante de esta teora se ocupa de la descripcin finita de Lenguajes


infinitos. Esta representacin adopta la forma de un mecanismo abstracto para
generar o reconocer cualquier cadena del Lenguaje (llamada Gramtica). Esta
rama se aplica a la sintaxis de los Lenguajes de programacin (en cuanto son
distintos de su semntica, que requiere elementos de trabajo bastante diferentes).
As, el conjunto de todos los programas vlidos de Pascal o de C, puede
considerarse como un Lenguaje Formal sobre el alfabeto de smbolos de Pascal, o
de C respectivamente.
LENGUAJE FORMAL: Lenguaje con reglas explcitas y precisas para su sintaxis
y semntica. Como ejemplo se pueden citar los lenguajes de programacin y
tambin lgica como el clculo de predicados. As, los Lenguajes Formales se
distinguen de los naturales tales como el castellano, cuyas reglas a medida que
evolucionan con el uso dejan de ser una definicin completa o precisa de la
sintaxis del lenguaje y mucho menos de su semntica.
GRAMTICA FORMAL: Es un esquema generativo para la representacin finita
de los lenguajes, es decir, un solo modelo dinmico para generar frases o cadenas
de un lenguaje. Es la manera principal de especificar un Lenguaje Formal aunque
sea infinito por medios finitos. Los Lenguajes pueden ser finitos o infinitos. Las
Gramticas Regulares proporcionan una base para describir sintaxis, en tanto que
los Autmatas de Pila sirven de base para el diseo de los programas de anlisis
sintctico. Por otra parte, el deseo de formalizar los Lenguajes naturales fue lo que
llev a Noam Chomsky a la iniciacin de este tema en 1956.
Los conceptos anteriores son tomados de diccionarios de computacin o de textos
formales y expresan los conocimientos principales que se desarrollarn a lo largo
de este mdulo. Debemos, sin embargo, de iniciar a partir de definiciones ms
elementales, que posteriormente se irn complementando. Partiremos as de los
conceptos iniciales bsicos:
LENGUAJE FORMAL: Conjunto de PALABRAS, formadas por ciertas
reglas tomadas de una Gramtica Formal.
GRAMTICA FORMAL: Conjunto de REGLAS, empleadas para formar
las palabras del Lenguaje Formal.
Todo Lenguaje Formal, siempre estar vinculado a una Gramtica Formal,
que especificar el mecanismo de produccin de las palabras que lo
conforman.
Se le llamar Lenguaje Natural a aquel que empleamos los seres vivos para
comunicarnos, destacando como ejemplo cualquier idioma o dialecto. No es til
para comunicarnos con una computadora, robot o Agente, en general, por su
caracterstica de presentar muchas ambigedades, que dichos equipos no pueden
interpretar correctamente; sin embargo, sirven como modelo para la definicin de
los Lenguajes Formales.

Tomaremos ahora una definicin ms explcita, que nos permita entender cmo se
construye un Lenguaje Formal.
LENGUAJE FORMAL: Sea un conjunto finito de elementos llamado Alfabeto
(Formal); un Lenguaje Formal L definido sobre es un subconjunto de *
(el conjunto de todos los arreglos o cadenas posibles de formar con los
elementos de ), y determinado por las cadenas que cumplen con las
reglas definidas por una Gramtica Formal.
Se est mencionando un concepto ya conocido en trminos naturales, que es el
ALFABETO. En un enfoque formal, se considera que debe ser el conjunto finito de
smbolos (no letras, ni caracteres, necesariamente) que se emplean para formar
las palabras. En trminos naturales, un lingista dira que slo las letras podran
ser parte del Alfabeto del castellano, pero en trminos formales tambin podran
tenerse otros smbolos; por ejemplo, como SR-71 es una palabra vlida del
castellano (es el nombre de un avin), entonces se considera que S, R, -, 7 y 1
son smbolos de nuestro Alfabeto, desde el punto de vista formal.
Ejemplos de posibles Alfabetos Formales vlidos son:
= { a, b, c, ch, d, e, f, g, h, etc. }
En idioma castellano.
= { .-, -..., -.-., ----, -.., ., ..-., --., ...., .., etc. }
En cdigo Morse.
={.,-}
En cdigo Morse.
= { x | x es un caracter del cdigo ASCII}
= { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
= { 0, 1}
Para formar cadenas
de bits.
= { +, -, *, / }
= { a, e, i, o, u }
Obsrvese que un smbolo de un alfabeto puede estar formado por ms de
1 carcter, como en el caso de la ch. Desde el punto de vista formal, dicha
combinacin de letras puede ser considerada perfectamente como un nico
smbolo, sobre todo considerando que representa un fonema y no una
combinacin de stos.
En trminos computacionales, el Alfabeto del Lenguaje Formal integrado por los
identificadores vlidos en C estar formado por las letras, los dgitos y el _; el de
los nmeros enteros por los dgitos y los dos signos. Cul sera el Alfabeto de los
nmeros flotantes? Y el de los hexadecimales en ensamblador?Y el de otros
tokens comunes?
EJEMPLO:
Disear un Lenguaje Formal, a partir de ciertas reglas expresadas textualmente en
castellano y con = { x, y, z }. Las reglas se propondrn un poco ms adelante,
una vez que definamos todas las cadenas posibles de formar con los smbolos del
alfabeto.

Se insiste en que el Lenguaje que disearemos no sirve para algo til, sino slo
para conocer un ejemplo concreto. Posteriormente se tratar el tema de las
Gramticas Formales.
Es importante aclarar que por esta nica ocasin haremos algo que es incorrecto;
en realidad, para disear un Lenguaje Formal, se deber emplear una Gramtica
Formal y no una Natural, expresada en trminos del castellano.
Antes de evaluar * introduciremos un nuevo concepto previo, que evitar el
divagar acerca de cules son todas las cadenas posibles de formar con los
elementos del Alfabeto:
n = {s s es toda cadena de longitud n, que se pueda formar con los
smbolos de }
En este caso, n debe tomar valores especficos de nmeros naturales, como 0, 1,
2, 3, etc.
o = { }

<= Cadena vaca, de longitud 0. Puede ser representada tambin

como .

1 = = { x, y, z }
2 = { xx, xy, xz, yx, yy, yz, zx, zy, zz }
3 = { xxx, xxy, xxz, xyx, xyy, xyz, xzx, xzy, xzz, yxx, yxy, yxz, ... , zzx, zzy, zzz }
4 = { xxxx, xxxy, xxxz, xxyx, xxyy, xxyz, xxzx, xxzy, xxzz, ... , zzzx, zzzy, zzzz }
...
...
, etc.
Por lgica, se deduce la forma de relacionar los valores de las n para obtener *:
* = U n n 0, es decir, * = 0 U 1 U 2 U 3 U ...
* se llama conjunto de todas las palabras posibles sobre .
Adems, existe una variante muy parecida, pero que excluye a la cadena vaca :
+ = U n n , es decir, + = 1 U 2 U 3 U 4 U ...
+ se llama conjunto de todas las palabras no vacas sobre .
La forma de relacionar los dos conjuntos es:
* = + U {
}.
Conviene aclarar que 0 = { 0, 1, 2, 3, 4, ... }, mientras que = { 1, 2, 3, 4,
5, ... }.
Determinar finalmente las palabras del Lenguaje Formal, en caso de que las
reglas gramaticales (en forma natural o textual) fuesen, por ejemplo:
La cadena es de longitud menor o igual a tres.
La cadena finaliza con x con z.
La cadena no inicia con y.
Se debe recalcar que en este caso se est empleando una Gramtica Natural (no
Formal) para no intentar asimilar tantos conceptos innovadores en forma

simultanea. Posteriormente se analizar el concepto de Lenguaje Formal


producido por una Gramtica Formal, como debe ser.
El Lenguaje Formal resultante sera el siguiente:
L = { x, z, xx, xz, zx, zz, xxx, xxz, xyx, xyz, xzx, xzz, zxx, zxz, zyx, zyz,
zzx, zzz }.
En donde se observa que cada cadena cumple con la totalidad de las reglas
sealadas. stas fueron determinadas en forma totalmente arbitraria, solamente
para que el alumno conociera la estructura de un Lenguaje Formal, aunque ste
sea completamente intil.
Si otras hubieran sido las reglas gramaticales, el Lenguaje pudo haber sido, por
ejemplo:
L = { , x, xy, yx, xz, zz, xyz, yyz, zxx, xxxx, xxyz, xyxz, zxyzx, zzzzyyz, ... }

Você também pode gostar