Anda di halaman 1dari 12

1

TEORIA MATEMATICA DE
PROGRAMACION




INVESTIGACION DE
LENGUAJES FORMALES

MAESTRO:
M.G.T.I. Oscar Josu Uh Prez

ALUMNO:
Joel Isai Nahum Keb Polanco




2
LENGUAJES
Las lenguas son sistemas ms o menos complejos, que asocian contenidos de
pensamiento y significacin a manifestaciones simblicas tanto orales como
escritas.
El lenguaje sera la capacidad humana para comunicarse mediante lenguas, se
suele usar para denotar los mecanismos de comunicacin no humanos (el
lenguaje de las abejas o el de los delfines), o los creados por los hombres con
fines especficos (los lenguajes de programacin, los lenguajes de la lgica, los
lenguajes de la aritmtica...).
Cada lenguaje est compuesto por secuencias de smbolos tomados de alguna
coleccin finita.
En el caso de cualquier lengua natural (castellano, ingls, francs...), la coleccin
finita es el conjunto de las letras del alfabeto junto con los smbolos que se usan
para construir palabras (tales como el guin, el apstrofe en el caso del ingls...).
De forma similar, la representacin de enteros, son secuencias de caracteres del
conjunto de los dgitos {0,1,2,3,4,5,6,7,8,9}.
La disciplina que regula la construccin adecuada de las oraciones es la sintaxis
de un lenguaje. La que se encarga del significado es la semntica. Entre los
lenguajes que tienen una importancia fundamental en la ciencia de la computacin
se encuentran los lenguajes de programacin.

CONCEPTOS BASICOS

ALFABETO

Un alfabeto es un conjunto no vacio y finito de smbolos
Ejemplo:
1. {a,b,c,..,z}
2. {a,b,c}
3. {1,2,3,4}
4. {casa,perro,awb}

3
No son alfabetos:
1. El conjunto vacio no es un alfabeto. Un alfabeto debe ser un conjunto no
vaco.
2. El conjunto de los nmeros naturales. Un alfabeto debe ser finito.

PALABRA O CADENA

Una palabra sobre un alfabeto es una secuencia finita de smbolos de dicho
alfabeto.
En la teora de lenguajes formales, las palabras no necesitan tener sentido o
significado.
Ejemplo:
1. Bbca es una palabra sobre el alfabeto {a,b,c}
2. perro es una palabra sobre el alfabeto {a,b,c,z}
3. while, una de las palabras claves del lenguaje java, es una palabra sobre el
alfabeto conformado por 256 caracteres ascii.
El orden de los smbolos importa en las palabras, debido a que por definicin es
una secuencia, por ejemplo la palabra casa es diferente de la palabra saca.

LENGUAJE

Un lenguaje sobre un alfabeto es un conjunto de palabras sobre ese alfabeto.
Ejemplo:
1. {abc,bca,cca} es un lenguaje de {a,b,c}.
2. El conjunto infinito {a,aa,aaa,.} es un lenguaje sobre {a}.
3. El conjunto vaco es un lenguaje.

LENGUAJES FORMALES
El trmino lenguaje formal se utiliza en muchos contextos (en las ciencias, en
derecho, etc.) para referirse a un modo de expresin ms cuidadoso y preciso que
el habla cotidiana. Hasta finales de la dcada de 1990, el consenso general era

4
que un lenguaje formal, era en cierto modo la versin lmite de este uso antes
mencionado: un lenguaje tan formalizado que poda ser usado en forma escrita
para describir mtodos computacionales. Sin embargo, hoy en da, el punto de
vista de que la naturaleza esencial de los lenguajes naturales difiere de manera
importante de aquella de los verdaderos lenguajes formales.

un lenguaje formal es un conjunto de palabras (cadenas de caracteres) de
longitud finita formadas a partir de un alfabeto (conjunto de caracteres) finito.

Un lenguaje regular es un lenguaje formal que tiene estas caractersticas:
1. Puede ser descrito mediante una expresin regular (expresar de forma
compacta cmo son todas las cadenas de smbolos que le pertenecen)
2. Puede ser generado mediante una gramtica regular (obtener todas las
cadenas de smbolos que le pertenecen)
3. Puede ser reconocido mediante un autmata finito (saber si una cadena de
smbolos pertenece a l o no)

