Utilize este identificador para referenciar este registo:
https://hdl.handle.net/1822/59688
Título: | Java stream optimization through program fusion |
Autor(es): | Ribeiro, Francisco José Torres |
Orientador(es): | Saraiva, João Pereira, Rui Alexandre Afonso |
Data: | 2018 |
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. |
Tipo: | Dissertação de mestrado |
Descrição: | Dissertação de mestrado integrado em Computer Science |
URI: | https://hdl.handle.net/1822/59688 |
Acesso: | Acesso aberto |
Aparece nas coleções: | BUM - Dissertações de Mestrado DI - Dissertações de Mestrado |
Ficheiros deste registo:
Ficheiro | Descrição | Tamanho | Formato | |
---|---|---|---|---|
Francisco-José-Torres-Ribeiro-dissertação.pdf | 671,92 kB | Adobe PDF | Ver/Abrir |