Algebraic Logic Functional programming language - Enciclopedia

El lenguaje de programación Algebraic Logic Functional (ALF) combina técnicas de programación funcional y lógica. Su base es la lógica de cláusulas Horn con igualdad, que consta de predicados y cláusulas Horn para la programación lógica, y funciones y ecuaciones para la programación funcional.

ALF fue diseñado para ser una verdadera integración de ambos paradigmas de programación, y por lo tanto, cualquier expresión funcional puede ser utilizada en un literal de objetivo y predicados arbitrarios pueden ocurrir en condiciones de ecuaciones. La semántica operativa de ALF se basa en la regla de resolución para resolver literales y estrechamiento para evaluar expresiones funcionales. Para reducir el número de pasos posibles de estrechamiento, se utiliza una estrategia básica de estrechamiento más interna de izquierda a derecha, que se afirma que puede ser implementada de manera eficiente. Los términos se simplifican mediante la reescritura antes de aplicar un paso de estrechamiento y las ecuaciones se rechazan si los dos lados tienen constructores diferentes en la parte superior. La reescritura y el rechazo están destinados a reducir significativamente el árbol de búsqueda y producir una semántica operativa más eficiente que la estrategia de resolución de Prolog. De manera similar a Prolog, ALF utiliza una estrategia de retroceso que corresponde a una búsqueda en profundidad en el árbol de derivación.

El sistema ALF fue diseñado para ser una implementación eficiente de la combinación de resolución, estrechamiento, reescritura y rechazo. Los programas de ALF se compilan en instrucciones de una máquina abstracta, que se basa en la Máquina Abstracta de Warren (WAM) con varias extensiones para implementar estrechamiento y reescritura. En la implementación actual de ALF, los programas de esta máquina abstracta se ejecutan por un emulador escrito en C.

En el Repositorio de Inteligencia Artificial de la Universidad Carnegie Mellon, ALF se incluye como un lenguaje de programación de IA, más aún como una implementación del lenguaje de programación funcional/lógico Prolog. Está disponible un manual de usuario que describe el lenguaje y el uso del sistema. El Sistema ALF se ejecuta en Unix y está disponible bajo una licencia de software propietario personalizada que otorga el derecho de uso para "fines de evaluación, investigación y enseñanza" pero no para uso comercial o militar.


Referencias


Enlaces externos
Publicaciones de Michael Hanus, incluyendo muchos artículos relevantes para el diseño y la teoría de ALF
Información sobre cómo obtener e instalar el sistema ALF