Utilize este identificador para referenciar este registo: https://hdl.handle.net/1822/59688

TítuloJava stream optimization through program fusion
Autor(es)Ribeiro, Francisco José Torres
Orientador(es)Saraiva, João
Pereira, Rui Alexandre Afonso
Data2018
Resumo(s)Combining different programs or code fragments is a natural way to build larger programs. This allows programmers to better separate a complex problem into simple parts. Furthermore, by writing programs in a modular way, we increase code reusability. However, these simple parts need to be connected somehow. These connections are done via intermediate structures that communicate results between the different components, harming performance because of the overhead introduced by the allocation and deallocation of multiple structures. Fusion, a very commonly used technique in functional programming, aims to remove the creation of these unnecessary structures, as they don’t take part in the final result. With the introduction of streams and lambda expressions, Java made its way into a more functional programming style. Yet, these mechanisms lack optimization and the adaptation of fusion techniques used by some compilers for functional languages could benefit the performance of Java streams. In this thesis, we study how functional fusion can be adapted to Java Streams.
Combinar diferentes programas ou fragmentos de código é uma forma natural de construir programas maiores. Isto permite aos programadores melhor separar um problema complexo em partes simples. Além disso, ao escrever programas de forma modular, estamos a aumentar a reutilização do código. Contudo, estas partes têm de ser ligadas de alguma maneira. Estas conexões são feitas via estruturas intermédias que comunicam os resultados entre os diferentes componentes, prejudicando a performance com o overhead introduzido pela alocação e desalocação de várias estruturas. A fusão, uma técnica muito usada em programação funcional, pretende remover a criação destas estruturas desnecessárias, uma vez que não tomam parte no resultado final. Com a introdução de streams e expressões lambda, o Java abriu caminho para um estilo de programação mais funcional. Mesmo assim, estes mecanismos não possuem otimização e a adaptação de técnicas de fusão utilizadas por alguns compiladores de linguagens funcionais poderiam beneficiar a performance das streams do Java. Nesta dissertação, é estudado como a fusão em programação funcional pode ser adaptada às streams do Java.
TipoDissertação de mestrado
DescriçãoDissertação de mestrado integrado em Computer Science
URIhttps://hdl.handle.net/1822/59688
AcessoAcesso aberto
Aparece nas coleções:BUM - Dissertações de Mestrado
DI - Dissertações de Mestrado

Ficheiros deste registo:
Ficheiro Descrição TamanhoFormato 
Francisco-José-Torres-Ribeiro-dissertação.pdf671,92 kBAdobe PDFVer/Abrir

Partilhe no FacebookPartilhe no TwitterPartilhe no DeliciousPartilhe no LinkedInPartilhe no DiggAdicionar ao Google BookmarksPartilhe no MySpacePartilhe no Orkut
Exporte no formato BibTex mendeley Exporte no formato Endnote Adicione ao seu ORCID