Cada lenguaje de programación es un lenguaje formal, por lo que no tiene mucho sentido para mí hablar de un "lenguaje de programación formal". (O ¿alguien sabe un lenguaje de programación informal?)
El lenguaje formal es un lenguaje con reglas de construcción matemáticamente precisas. O, más precisamente, es un conjunto de palabras sobre un alfabeto. Por ejemplo, si toma un alfabeto compuesto por las letras a
, b
y c
, un idioma formal sobre este alfabeto podría ser un conjunto {a
, aa
, aba
, ca
}. Por supuesto, ese tipo de lenguaje no sería muy útil; el hecho es que con un conjunto de reglas de construcción decente puede crear un lenguaje como C o PostScript.
En cuanto a las “reglas de construcción”, que podría ser una gramática formal (véase la gramática para CSS), una expresión regular (ver este gorgeous regex de direcciones de correo electrónico como se define en el RFC 822), un autómata o un algoritmo general .
Si siente que no entiende la cosa un poquito más, no se desespere, porque esto no es una muy buena explicación :-) Hay un montón de ideas detrás del concepto de lenguajes formales. Sugeriría que intentes digerir el Wikipedia entry y buscas más tutoriales y libros. Es divertido y aprenderá mucho sobre los antecedentes de compiladores, expresiones regulares, máquinas de Turing y otras maravillas de la humanidad digital.
Depende de cómo se vistan. :-) –
Esta es solo la séptima pregunta que debe etiquetarse como formal - http://stackoverflow.com/questions/tagged/formal-languages - por lo que sea lo que sea (o no) no es Facebook. O Twitter – amelvin
Tal vez te refieres a "formal", te refieres a Turing-completo? – FrustratedWithFormsDesigner