Lógica algebraica El lenguaje de programación funcional , también conocido como ALF , es un lenguaje de programación que combina técnicas de programación lógica y funcional . Su base es la lógica de la cláusula 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.
Paradigma | multi-paradigma : lógico , funcional |
---|---|
Sitio web | Obtener e instalar ALF |
ALF fue diseñado para ser una integración genuina de ambos paradigmas de programación y, por lo tanto, cualquier expresión funcional puede usarse en un objetivo literal y los 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 el estrechamiento para evaluar expresiones funcionales. Con el fin de reducir el número de posibles pasos de estrechamiento, se utiliza una estrategia de estrechamiento básica más interior a la izquierda que, según se afirma, puede implementarse de manera eficiente. [ cita requerida ] Los términos se simplifican reescribiendo antes de aplicar un paso de reducción y las ecuaciones se rechazan si los dos lados tienen diferentes constructores 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 operativa que es más eficiente que la estrategia de resolución de Prolog . De manera similar a Prolog, ALF usa una estrategia de retroceso correspondiente 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. La máquina abstracta se basa en Warren Abstract Machine (WAM) con varias extensiones para implementar el estrechamiento y la reescritura. En los programas de implementación ALF actuales de esta máquina abstracta son ejecutadas 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, en particular como una implementación de Prolog del lenguaje de programación funcional / lógico. [2] Hay disponible un manual de usuario [3] que describe el idioma y el uso del sistema. El sistema ALF [4] se ejecuta bajo Unix y está disponible bajo una licencia de software propietario personalizado que otorga el derecho de uso para "fines de evaluación, investigación y enseñanza", pero no para uso comercial o militar. [5]
Referencias
- ^ "Repositorio de inteligencia artificial de CMU" . Universidad Carnegie Mellon . 1995-02-13. Archivado desde el original el 23 de junio de 2007 . Consultado el 22 de junio de 2007 .
- ^ "ALF: Lenguaje de programación funcional de lógica algebraica" . Repositorio de Inteligencia Artificial CMU . Universidad Carnegie Mellon . 1995-02-13. Archivado desde el original el 10 de mayo de 2007 . Consultado el 22 de junio de 2007 .
- ^ Hanus, Michael; Andreas Schwab (13 de febrero de 1995). "Manual del 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 .
- ^ 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 .
- ^ 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 .
enlaces externos
- Publicaciones de Michael Hanus , que incluyen muchos artículos relacionados con el diseño y la teoría de ALF
- Información sobre cómo obtener e instalar el sistema ALF