Efficient Declarative Programming in OCaml
Autor(a) principal: | |
---|---|
Data de Publicação: | 2022 |
Tipo de documento: | Dissertação |
Idioma: | eng |
Título da fonte: | Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
Texto Completo: | http://hdl.handle.net/10362/138812 |
Resumo: | 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ório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository_id_str |
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ório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2024-03-11T05:16:13Zoai:run.unl.pt:10362/138812Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-20T03:49:14.257002Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse |
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ório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação instacron:RCAAP |
instname_str |
Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação |
instacron_str |
RCAAP |
institution |
RCAAP |
reponame_str |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
collection |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository.name.fl_str_mv |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação |
repository.mail.fl_str_mv |
|
_version_ |
1799138091570561024 |