Efficient Declarative Programming in OCaml

Bibliographic Details
Main Author: Silvério, Diogo Rafael Rebocho
Publication Date: 2022
Format: Master thesis
Language: eng
Source: Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
Download full: http://hdl.handle.net/10362/138812
Summary: Software gets more complex each day, specially with the growing popularity of IoT, Par- allel Computing and interactive web applications. The opportunity for error grows hand in hand with the ever growing complexity of these systems. Declarative programming allows developers to focus on solving a problem and avoid the complexity of dealing with programming low-level elements, such as memory management. Unfortunately, some pure declarative programs tend to perform poorly from an execu- tional point of view compared with their equivalent imperative counterparts. These are more machine-friendly which turns the use of declarative programming less appealing to the general audience. The goal of this dissertation is to create several OCaml PPX (PreProcessor eXtension) rewriters that transform purely declarative OCaml programs into equivalent ones with better executional performance. These PPX rewriters allow the user to automatically improve the performance of their code. Our biggest aim is to promote the use of the declarative paradigm. The motivation is two-fold: one, developers can enjoy natural, intuitive, and elegant declarative solutions to their problems; second, increase code cor- rectness, decrease code size and ease code verification.
id RCAP_22c8829a8d6653dc7887798cf6c3d6c3
oai_identifier_str oai:run.unl.pt:10362/138812
network_acronym_str RCAP
network_name_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository_id_str https://opendoar.ac.uk/repository/7160
spelling Efficient Declarative Programming in OCamlEfficient Declarative ProgrammingOCaml PreProcessor eXtensionsCode OptimizationProgram TransformationsDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaSoftware gets more complex each day, specially with the growing popularity of IoT, Par- allel Computing and interactive web applications. The opportunity for error grows hand in hand with the ever growing complexity of these systems. Declarative programming allows developers to focus on solving a problem and avoid the complexity of dealing with programming low-level elements, such as memory management. Unfortunately, some pure declarative programs tend to perform poorly from an execu- tional point of view compared with their equivalent imperative counterparts. These are more machine-friendly which turns the use of declarative programming less appealing to the general audience. The goal of this dissertation is to create several OCaml PPX (PreProcessor eXtension) rewriters that transform purely declarative OCaml programs into equivalent ones with better executional performance. These PPX rewriters allow the user to automatically improve the performance of their code. Our biggest aim is to promote the use of the declarative paradigm. The motivation is two-fold: one, developers can enjoy natural, intuitive, and elegant declarative solutions to their problems; second, increase code cor- rectness, decrease code size and ease code verification.O software tem-se tornado cada vez mais complexo, especialmente com o aumento de popularidade do IoT, da Computação Paralela e de aplicações interactivas da Web. A oportunidade de erro cresce de mãos dadas com a complexidade crescente destes sistemas. A programação declarativa permite aos programadores concentrarem-se na resolução de um problema e evitar a complexidade de ter de lidar com a programação de elementos de baixo nível, como a gestão de memória. Infelizmente, alguns programas declarativos puros tendem a ter um mau desempenho do ponto de vista da execução em comparação com os seus equivalentes imperativos. Estes são menos custosos de executar para uma máquina, o que torna o uso da programação declarativa menos atraente para o público geral. O objectivo desta dissertação é criar vários reescritores OCaml PPX (PreProcessor eXtension) que transformam programas OCaml puramente declarativos em programas equivalentes com melhor desempenho de execução. Estes rescritores deixam o utilizador melhorar o desempenho do seu código automaticamente. O nosso maior objectivo é pro- mover o uso do paradigma declarativo. A motivação é dupla: primeiro, os programadores podem desfrutar de soluções declarativas naturais, intuitivas e elegantes para os seus problemas; segundo, melhorar a correção do código, diminuir o seu tamanho e facilitar a sua verificação.Dias, ArturPereira, MárioRUNSilvério, Diogo Rafael Rebocho2022-05-27T17:10:21Z2022-012022-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttp://hdl.handle.net/10362/138812enginfo:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2024-05-22T18:02:00Zoai:run.unl.pt:10362/138812Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T17:33:02.075874Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse
dc.title.none.fl_str_mv Efficient Declarative Programming in OCaml
title Efficient Declarative Programming in OCaml
spellingShingle Efficient Declarative Programming in OCaml
Silvério, Diogo Rafael Rebocho
Efficient Declarative Programming
OCaml PreProcessor eXtensions
Code Optimization
Program Transformations
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short Efficient Declarative Programming in OCaml
title_full Efficient Declarative Programming in OCaml
title_fullStr Efficient Declarative Programming in OCaml
title_full_unstemmed Efficient Declarative Programming in OCaml
title_sort Efficient Declarative Programming in OCaml
author Silvério, Diogo Rafael Rebocho
author_facet Silvério, Diogo Rafael Rebocho
author_role author
dc.contributor.none.fl_str_mv Dias, Artur
Pereira, Mário
RUN
dc.contributor.author.fl_str_mv Silvério, Diogo Rafael Rebocho
dc.subject.por.fl_str_mv Efficient Declarative Programming
OCaml PreProcessor eXtensions
Code Optimization
Program Transformations
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic Efficient Declarative Programming
OCaml PreProcessor eXtensions
Code Optimization
Program Transformations
Domínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description Software gets more complex each day, specially with the growing popularity of IoT, Par- allel Computing and interactive web applications. The opportunity for error grows hand in hand with the ever growing complexity of these systems. Declarative programming allows developers to focus on solving a problem and avoid the complexity of dealing with programming low-level elements, such as memory management. Unfortunately, some pure declarative programs tend to perform poorly from an execu- tional point of view compared with their equivalent imperative counterparts. These are more machine-friendly which turns the use of declarative programming less appealing to the general audience. The goal of this dissertation is to create several OCaml PPX (PreProcessor eXtension) rewriters that transform purely declarative OCaml programs into equivalent ones with better executional performance. These PPX rewriters allow the user to automatically improve the performance of their code. Our biggest aim is to promote the use of the declarative paradigm. The motivation is two-fold: one, developers can enjoy natural, intuitive, and elegant declarative solutions to their problems; second, increase code cor- rectness, decrease code size and ease code verification.
publishDate 2022
dc.date.none.fl_str_mv 2022-05-27T17:10:21Z
2022-01
2022-01-01T00:00:00Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10362/138812
url http://hdl.handle.net/10362/138812
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron:RCAAP
instname_str FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron_str RCAAP
institution RCAAP
reponame_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
collection Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository.name.fl_str_mv Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
repository.mail.fl_str_mv info@rcaap.pt
_version_ 1833596779527929856