Articulo de referencia

Lógica algebraica. Lenguaje de programación funcional.

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 de Horn con igualdad, que ...

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 de Horn con igualdad, que consiste en predicados y cláusulas de Horn para la programación lógica, y funciones y ecuaciones para la programación funcional.

ALF fue diseñado para ser una integración genuina de ambos paradigmas de programación, por lo que cualquier expresión funcional puede usarse en un literal de objetivo y pueden aparecer predicados arbitrarios en las condiciones de las ecuaciones. La semántica operacional de ALF se basa en la regla de resolución para resolver literales y en la reducción para evaluar expresiones funcionales. Para reducir el número de pasos de reducción posibles, se utiliza una estrategia de reducción básica de izquierda a derecha que, según se afirma, puede implementarse de manera eficiente. Los términos se simplifican mediante reescritura antes de aplicar un paso de reducción y las ecuaciones se rechazan si ambos lados tienen constructores diferentes en la parte superior. Se supone que la reescritura y el rechazo dan como resultado una gran reducción del árbol de búsqueda y producen una semántica operacional 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, reducción, reescritura y rechazo. Los programas 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 la reducción y la reescritura. En la implementación actual de ALF , los programas de esta máquina abstracta son ejecutados por un emulador escrito en C.

En el Repositorio de Inteligencia Artificial de la Universidad Carnegie Mellon , [ 1 ] ALF se incluye como un lenguaje de programación de IA, más concretamente como una implementación de Prolog, un lenguaje de programación funcional/lógica. [ 2 ] Se encuentra disponible un manual de usuario [ 3 ] que describe el lenguaje y el uso del sistema. El Sistema ALF [ 4 ] se ejecuta en Unix y está disponible bajo una licencia de software propietaria personalizada que otorga el derecho a usarlo para "fines de evaluación, investigación y enseñanza", pero no para uso comercial o militar. [ 5 ]

Referencias

  1. "Repositorio de Inteligencia Artificial de CMU" . Universidad Carnegie Mellon . 13 de febrero de 1995. Archivado del original el 23 de junio de 2007. Consultado el 22 de junio de 2007 .
  2. "ALF: Lenguaje de programación funcional de lógica algebraica" . Repositorio de Inteligencia Artificial de CMU . Universidad Carnegie Mellon . 13 de febrero de 1995. Archivado del original el 10 de mayo de 2007. Consultado el 22 de junio de 2007 .
  3. ^ Hanus, Michael; Andreas Schwab (13 de febrero de 1995). "Manual de usuario de ALF" (PDF) . Institut für Informatik, Christian-Albrechts-Universität zu Kiel . Archivado (PDF) desde el original el 11 de julio de 2007 . Consultado el 22 de junio de 2007 .
  4. ^ Hanus, Michael. "El sistema ALF" . Institut für Informatik, Christian-Albrechts-Universität zu Kiel. Archivado desde el original el 25 de junio de 2007 . Consultado el 22 de junio de 2007 .
  5. ^ Hanus, Michael. "Acuerdo de licencia ALF" . El sistema ALF . Institut für Informatik, Christian-Albrechts-Universität zu Kiel. Archivado desde el original el 2 de diciembre de 2015 . Consultado el 6 de marzo de 2020 .
  • Publicaciones de Michael Hanus , incluyendo numerosos artículos relevantes para el diseño y la teoría de ALF.
  • Información sobre cómo obtener e instalar el sistema ALF.