article

En matemáticas, lógica, y ciencias de la computación, 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 posible alfabeto sería, digamos, \{ a, b\}\, , y una cadena cualquiera sobre este alfabeto sería, por ejemplo, ababba\,. Un lenguaje sobre este alfabeto, que incluyera esta cadena, sería: el conjunto de todas las cadenas que contienen el mismo número de símbolos a \, que b \,, por ejemplo.

La palabra vacía (esto es, la cadena de longitud cero) se permite en este tipo de lenguajes, notándose frecuentemente mediante \epsilon \,, e\, ó \lambda \,. A diferencia de que ocurre con el alfabeto (que es un conjunto finito) y con cada palabra (que tiene una longitud también finita), un lenguaje puede estar compuesto por un número infinito de palabras.

Ejemplos de lenguajes formales


  • El conjunto de todas las palabras sobre \{a, b\}\,.
  • El conjunto \{ a^n : n\, es un número primo \} \, .
  • El conjunto de todos los programas sintácticamente válidos en un determinado lenguaje de programación.
  • El conjunto de entradas para las cuales una máquina de Turing concreta se detiene.

Especificación de lenguajes formales


Los lenguajes formales se pueden especificar de una amplia variedad de formas, como por ejemplo:

Operaciones


Se pueden utilizar varias operaciones para producir nuevos lenguajes a partir de otros dados. Supóngase que L1 y L2 son lenguajes sobre un alfabeto común. Entonces:

  • la concatenación 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 intersección L1&L2 consiste en todas aquellas palabras que están contenidas tanto en L1 como en L2
  • la unión L1|L2 consiste en todas aquellas palabras que están contenidas ya sea en L1 o en L2
  • el complemento ~L1 consiste en todas aquellas palabras producibles sobre el alfabeto de L1 que no están 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. (Nótese que esta definición incluye a ε en cualquier L*)
  • la intercalación L1*L2 consiste de todas aquellas palabras que pueden ser escritas de la forma v1w1v2w2...vnwn; son palabras tales que la concatenación v1...vn está en L1, y la concatenación w1...wn está en L2

Una pregunta que se hace típicamente sobre un determinado lenguaje formal L es cuán difícil es decidir si incluye o no una determinada palabra v. Este tema es del dominio de la teoría de la computabilidad y la teoría de la complejidad computacional.

Por contraposición 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 matemáticas o la informática, los lenguajes artificiales son llamados lenguajes formales (incluyendo lenguajes de programación). Sin embargo, el lenguaje humano tiene una característica que no se encuentra en los lenguajes de programación: la diversidad.

En 1956, Noam Chomsky creó la Jerarquía de Chomsky para organizar los distintos tipos de lenguaje formal.

Véase también


Enlace externo


Lenguajes formales

Формален език | Formální jazyk | Formale Sprache | Formal language | Formaali kieli | Langage formel | Linguaggio formale (matematica) | 形式言語 | 형식 언어 | Formele taal | Język formalny | Linguagem formal | Limbaje formale | Формальный язык | Formálny jazyk | Biçimsel dil kuramı | 形式语言

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Lenguaje formal".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld