Sunteți pe pagina 1din 4

Lenguaje formal

Lenguaje formal
En matemticas, lgica, y ciencias de la computacin, un lenguaje formal es un lenguaje cuyos smbolos primitivos y reglas para unir esos smbolos estn formalmente especificados. Al conjunto de los smbolos primitivos se le llama el alfabeto (o vocabulario) del lenguaje, y al conjunto de las reglas se lo llama la gramtica formal (o sintaxis). A una cadena de smbolos formada de acuerdo a la gramtica se la llama una frmula bien formada (o palabra) del lenguaje. Estrictamente hablando, un lenguaje formal es idntico al conjunto de todas sus frmulas bien formadas. A diferencia de lo que ocurre con el alfabeto (que debe ser un conjunto finito) y con cada frmula bien formada (que debe tener una longitud tambin finita), un lenguaje formal puede estar compuesto por un nmero infinito de frmulas bien formadas. Por ejemplo, un alfabeto podra ser el conjunto {a,b}, y una gramtica podra definir a las frmulas bien formadas como aquellas que tienen el mismo nmero de smbolos a que b. Entonces, algunas frmulas bien formadas del lenguaje seran: ab, ba, abab, ababba, etc.; y el lenguaje formal sera el conjunto de todas esas frmulas bien formadas.

Esta imagen muestra la relacin entre las cadenas de caracteres, las frmulas bien formadas y los teoremas. En algunos sistemas formales, sin embargo, el conjunto de los teoremas coincide con el de las frmulas bien formadas.

Para algunos lenguajes formales existe una semntica formal que puede interpretar y dar significado a las frmulas bien formadas del lenguaje. Sin embargo, una semntica formal no es condicin necesaria para definir un lenguaje formal, y eso es una diferencia esencial con los lenguajes naturales. En algunos lenguajes formales, la palabra vaca (esto es, la cadena de smbolos de longitud cero) est permitida, notndose frecuentemente mediante , o .

Ejemplo de lenguajes formales


Un conjunto de todas las palabras sobre {a,b}. La Numeracin de Gdel {an : a es un nmero primo y n un nmero de Gdel}. El conjunto de todos los programas sintcticamente vlidos en un determinado lenguaje de programacin. El conjunto de todas las frmulas bien formadas en la lgica de primer orden.

Especificacin de lenguajes formales


Los lenguajes formales se pueden especificar de una amplia variedad de formas, como por ejemplo: (Si el lenguaje es regular) Cadenas producidas por una gramtica formal (vase la jerarqua de Chomsky). Cadenas descriptas por una expresin regular. Cadenas aceptadas por un autmata, tal como una mquina de Turing. Las cadenas estn formadas por un conjunto de smbolos que pertenecen a un mismo lenguaje, existen dos formas de componer una sentencia o funcin con los smbolos:

Lenguaje formal Sintaxis Semntica

Operaciones
Se pueden utilizar varias operaciones para producir nuevos lenguajes a partir de otros dados. Supngase que L1 y L2 son lenguajes sobre un alfabeto comn. Entonces: La concatenacin L1L2 consiste de todas aquellas palabras de la forma vw donde v es una palabra de L1 y w es una palabra de L2 La interseccin L1&L2 consiste en todas aquellas palabras que estn contenidas tanto en L1 como en L2 La unin L1|L2 consiste en todas aquellas palabras que estn contenidas ya sea en L1 o en L2 El complemento ~L1 consiste en todas aquellas palabras producibles sobre el alfabeto de L1 que no estn ya contenidas en L1 El cociente L1/L2 consiste de todas aquellas palabras v para las cuales existe una palabra w en L2 tales que vw se encuentra en L1 La estrella L1* consiste de todas aquellas palabras que pueden ser escritas de la forma W1W2...Wn donde todo Wi se encuentra en L1 y n 0. (Ntese que esta definicin incluye a en cualquier L*) La intercalacin L1*L2 consiste de todas aquellas palabras que pueden ser escritas de la forma v1w1v2w2...vnwn; son palabras tales que la concatenacin v1...vn est en L1, y la concatenacin w1...wn est en L2 Una pregunta que se hace tpicamente sobre un determinado lenguaje formal L es cun difcil es decidir si incluye o no una determinada palabra v. Este tema es del dominio de la teora de la computabilidad y la teora de la complejidad computacional. Por contraposicin al lenguaje propio de los seres vivos y en especial el lenguaje humano, considerados lenguajes naturales, se denomina lenguaje formal a los lenguajes artificiales propios de las matemticas o la informtica, los lenguajes artificiales son llamados lenguajes formales (incluyendo lenguajes de programacin). Sin embargo, el lenguaje humano tiene una caracterstica que no se encuentra en los lenguajes de programacin: la diversidad. En 1956, Noam Chomsky cre la jerarqua de Chomsky para organizar los distintos tipos de lenguaje formal.

