Publicação
Java stream fusion: Adapting FP mechanisms for an OO setting
| Resumo: | In this paper, we show how stream fusion, a program transformation technique used in functional programming, can be adapted for an Object-Oriented setting. This makes it possible to have more Stream operators than the ones currently provided by the Java Stream API. The addition of more operators allows for a greater deal of expressiveness. To this extent, we show how these operators are incorporated in the stream setting. Furthermore, we also demonstrate how a specific set of optimizations eliminates overheads and produces equivalent code in the form of for loops. In this way, programmers are relieved from the burden of writing code in such a cumbersome style, thus allowing for a more declarative and intuitive programming approach. |
|---|---|
| Autores principais: | Ribeiro, Francisco |
| Outros Autores: | Saraiva, João; Pardo, Alberto |
| Assunto: | Functional Programming Object-Oriented Programming Program Fusion Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
| Ano: | 2019 |
| País: | Portugal |
| Tipo de documento: | comunicação em conferência |
| Tipo de acesso: | acesso aberto |
| Instituição associada: | Universidade do Minho |
| Idioma: | inglês |
| Origem: | RepositóriUM - Universidade do Minho |
Registos relacionados
article Multiple intermediate structure deforestation by shortcut fusion
por: Pardo, Alberto
Publicado em: (2016)
por: Pardo, Alberto
Publicado em: (2016)
school Java stream optimization through program fusion
por: Ribeiro, Francisco José Torres
Publicado em: (2018)
por: Ribeiro, Francisco José Torres
Publicado em: (2018)
article Shortcut fusion rules for the derivation of circular and higher-order monadic programs
por: Pardo, Alberto
Publicado em: (2009)
por: Pardo, Alberto
Publicado em: (2009)
article Reusable aspect-oriented implementations of concurrency patterns and mechanisms
por: Sobral, João Luís Ferreira
Publicado em: (2006)
por: Sobral, João Luís Ferreira
Publicado em: (2006)
article A shortcut fusion rule for circular program calculation
por: Fernandes, João Paulo
Publicado em: (2007)
por: Fernandes, João Paulo
Publicado em: (2007)
article Implementing an openMP-like standard with AspectJ
por: Medeiros, Bruno Silvestre
Publicado em: (2013)
por: Medeiros, Bruno Silvestre
Publicado em: (2013)
article AOmpLib: an aspect library for large-scale multi-core parallel programming
por: Medeiros, Bruno Silvestre
Publicado em: (2013)
por: Medeiros, Bruno Silvestre
Publicado em: (2013)
article Towards a catalog of aspect-oriented refactorings
por: Monteiro, Miguel Pessoa
Publicado em: (2005)
por: Monteiro, Miguel Pessoa
Publicado em: (2005)
article Adding aspect-oriented features to MATLAB
por: Cardoso, João M. P.
Publicado em: (2006)
por: Cardoso, João M. P.
Publicado em: (2006)
article Understanding the impact of introducing Lambda expressions in Java Programs
por: Lucas, Walter
Publicado em: (2020)
por: Lucas, Walter
Publicado em: (2020)
article Shortcut fusion rules for the derivation of circular and higher-order programs
por: Pardo, Alberto
Publicado em: (2011)
por: Pardo, Alberto
Publicado em: (2011)
article Embedding attribute grammars and their extensions using functional zippers
por: Martins, Pedro
Publicado em: (2016)
por: Martins, Pedro
Publicado em: (2016)
article The visual programming environment ROBI for educational robotics
por: Galvão, Gustavo
Publicado em: (2022)
por: Galvão, Gustavo
Publicado em: (2022)
article Zipper-based modular and deforested computations
por: Martins, Pedro Miguel Ribeiro
Publicado em: (2015)
por: Martins, Pedro Miguel Ribeiro
Publicado em: (2015)
article An easy-to-use and flexible object-oriented framework for extended finite state machines
por: Lopes, Sérgio F.
Publicado em: (2012)
por: Lopes, Sérgio F.
Publicado em: (2012)
school Refactorings to evolve object-oriented systems with aspect-oriented concepts
por: Monteiro, Miguel Pessoa
Publicado em: (2005)
por: Monteiro, Miguel Pessoa
Publicado em: (2005)
article C++ é inadequado para ensinar OO
por: Monteiro, Miguel Pessoa
Publicado em: (2002)
por: Monteiro, Miguel Pessoa
Publicado em: (2002)
article Towards a green ranking for programming languages
por: Couto, Marco
Publicado em: (2017)
por: Couto, Marco
Publicado em: (2017)
article Value-focused investigation into programming languages affinity
por: Costa Neto, Alvaro
Publicado em: (2022)
por: Costa Neto, Alvaro
Publicado em: (2022)
article SPELLing out energy leaks: Aiding developers locate energy inefficient code
por: Pereira, Rui Alexandre Afonso
Publicado em: (2020)
por: Pereira, Rui Alexandre Afonso
Publicado em: (2020)
article Framework characteristics: a starting point for addressing reuse difficulties
por: Lopes, Sérgio F.
Publicado em: (2009)
por: Lopes, Sérgio F.
Publicado em: (2009)
article An object-oriented model for rapid prototyping of data path/control systems - a case study
por: Machado, Ricardo J.
Publicado em: (1999)
por: Machado, Ricardo J.
Publicado em: (1999)
article A verified VCGen based on dynamic logic: An exercise in meta-verification with Why3
por: Frade, M. J.
Publicado em: (2023)
por: Frade, M. J.
Publicado em: (2023)
article Matching objects without language extension
por: Visser, Joost
Publicado em: (2006)
por: Visser, Joost
Publicado em: (2006)
article Describing framework static structure : promoting interfaces with UML annotations
por: Lopes, Sérgio F.
Publicado em: (2006)
por: Lopes, Sérgio F.
Publicado em: (2006)
article Higher-order lazy functional slicing
por: Rodrigues, Nuno F.
Publicado em: (2007)
por: Rodrigues, Nuno F.
Publicado em: (2007)
assignment Point-free program transformation
por: Cunha, Alcino
Publicado em: (2004)
por: Cunha, Alcino
Publicado em: (2004)
school Greedy and dynamic programming by calculation
por: Pinho, Alexandre Mendonça
Publicado em: (2022)
por: Pinho, Alexandre Mendonça
Publicado em: (2022)
article ViralFP: a web application of viral fusion proteins
por: Moreira, Pedro
Publicado em: (2021)
por: Moreira, Pedro
Publicado em: (2021)
school Sensor fusion for impact detection in vehicles
por: Parpot, José Gabriel Correia Neves
Publicado em: (2023)
por: Parpot, José Gabriel Correia Neves
Publicado em: (2023)
assignment "Explosive" programming controlled by calculation
por: Oliveira, José Nuno Fonseca
Publicado em: (1998)
por: Oliveira, José Nuno Fonseca
Publicado em: (1998)
assignment Extending Object-Oriented Frameworks with Aspects for Enabling Automatic Support for Domain-Specic Modeling
por: Santos, André L.
Publicado em: (2007)
por: Santos, André L.
Publicado em: (2007)
school Domain-Oriented Reuse Interfaces for Object-Oriented Frameworks
por: Santos, André L.
Publicado em: (2009)
por: Santos, André L.
Publicado em: (2009)
article Framing program repair as code completion
por: Ribeiro, Francisco
Publicado em: (2022)
por: Ribeiro, Francisco
Publicado em: (2022)
article Support for automatic refactoring of business logic
por: Fernandes, Tiago B.
Publicado em: (2017)
por: Fernandes, Tiago B.
Publicado em: (2017)
article Models for the reverse engineering of Java/Swing applications
por: Saraiva, João Alexandre
Publicado em: (2006)
por: Saraiva, João Alexandre
Publicado em: (2006)
assignment Functional programming and program transformation with interaction nets
por: Mackie, Ian
Publicado em: (2005)
por: Mackie, Ian
Publicado em: (2005)
article Point-free program transformation
por: Cunha, Alcino
Publicado em: (2005)
por: Cunha, Alcino
Publicado em: (2005)
assignment Generalizing Hylo-shift
por: Pinto, Jorge Sousa
Publicado em: (2004)
por: Pinto, Jorge Sousa
Publicado em: (2004)
article An illustrative example of refactoring object-oriented source code with aspect-oriented mechanisms
por: Monteiro, Miguel Pessoa
Publicado em: (2008)
por: Monteiro, Miguel Pessoa
Publicado em: (2008)
Registos relacionados
-
article Multiple intermediate structure deforestation by shortcut fusion
por: Pardo, Alberto
Publicado em: (2016) -
school Java stream optimization through program fusion
por: Ribeiro, Francisco José Torres
Publicado em: (2018) -
article Shortcut fusion rules for the derivation of circular and higher-order monadic programs
por: Pardo, Alberto
Publicado em: (2009) -
article Reusable aspect-oriented implementations of concurrency patterns and mechanisms
por: Sobral, João Luís Ferreira
Publicado em: (2006) -
article A shortcut fusion rule for circular program calculation
por: Fernandes, João Paulo
Publicado em: (2007)