2010-04-19 16 views
6

¿Qué significa que un lenguaje de programación es un lenguaje de programación formal? ¿Y qué idiomas son los lenguajes de programación formales? ¿Y cuáles son los lenguajes de programación informales?¿Qué es un lenguaje de programación formal?

No he encontrado una buena explicación todavía.

+12

Depende de cómo se vistan. :-) –

+0

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

+0

Tal vez te refieres a "formal", te refieres a Turing-completo? – FrustratedWithFormsDesigner

Respuesta

9

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.

+0

¿Tal vez el pseudocódigo es un lenguaje informal? – tloflin

+0

La "programación informal" parece una contradicción para mí, pero tienes razón, creo que ese pseudocódigo podría considerarse un lenguaje de programación informal. (Para interpretaciones suficientemente vagas de "programación") – zoul

+0

He oído hablar a la gente sobre el lenguaje de programación formal, así que pensé que tenía que haber algo que se llamara lenguaje de programación informal. Pero supongo que no. Pseudocódigo, como se mencionó, tal vez el más cercano. Gracias – Orjanp

2

Medios formales bien definidos. Cada lenguaje de programación que se puede usar para definir programas ejecutables debe estar bien definido para que las máquinas puedan entenderlo.

0

Thats un extracto de wikipedia

"John C. Reynolds hace hincapié en que los lenguajes formales de especificación son lenguajes de programación, tanto como son los idiomas destinados a la ejecución. También sostiene que textual y formatos de entrada, incluso gráficos que afecta a la comportamiento de una computadora son lenguajes de programación, a pesar de que comúnmente no son completos, y señala que la ignorancia de los conceptos de lenguaje de programación es la razón de muchos defectos en los formatos de entrada "

+0

¡Lenguajes de especificación formales! = Lenguajes formales. – zoul

+0

Ver todos los extractos de pls "También argumenta que los formatos de entrada textuales e incluso gráficos que afectan el comportamiento de una computadora son lenguajes de programación" –

0

Los lenguajes formales son idiomas que solo consideran la buena formación nada más. Eso significa que la condición suficiente y necesaria es cumplir sus reglas. Una regla de ejemplo:

Por ej. Si definimos el lenguaje para números decimales como {x | conjunto finito de dígitos sin ceros a la izquierda}. (simplemente, decimales significa una secuencia de dígitos.)

Por lo tanto, si el lenguaje que contiene la regla anterior es formal, debe cumplir con la regla dada.

Pero en el uso práctico, si el lenguaje trata 001 como un número decimal, podemos concluir que el lenguaje de programación no es formal, ya que no es exactamente de acuerdo con el conjunto de reglas que define.

Normalmente, los analizadores de lenguaje comprueban estas reglas. Así que un lenguaje formal siempre debe estar bien formado (siguiendo sus propias reglas estrictamente)

0

No es un "lenguaje formal" es un método formal de programación: Wikipedia. No es necesario que sea un lenguaje específico sino la forma en que escribe la especificación y verifica el código.

0

Las otras respuestas están relacionadas con la definición del lenguaje de programación formal de acuerdo con la Informática. Sin embargo, esta respuesta se relaciona con la definición de lenguaje de programación formal según Social (wannabe) Science.

Según dictionary.com, una de las definiciones para 'formal' es being in accordance with the usual requirements, customs, etc.; conventional.

Un lenguaje de programación formal es un lenguaje de programación que es ampliamente utilizado y aceptado por la persona que habla de él. Por lo tanto, es dominio y conversación específica. Quizás una mejor forma de redacción es 'popular', tradicional ',' mainstream 'o' ampliamente aceptado 'lenguaje de programación. Por ejemplo, en los negocios y la industria esto se refiere a SQL, Java, C#, C++, Python y PHP.

Ejemplos de lenguajes de programación informales son SPL (el lenguaje de programación de Shakespeare), FORTRAN y CoffeeScript. Es más exacto decir que un idioma es más convencional y formal que otro que decir que un idioma es formal y otro informal. Después de todo, Lisp sería un lenguaje de programación muy informal para hacer un sitio web, pero un lenguaje de programación muy formal para desarrollar la investigación de Inteligencia Artificial.

Cuestiones relacionadas