PROPIEDADES DE UN LENGUAJE FORMAL

El proceso de generacin y desarrollo de un lenguaje formal, son perfectamente
definidas: una palabra mantiene el mismo significado prescindiendo del contexto
en el que se encuentre. Como resultado de este proceso, obtendremos las
llamadas gramticas libres del contexto. En adicin, el significado de smbolos es
determinado exclusivamente por la sintaxis, sin referencia a ningn contenido
semntico. Una funcin y una frmula, puede designar cualquier cosa, solamente
los operadores y relaciones que nos permiten escribir una frmula como por
ejemplo la igualdad, desigualdad, pertenencia, no pertenencia, conectivos lgicos,
etc., y operadores algebraicos +, *, etc., tienen significados especiales.

Los lenguajes formales son, por todo esto, necesariamente exentos de cualquier
componente semntico fuera de sus operadores y relaciones, y es gracias a esta

5
ausencia de significado especial, que los lenguajes formales pueden ser usados
para modelar una teora de la mecnica, de la ingeniera electrnica, etc., en la
lingstica u otra naturaleza, la cual asume el estatus del componente semntico
de tal lenguaje. Esto equivale a decir, que durante la concepcin de lenguajes
formales, toda la ambigedad anteriormente expuesta respecto a la semntica de
una palabra, es anulada, es como si esta reduccin al significado nico debe
manifestarse por s mismo, como la eliminacin del mundo de significados en el
proceso de construir las frmulas, al tiempo que se toca el nivel abstracto de estas
construcciones. Es solamente, por medio de un paso adicional, que el significado
es asignado a las frmulas. Este paso, nos permite la posibilidad de asignar un
criterio falso/cierto a cada frmula.
El mundo de significados que es el componente semntico, solo existe en la teora
que uno intenta expresar a travs del lenguaje formal. Por ejemplo, un
componente semntico normalmente asociado con el lenguaje formal de una
teora cnica, es el movimiento de los cuerpos celestes, as mismo, sistemas
lineales de todas las rdenes, son posibles componentes semnticos de teora de
matrices.

La importancia de los nmeros en lenguajes formales. En un sistema numrico,
as como en un sistema de clculo, los nmeros siempre tienen el potencial de
referir un cierto "contenido", el cual pertenecer entonces al componente
semntico del lenguaje: los objetos posibles cuando son contables o medibles. La
asociacin de un significado con un nmero o con un clculo, no siempre es obvio,
sin embargo, es til recordar, que en fsica, cuando se completa un clculo y se
busca una interpretacin del mismo, solamente se mantienen los nmeros
positivos de los resultados, ya que las soluciones negativas o imaginarias a las
ecuaciones que se supone describen la realidad, son la mayora de las veces
rechazadas, porque no corresponden con la "realidad fsica". En resumen, los
lenguajes formales, se caracterizan con las siguientes propiedades:

1. Se desarrollan a partir de una teora establecida.

6
2. Tienen un componente semntico mnimo.
3. Posibilidad de incrementar el componente semntico de acuerdo con la
teora a formalizar.
4. La sintaxis produce oraciones no ambiguas, en lo que respecta al
significado de sus palabras.
5. Completa formalizacin, y por esto, el potencial de la construccin
computacional.

OPERACIONES APLICADAS A LENGUAJES

Cardinal de un lenguaje
El cardinal de un lenguaje es el nmero de palabras de dicho lenguaje
Ejemplo:
|{ab,cd, r}| = 3
|{ab,cd }| = 2

Concatenacin
La concatenacin de dos lenguajes A y B es un tercer lenguaje C. En el lenguaje
C van todas las concatenaciones posibles formadas por una palabra A y una
palabra B.
Ejemplo:
{corr, beb} {er,o,imos} = {correr,corro,corrimos,beber,bebo,bebimos}
Propiedades:
Sea un lenguaje y A, B y C alfabetos sobre ,entonces,
1. A(BuC) = AB u =AC
2. (AuB) = AC u BC

Potencia
Elevar un lenguaje A a una potencia n es simplemente concatenar el lenguaje
consigo mismo n veces, n debe ser un nmero natural, es decir entero no
negativo.

