Cookies
O website necessita de alguns cookies e outros recursos semelhantes para funcionar. Caso o permita, o INESC TEC irá utilizar cookies para recolher dados sobre as suas visitas, contribuindo, assim, para estatísticas agregadas que permitem melhorar o nosso serviço. Ver mais
Aceitar Rejeitar
  • Menu
Publicações

Publicações por João Alexandre Saraiva

2019

Paint Your Programs Green: On the Energy Efficiency of Data Structures

Autores
Pereira, R; Couto, M; Cunha, J; Melfe, G; Saraiva, J; Fernandes, JP;

Publicação
Composability, Comprehensibility and Correctness of Working Software - 8th Summer School, CEFP 2019, Budapest, Hungary, June 17-21, 2019, Revised Selected Papers

Abstract

2023

Paint Your Programs Green: On the Energy Efficiency of Data Structures

Autores
Pereira, R; Couto, M; Cunha, J; Melfe, G; Saraiva, J; Fernandes, JP;

Publicação
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

Abstract
This tutorial aims to provide knowledge on a different facet of efficiency in data structures: energy efficiency. As many recent studies have shown, the main roadblock in regards to energy efficient software development are the misconceptions and heavy lack of support and knowledge, for energy-aware development, that programmers have. Thus, this tutorial aims at helping provide programmers more knowledge pertaining to the energy efficiency of data structures. We conducted two in-depth studies to analyze the performance and energy efficiency of various data structures from popular programming languages: Haskell and Java. The results show that within the Haskell programming language, the correlation between performance and energy consumption is statistically almost identical, while there are cases with more variation within the Java language. We have presented which data structures are more efficient for common operations, such as inserting and removing elements or iterating over the data structure. The results from our studies can help support developers in better understanding such differences within data structures, allowing them to carefully choose the most adequate implementation based on their requirements and goals. We believe that such results will help further close the gap when discussing the lack of knowledge in energy efficient software development. © 2023, The Author(s), under exclusive license to Springer Nature Switzerland AG.

2023

GPT-3-Powered Type Error Debugging: Investigating the Use of Large Language Models for Code Repair

Autores
Ribeiro, F; de Macedo, JNC; Tsushima, K; Abreu, R; Saraiva, J;

Publicação
PROCEEDINGS OF THE 16TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON SOFTWARE LANGUAGE ENGINEERING, SLE 2023

Abstract
Type systems are responsible for assigning types to terms in programs. That way, they enforce the actions that can be taken and can, consequently, detect type errors during compilation. However, while they are able to flag the existence of an error, they often fail to pinpoint its cause or provide a helpful error message. Thus, without adequate support, debugging this kind of errors can take a considerable amount of effort. Recently, neural network models have been developed that are able to understand programming languages and perform several downstream tasks. We argue that type error debugging can be enhanced by taking advantage of this deeper understanding of the language's structure. In this paper, we present a technique that leverages GPT-3's capabilities to automatically fix type errors in OCaml programs. We perform multiple source code analysis tasks to produce useful prompts that are then provided to GPT-3 to generate potential patches. Our publicly available tool, Mentat, supports multiple modes and was validated on an existing public dataset with thousands of OCaml programs. We automatically validate successful repairs by using Quickcheck to verify which generated patches produce the same output as the user-intended fixed version, achieving a 39% repair rate. In a comparative study, Mentat outperformed two other techniques in automatically fixing ill-typed OCaml programs.

2023

Energy Efficient Software in an Engineering Course

Autores
Saraiva, J; Pereira, R;

Publicação
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

Abstract
Sustainable development has become an increasingly important theme not only in the world politics, but also an increasingly central theme for the engineering professions around the world. Software engineers are no exception as shown in various recent research studies. Despite the intensive research on green software, today’s undergraduate computing education often fails to address our environmental responsibility. In this paper, we present a module on energy efficient software that we introduced as part of an advanced course on software analysis and testing. In this module students study techniques and tools to analyze and optimize energy consumption of software systems. Preliminary results of the first four instances of this course show that students are able to optimize the energy consumption of software systems. © 2023, The Author(s), under exclusive license to Springer Nature Switzerland AG.

2023

Proceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering, SLE 2023, Cascais, Portugal, October 23-24, 2023

Autores
Saraiva, J; Degueule, T; Scott, E;

Publicação
SLE

Abstract

2019

Energy Efficient Software in an Engineering Course

Autores
Saraiva, J; Pereira, R;

Publicação
Composability, Comprehensibility and Correctness of Working Software - 8th Summer School, CEFP 2019, Budapest, Hungary, June 17-21, 2019, Revised Selected Papers

Abstract

  • 25
  • 28