En matemáticas, lógica y ciencias de la computación, un lenguaje formal es un lenguaje cuyos símbolos son primitivos y las reglas para unir esos símbolos están formalmente especificadas.
[1][2] Al conjunto de los símbolos primitivos se le llama el alfabeto (o vocabulario) del lenguaje, y al conjunto de las reglas se le llama la gramática formal (o sintaxis).
A una cadena de símbolos formada de acuerdo a la gramática se le llama una fórmula bien formada (o palabra) del lenguaje.
Estrictamente hablando, un lenguaje formal es idéntico al conjunto de todas sus fórmulas bien formadas.
Por ejemplo, un alfabeto podría ser el conjunto {a,b}, y una gramática podría definir a las fórmulas bien formadas como aquellas que tienen el mismo número de símbolos a que b.
Entonces, algunas fórmulas bien formadas del lenguaje serían: ab, ba, abab, ababba, etc., y el lenguaje formal sería el conjunto de todas esas fórmulas bien formadas.
Para algunos lenguajes formales existe una semántica formal que puede interpretar y dar significado a las fórmulas bien formadas del lenguaje.
Sin embargo, una semántica formal no es condición necesaria para definir un lenguaje formal, y eso es una diferencia esencial con los lenguajes naturales.
En algunos lenguajes formales, la palabra vacía (esto es, la cadena de símbolos de longitud cero) está permitida, notándose frecuentemente mediante
Los lenguajes formales se pueden especificar de una amplia variedad de formas, como por ejemplo: (Si el lenguaje es regular) Las cadenas están formadas por un conjunto de símbolos que pertenecen a un mismo lenguaje, existen dos formas de componer una sentencia o función con los símbolos: Se pueden utilizar varias operaciones para producir nuevos lenguajes a partir de otros datos.
Supóngase que L1 y L2 son lenguajes sobre un alfabeto común.
lenguajes, de forma tal que para cada
esté formado por todas las palabras que pueden surgir de concatenar
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.
En 1956, Noam Chomsky creó la jerarquía de Chomsky para organizar los distintos tipos de lenguaje formal.
Los lenguajes unarios formales son básicamente conjuntos periódicos (Jez & Okhotin, 2007).
(1) Con operaciones diferentes y permitidas sobre su lado derecho.
Los lenguajes libres de contexto o incontextuales se obtienen mediante el uso de la concatenación y unión del sistema.
Si la concatenación se limita a un solo lado lineal (es decir, cada concatenación que aparece en alguna parte derecha es de la forma w · φ por alguna cadena constante w), entonces las soluciones representan exactamente los lenguajes regulares.
Por último, respaldando a los autómatas, como lo demuestra Okhotin (2004), se pueden simular mediante ecuaciones con unión, intersección y concatenación lineal de dos caras.
Cuando hablamos de lenguajes debemos considerar la gramática que los rigen.
Barash & Okhotin (2014)[4] nos dicen que las gramáticas libres de contexto se entienden mejor como una lógica para definir la sintaxis de los lenguajes.
En esta lógica, las definiciones son inductivas, por lo que las propiedades de una cadena están determinadas por las propiedades de sus subseries.