7
Ejemplo:
1. {a , bc }
3
= {a,bc} {a,bc} {a,bc} = {aa,abc,bca,bcbc}{a,bc} =
{aaa,aabc,abca,abcbc,bcaa,bcabc,bcbca,bcbcbc}

Cerradura o de estrella o cerradura Kleene de un lenguaje
Para hallar la cerradura de estrella de un lenguaje, se realizan todas las
concatenaciones posibles de 0, 1, 2 o ms palabras del lenguaje.
Ejemplo:
1. {a,bc}* = {3 ,
a,bc,aa,abc,bcbc,aaa,aabc,abca,abcbc,bcaa,bcabc,bcbca,bcbcbc,}
Sea A un lenguaje, se define la cerradura de estrella de A como :
A* = A
0
u A
1
u A
2
.

Cerradura positiva
Para halla la cerradura positiva de un lenguaje, se realizan todas las
concatenaciones posibles de 1,2,3 o ms palabras del lenguaje.
Ejemplo:
1. {a,bc}* = {3 ,
a,bc,aa,abc,bcbc,aaa,aabc,abca,abcbc,bcaa,bcabc,bcbca,bcbcbc,}
Sea un lenguaje, definimos la cerradura positiva A como:
A
+
= A
1
u A
2
u A
3
u


GRAMATICA

La gramtica de un lenguaje formal proporciona un conjunto de reglas para
generar y/o reconocer las palabras que pertenecen al lenguaje. Un ordenador
idealizado (como es la mquina de Turing) puede ser el principio ser construido
con la capacidad de implementar dichas reglas.
Noam Chomsky define la gramtica mediante la cuaterna siguiente:

8
1. : vocabulario finito de smbolos Terminales. stos son los smbolos que
realmente aparecen en una frase. Nunca aparecern en el lado izquierdo
de una produccin (lo cual definiremos ms adelante dentro de esta
cuaterna). Los smbolos terminales deben ser smbolos vlidos del
lenguaje.
2. N: conjunto finito de smbolos No Terminales, los cuales son metasmbolos
que deben ser definidos por otras producciones (o reglas gramaticales), es
decir, que tambin aparecen en el lado izquierdo de las mismas. Los
smbolos No Terminales se pueden definir como variables sintcticas.
3. S : un smbolo No Terminal bsico (axiomtico, segn la definicin de
Chomsky). Ser el smbolo principal o axioma que describir oraciones
enteras (y no subcadenas, como describen los smbolos No Terminales) de
un lenguaje natural.
4. P : conjunto, tambin finito, de reglas que nos dicen cmo se pueden
generar las oraciones, cmo partiendo del axioma, podemos llegar a la
oracin terminal. Este conjunto ser un simple subconjunto de:
P (N ) * N(N ) * (N ) *
Expresado en una notacin ms clsica en lingstica sera: oA| =
Donde:
A e N
o,| , e(N ) *

Siendo posible que tanto o como | sean iguales a la cadena nula.
El lenguaje L as definido, se obtendra aplicando el siguiente procedimiento no
Algortmico (no garantiza tiempo finito para una gramtica genrica):
S es una forma oracional.
Si o| es una forma oracional, y | =o pertenece a P, oo tambin ser forma
oracional.
Una forma oracional compuesta nicamente por smbolos Terminales, constituir
una oracin del lenguaje.

9
Como ejemplo, veamos que el enunciado: El hombre compr el libro, puede
derivarse, basndonos en una pequea gramtica, mediante la siguiente
secuencia de producciones:
S -> Sintagma Nominal Sintagma Verbal
Artculo Nombre Sintagma Verbal
El Nombre Sintagma Verbal
El hombre Sintagma Verbal
El hombre Verbo Sintagma Nominal
El hombre compr Sintagma Nominal
El hombre compr Artculo Nombre
El hombre compr el Nombre
El hombre compr el libro
Entonces, si abreviamos la frase "El hombre compr el libro" = Ehcel, tenemos
que: Ehcel* puede producir todas las combinaciones. Adems, Ehcel ser
aceptado por el lenguaje definido por el conjunto de producciones anterior, Ehcel
e L, ya que Ehcel e *
Ahora, podemos definir entonces un lenguaje L como el conjunto de todas las
cadenas de smbolos Terminales que pueden derivarse del smbolo inicial o
axioma S:
L = { o | S es una secuencia de o y o e* } siendo o una cadena de smbolos
Terminales.


REPRESENTACIONES GRAMATICAS

Para la representacin de una gramtica se utiliza la BNF. La BNF (Backus
Normal Form, Backus-Naur Form, en homenaje a Backus, su creador y a Naur, su
continuador), es un metalenguaje muy utilizado para definir la estructura sintctica
de lenguajes de programacin (lenguajes formales). La forma de Backus-Naur fue
creada para definir la escritura sintctica del lenguaje de programacin ALGOL60.

10
Las notaciones BNF, reducen el nmero de reglas necesarias. Para ello, utilizan
los siguientes metasmbolos:
1. La barra disyuntiva '|': unifica en una, dos reglas con el mismo smbolo No
Terminal a la izquierda del igual. Las reglas A = aA y A = bB, se van a
convertir en la regla A = aA | bB.
2. El parntesis de opcionalidad '(...)': dos reglas iguales, salvo una expresin
inserta, equivalen a la mayor de ellas con la expresin inserta entre
parntesis. Las reglas A = aB y A = a se convierten en A = a(B).
3. El signo ms de recursividad '+': adjunto a una expresin, equivale a las
reglas A= ...A y A = A... Por ejemplo: A = aA y A = a se transformar en A =
a+.
4. El asterisco '*': equivale a una expresin con ms y entre parntesis. As, A*
es lo mismo que (A+).
5. Los corchetes '[]': para alterar la prioridad en la interpretacin de los
metasmbolos. Como '+' y '*' tienen ms prioridad que la barra '|', son
expresiones diferentes: A | B+ y [A | B]+. Traduciendo esta notacin infija a
prefija, se gana en facilidad de procesamiento pero no en facilidad de
escritura (hay que escribir ms).

EJEMPLOS
Sea ={a,b}
r Lr
ab {ab}
a|b {a,b}
a* {,a,aa,aaa,aaaa,...}
ab* {a,ab,ab,abbb,...}
(ab|c)*d {d,abd,cd,abcd,ababcd,...}



11
Sea ={0,1}
00 (00) la cadena 00
(1|10)* y todas las cadenas que empiezan
con 1 y no tienen dos 0 consecutivos
(0|1)* Todas las cadenas con 0 ms 1 0
y
(0|1)*00(0|1)* Todas las cadenas con al menos 2 0
consecutivos
(0|)(1|10)* Todas las cadenas que no tengan dos
0 consecutivos
(0|1)*011 Todas las cadenas que acaban en 011














12
REFERENCIAS
lvarez B., (2004) Avances en criptologia y seguridad de la informacin, Edicin
Daz de Santos
Moreno J., (1999) Diseo e implementacin de sistemas de traduccin automtica,
1era Edicin, Universidad de Sevilla
Rodrguez L.,(2010) Practique la teora de autmatas y lenguajes formales,
Ediciones Elizcom.
Sol R.,(2010) Orden y caos en sistemas complejos. Aplicaciones, Ediciones UPC.
Campus Virtual (2013), Teora de autmatas, Recopilado de la RED:
http://campusvirtual.unex.es/ebooks/files/file/TeoriaAutomatas.pdf
Anotaciones (2013), Repaso de lenguajes formales, Recopilado de la RED:
http://www.fdi.ucm.es/profesor/fpeinado/courses/compiling/Repaso-
LenguajesFormales.pdf
Universidad Tecnolgica Regional (2013), Introduccin a los lenguajes formales,
Recopilado de la RED:
http://www.frro.utn.edu.ar/repositorio/catedras/sistemas/2_anio/sintaxis/Guia_de_L
enguajes_Formales.pdf
Instituto Tecnolgico de Chetumal (2013), Introduccin a los lenguajes formales,
Recopilado de la RED:
http://www.itchetumal.edu.mx/paginasvar/Maestros/mduran/Archivos/Unidad%206
%20Introduccion%20a%20los%20lenguajes%20formales.pdf
Universidad de Zaragoza (2013), Lenguajes formales, Recopilado de la RED:
http://webdiis.unizar.es/~elvira/lengForm.pdf