Study and development of new functional syntactic extensions for Ciao Prolog

In programming languages, the idea of mixing programming paradigms is of interest, both for improving programmer productivity and convenience, and for enhancing language expressiveness and functionality. Some characteristics of the functional programming paradigm that it is attractive to carry over...

Descripción completa

Detalles Bibliográficos
Autor: Luque Santamaría, Víctor
Tipo de recurso: tesis de maestría
Fecha de publicación:2024
País:España
Institución:Universidad Complutense de Madrid (UCM)
Repositorio:Docta Complutense
Idioma:inglés
OAI Identifier:oai:docta.ucm.es:20.500.14352/109081
Acceso en línea:https://hdl.handle.net/20.500.14352/109081
Access Level:acceso abierto
Palabra clave:004(043.3)
Programación lógica
Programación funcional
Programación multiparadigma
Órden superior
Extensiones sintácticas
Programación lógico-funcional
Programación modular
Logic programming
Functional programming
Multiparadigm programming
Higher order
Syntactic extensions
Functional-logic programming
Modular programming
Informática (Informática)
33 Ciencias Tecnológicas
Descripción
Sumario:In programming languages, the idea of mixing programming paradigms is of interest, both for improving programmer productivity and convenience, and for enhancing language expressiveness and functionality. Some characteristics of the functional programming paradigm that it is attractive to carry over to other paradigms is the excellent support for higher order and the syntactic compactness. In this work we study these issues in the context of Prolog. There are multiple solutions for achieving higher order and other functional programming characteristics along with logic programming. Many of these change the semantics to include part of the semantics of functional languages, such as the simply typed lambda calculus, or to add fragments of higher-order logics, such as for example lambda term unification. In this work we concentrate instead on the Ciao Prolog system, which includes the possibility of programming in a functional style and using higher order, but without changing the underlying Prolog operational semantics. This approach is based on syntactic transformations, thanks to the language extension capabilities and module system of the Ciao language. We present new extensions that add functionality and improve the support in Ciao for functional notation and higher order, while continuing in the line of not changing the underlying Prolog semantics. The main idea is based on work done in 2004 the Hiord proposal, which has been revisited in this work through an analysis of similar solutions in other programming languages. This work presents the current Ciao solution along with new extensions for functional notation, explores other languages with similar functionalities, and discusses their implementation.