Verdades concernientes a los lenguajes formales


Teorema 1 El conjunto de lenguajes en general (incluyendo los no-formales) es incontable. Lema 1 El conjunto de lenguajes en un alfabeto no vaco dado es incontable. Afirmar que un alfabeto es no-vaco equivale a que ese alfabeto contenga al menos un smbolo, ergo, basta demostrar que el conjunto de lenguajes en el alfabeto es incontable. Como sabemos, un lenguaje L en es un subconjunto de es justamente evidente que , esto nos lleva a la conclusin de que, el conjunto de todos los lenguajes en (el conjunto de todos los subconjuntos o conjunto potencia de es infinito (de hecho; contable), tambin ha sido demostrado que si es mayor que porque y , lo que hace a ) y es es un conjunto

infinito (contable o incontable), entonces incontable, la prueba ha finalizado. Demostracin del Teorema 1

pasa a ser un conjunto infinito de un conjunto infinito

rdenes del infinito, al ser mayor, no existir biyeccin entre

Puede derivarse fcilmente que la aseveracin delineada en el Teorema 1 es verdadera, porque el conjunto de lenguajes en general es justamente una unin infinita de conjuntos del tipo , donde es un conjunto infinito contable.

Lenguaje formal Teorema 2 Los lenguajes son conjuntos contables. Se sabe que un lenguaje infinito contable, por ende, prueba ha culminado. Teorema 3 El conjunto de lenguajes formales es contable. Como sabemos un lenguaje formal puede ser generado por una gramtica formal (o de estructura de frase), lo cual implica que todo lenguaje formal puede ser aceptado por una MT, lo que a su vez implica que se puede definir una biyeccin entre el conjunto de lenguajes formales y el conjunto de las MTs (debido a la propiedad transitiva de la relacin "existe biyeccin entre y "). Para demostrar el teorema se utilizar el concepto de codificacin de MTs que se introduce en el estudio de las MTs universales, generalmente se codifica una MT con una funcin que tiene precisamente como dominio al conjunto de las MTs (lo llamaremos )y como codominio de ) y como e biyeccin (entre , esa funcin puede ser una biyeccin si el codominio pasa a ser Y (un subconjunto es contable, ese subconjunto tambin ser contable y como existe dicha ), la asercin ha sido demostrada, prueba concluida. en un alfabeto es un subconjunto de y como ya se hizo mencin, es ), la es como mucho un conjunto infinito contable (del mismo tamao que

Notas y referencias Enlaces externos


Autmatas y lenguajes (http://homepages.mty.itesm.mx/rbrena/AyL.html) - Libro electrnico gratuito por Ramon F. Brena Pinero.

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


Lenguaje formal Fuente: http://es.wikipedia.org/w/index.php?oldid=69954649 Contribuyentes: AchedDamiman, Acratta, Airunp, AlfonsoERomero, Allforrous, Amads, Ascnder, Bienchido, Cfau, Cobalttempest, Danakil, Davius, Echani, Egaida, Ensada, Fadesga, Farisori, Greek, Interwiki, Ivan.Romero, JMCC1, Javier Carro, Jerowiki, Jjmaster, Jkbw, Kenrych, Luis Felipe Schenone, MONIMINO, Maldoror, Mansoncc, ManuelGR, Matdrodes, Netito777, Paco79, Rbrena, RoyFocker, SpeedyGonzalez, Tano4595, UA31, Unf, Waeswaes, Waka Waka, 82 ediciones annimas

Fuentes de imagen, Licencias y contribuyentes


Archivo:Entidades sintcticas 2.svg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Entidades_sintcticas_2.svg Licencia: Creative Commons Attribution-Sharealike 3.0 Contribuyentes: Luis Felipe Schenone

Licencia
Creative Commons Attribution-Share Alike 3.0 //creativecommons.org/licenses/by-sa/3.0/