Aviso: para depositar documentos, por favor, inicia sesión e identifícate con tu cuenta de correo institucional de la UCM con el botón MI CUENTA UCM. No emplees la opción AUTENTICACIÓN CON CONTRASEÑA
 

Study and development of new functional syntactic extensions for Ciao Prolog

dc.contributor.advisorMorales Caballero, José Francisco
dc.contributor.advisorde Hermenegildo Salinas, Manuel
dc.contributor.authorLuque Santamaría, Víctor
dc.date.accessioned2024-10-17T15:15:51Z
dc.date.available2024-10-17T15:15:51Z
dc.date.issued2024
dc.descriptionTrabajo de Fin de Master en Métodos Formales en Ingeniería Informática, Facultad de Informática UCM, Departamento de Sistemas Informáticos y Computación, Curso 2023/2024
dc.description.abstractIn 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.
dc.description.abstractEn el área de lenguajes de programación, la idea de combinar paradigmas es de interés, tanto para mejorar la comodidad y productividad del programador, como para mejorar la expresividad y aumentar las funcionalidades del lenguaje. Una de las características del paradigma de la programación funcional que es atractivo trasladar a otros paradigmas es el excelente soporte del orden superior y la brevedad sintáctica. En este trabajo estudiamos estos temas en el contexto de Prolog. Existen múltiples propuestas para obtener orden superior y otras características de la programación funcional junto con la programación lógica. Muchas de ellas consisten en incorporar parte de la semántica de los lenguajes funcionales, como el cálculo lambda simplemente tipado, o añadir fragmentos de lógica de orden superior, por ejemplo definiendo la unificación de expresiones lambda. En este trabajo nos centramos sin embargo en la solución propuesta por el sistema Ciao Prolog, que incluye la posibilidad de programar en estilo funcional y con orden superior, pero sin cambiar la semántica operacional de su base en Prolog. Esta solución está basada en transformaciones sintácticas, gracias a las capacidades de extensión del lenguaje Ciao y su sistema de módulos. Presentamos nuevas extensiones que añaden funcionalidad y mejoran el soporte en Ciao de la notación funcional y del orden superior, siguiendo en la línea de no cambiar la semántica operacional de Prolog. La idea principal parte del trabajo realizado en 2004 sobre la propuesta Hiord, que se ha mejorado a través de un análisis de soluciones similares presentes en otros lenguajes de programación. En este trabajo se presenta la solución actual de Ciao junto con las nuevas extensiones para notación funcional, las soluciones ofrecidas por otros lenguajes con funcionalidades similares, y una discusión de su implementación.
dc.description.departmentDepto. de Sistemas Informáticos y Computación
dc.description.facultyFac. de Informática
dc.description.refereedTRUE
dc.description.statusunpub
dc.identifier.urihttps://hdl.handle.net/20.500.14352/109081
dc.language.isoeng
dc.master.titleMáster en Métodos Formales en Ingeniería Informática
dc.page.total54
dc.rightsAttribution-NonCommercial-NoDerivatives 4.0 Internationalen
dc.rights.accessRightsopen access
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/4.0/
dc.subject.cdu004(043.3)
dc.subject.keywordProgramación lógica
dc.subject.keywordProgramación funcional
dc.subject.keywordProgramación multiparadigma
dc.subject.keywordÓrden superior
dc.subject.keywordExtensiones sintácticas
dc.subject.keywordProgramación lógico-funcional
dc.subject.keywordProgramación modular
dc.subject.keywordLogic programming
dc.subject.keywordFunctional programming
dc.subject.keywordMultiparadigm programming
dc.subject.keywordHigher order
dc.subject.keywordSyntactic extensions
dc.subject.keywordFunctional-logic programming
dc.subject.keywordModular programming
dc.subject.ucmInformática (Informática)
dc.subject.unesco33 Ciencias Tecnológicas
dc.titleStudy and development of new functional syntactic extensions for Ciao Prolog
dc.title.alternativeEstudio y desarrollo de nuevas extensiones sintácticas funcionales para Ciao Prolog
dc.typemaster thesis
dc.type.hasVersionAM
dspace.entity.typePublication

Download

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Luque.pdf
Size:
1011.07 KB
Format:
Adobe Portable Document Format