Lenguajes de programación, lenguajes posicionales y lenguajes naturales

7

Algunos lenguajes de programación están modelados en código de máquina, como los lenguajes ensambladores. Otros idiomas están modelados en un lenguaje natural, el idioma inglés. Otros no están modelados en código de máquina o lenguaje natural. Los idiomas como PROLOG, por ejemplo, no siguen ninguno de los modelos.

Me encontré con este módulo de Perl Lingua :: Romana :: Perligata , que permite escribir programas usando una sintaxis que es muy similar al latín.

¿Hay lenguajes de programación que tienen menos sintaxis posicional?

¿Existen otros idiomas o módulos que le permitan escribir en sintaxis inspiradas en otros idiomas naturales, como el francés, el hebreo o el farsi? Hay una lista muy larga en Wikipedia , pero la mayoría de esos proyectos están muertos.

Hay una pregunta relacionada sobre StackOverflow . La respuesta que se aceptó es "Usar Google".

    
pregunta Виталий Олегович 29.04.2012 - 14:50

2 respuestas

2

El único lenguaje de programación escrito que se usa actualmente y que puedo imaginar es el HTML. Ahora, dependiendo de su definición de lenguaje de programación, esto puede o no contar.

Para ayudarlo a comprender por qué no hay muchos lenguajes de programación de alto uso que tengan menos sintaxis posicional, debe comprender cómo se diseñan la mayoría de los lenguajes de programación. La mayoría de los lenguajes de programación se basan en gramáticas no ambiguas, principalmente por el uso de gramáticas LL y LR. Para mantener las gramáticas sin ambigüedades, la mayor parte de la tecnología se basa en utilizar el orden de los símbolos y las palabras, por ejemplo. Terminales, para hacer la entrada unívoca. Lo que estás buscando son idiomas que renuncien a la posición para hacer que la gramática sea inequívoca. Si los compiladores no pueden usar la posición para decidir si la gramática no es ambigua, entonces el compilador necesita algunos otros consejos para que la gramática no sea ambigua, por lo tanto, los prefijos como #,%, 'y ". Otra técnica es asociar palabras clave con cada valor, es decir ancho = 10, que es lo que hace HTML. Si creas una gramática que no usa las gramáticas LL y LR, entonces tienes que usar una tecnología diferente para resolver ambigüedades que generalmente usan el retroceso que requiere una gran cantidad de procesamiento por computadora para resolver el problema. ambigüedades.

Los lenguajes declarativos son los más cercanos en general que conozco, como PROLOG y SQL, pero nuevamente requieren el uso de algunos valores posicionales.

Los únicos otros idiomas que vienen a la mente son el lenguaje hablado en los sistemas de inteligencia artificial que procesan la entrada, como Watson , pero de nuevo, ¿consideras esto un lenguaje de programación? Si considera que SQL es un lenguaje de programación, entonces ¿por qué no una consulta verbal para Watson?

    
respondido por el Guy Coder 29.04.2012 - 15:40
2

Oracle Policy Automation tiene reglas de negocio codificadas en lenguaje natural. Vale la pena echarle un vistazo.

Un ejemplo es:

Human Resources Policy 100 – Maternity Leave 

100.1. The employee is eligible for maternity leave if

a. The employee is female and
b. Either
 i. The employee has given birth to a natural child or
 ii. The employee has taken legal custody of an adopted child
 and
c. The employee is a full time employee and
d. The employee has been employed for at least 12 months continuously

La fuente original del ejemplo.

La documentación oficial de Oracle es aquí .

    
respondido por el Paul Fowler 22.05.2012 - 20:12

Lea otras preguntas en las etiquetas