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...
| Autor: | |
|---|---|
| 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 |
| 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. |
|---|