Alma-0
Alma-0 es un lenguaje de programación informática multiparadigma. Este lenguaje es una versión aumentada del lenguaje imperativo Modula-2 con características de programación lógica y una conveniente capacidad de retroceso. Es pequeño, fuertemente tipado y combina programación de restricciones, un número limitado de características inspiradas en la programación lógica y admite paradigmas imperativos. El lenguaje aboga por la programación declarativa. Los diseñadores afirman que las soluciones orientadas a la búsqueda creadas con él son sustancialmente más simples que sus contrapartes escritas en un estilo de programación puramente imperativo o lógico. Alma-0 proporciona construcciones naturales de alto nivel para construir árboles de búsqueda.
Descripción general
Dado que los diseñadores de Alma-0 querían crear una propuesta distinta y sustancialmente más simple que los intentos anteriores de integrar construcciones de programación declarativa (como el retroceso automático) en la programación imperativa, el diseño de Alma-0 se guió por cuatro principios:
- La extensión basada en la lógica debe ser hacia abajo compatible con el lenguaje imperativo de programación subyacente
- La extensión basada en la lógica debe ser arriba compatible con una futura extensión que apoyará la programación de limitaciones
- Los constructos que implementarán la extensión deben apoyar y fomentar la programación declarativa
- La extensión debe mantenerse reducida: se han propuesto y aplicado nueve nuevas características
Alma-0 puede verse no solo como una propuesta de lenguaje de programación específica y concreta, sino también como un ejemplo de un método genérico para extender cualquier lenguaje de programación imperativo con características que admitan la programación declarativa.
La viabilidad del enfoque de Alma-0 se ha demostrado mediante la plena aplicación del idioma (incluida la descripción de su semántica) para un subconjunto de Modula-2.
Características
Las características implementadas en Alma-0 incluyen:
- Uso de expresiones booleanas como declaraciones y viceversa
- Un doble para el
FOR
declaración que introduce el no-determinismo en forma de puntos de elección y backtracking - A
FORALL
declaración que introduce una forma controlada de iteración sobre el backtracking - La unificación, aunque limitada al uso de la igualdad como asignación, produce un nuevo mecanismo de paso del parámetro.
Modos de programación Imperativa y lógica
Los diseñadores de Alma-0 afirman que la tarea, que normalmente se evita en la programación lógica y declarativa pura, en realidad es necesaria en una serie de situaciones naturales, incluso para fines de conteo y registro. También afirman que los medios de expresión de tales expresiones "naturales" Los usos de la asignación dentro del paradigma de programación lógica no son naturales.
Contenido relacionado
ALGOL 68S
ALGOL Y
Lenguaje de especificación IDL
Tarjeta perforada
CPython