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
Sobre

Sobre

João Saraiva é Professor Auxiliar no Departmento de Informática da Universidade do Minho em Braga, Portugal, e um investigador no  HASLab/INESC TEC. Ele obteve o grau de Mestre pela University do Minho em 1993 e o Doutoramento em Ciências da Computação pela Universidade de Utreque, Holanda em 1999. As suas maiores contribuições científicas são nas áreas de linguagens de programação, análise e transformação de programas  e na programação funcional.  Ele foi supervisor de 4 projetos de  PostDoc (financiados pela FCT), 8 projetos de doutoramento (5 concluidos e 3 em execução)  e mais de 30  teses de Mestrado  (Pos-Bologna). Ele publicou mais de 80  atigos científicos (scopus)  em conferências e revistas. Ele foi membro de mais de 60 comites de programa de eventos internacionais e ainda na avaliação de projetos de 5 agências científicas:  ANII (Uruguai), FRS-FNRS (Belgica), NWO (Holanda), FWF (Austria), e FCT (Portugal).

Ele tem experiências na participação e coordenação de projetos de investigação nas suas área de investigação, quer a nível nacional  (projectos financiados pela FCT: PURe, IVY, AMADEUS, CROSS, SSaaPP, AutoSeer, FATBIT, and GreenSwLab), quer a nível internacional com projetos financiados pela  EPSRC (UK), FLAD/NSF (USA) a pela União Europeia.

João Saraiva é um dos fundadores da pretigiada escola  verão  GTTSE - Grand Timely Topics in Software Engineering (inicialmente designada Generative and Transformational Techniques in Software Engineering), que co-organizou em  2005, 2007, 2009, 2011, and 2015 (volumes 4143, 5235, 6491, and 7680 of LNCS - Tutorial by Springer-Verlag) em  Braga. Ele foi o organizador principal  ETAPS'07, The European Joint Conferences on Theory and Practice of Software, em Braga em 2007,  e um membro do seu comité científico (2007-2012).

Tópicos
de interesse
Detalhes

Detalhes

  • Nome

    João Alexandre Saraiva
  • Cargo

    Investigador Coordenador
  • Desde

    01 novembro 2011
001
Publicações

2024

A large-scale empirical study on mobile performance: energy, run-time and memory

Autores
Rua, R; Saraiva, J;

Publicação
EMPIRICAL SOFTWARE ENGINEERING

Abstract
Software performance concerns have been attracting research interest at an increasing rate, especially regarding energy performance in non-wired computing devices. In the context of mobile devices, several research works have been devoted to assessing the performance of software and its underlying code. One important contribution of such research efforts is sets of programming guidelines aiming at identifying efficient and inefficient programming practices, and consequently to steer software developers to write performance-friendly code.Despite recent efforts in this direction, it is still almost unfeasible to obtain universal and up-to-date knowledge regarding software and respective source code performance. Namely regarding energy performance, where there has been growing interest in optimizing software energy consumption due to the power restrictions of such devices. There are still many difficulties reported by the community in measuring performance, namely in large-scale validation and replication. The Android ecosystem is a particular example, where the great fragmentation of the platform, the constant evolution of the hardware, the software platform, the development libraries themselves, and the fact that most of the platform tools are integrated into the IDE's GUI, makes it extremely difficult to perform performance studies based on large sets of data/applications. In this paper, we analyze the execution of a diversified corpus of applications of significant magnitude. We analyze the source-code performance of 1322 versions of 215 different Android applications, dynamically executed with over than 27900 tested scenarios, using state-of-the-art black-box testing frameworks with different combinations of GUI inputs. Our empirical analysis allowed to observe that semantic program changes such as adding functionality and repairing bugfixes are the changes more associated with relevant impact on energy performance. Furthermore, we also demonstrate that several coding practices previously identified as energy-greedy do not replicate such behavior in our execution context and can have distinct impacts across several performance indicators: runtime, memory and energy consumption. Some of these practices include some performance issues reported by the Android Lint and Android SDK APIs. We also provide evidence that the evaluated performance indicators have little to no correlation with the performance issues' priority detected by Android Lint. Finally, our results allowed us to demonstrate that there are significant differences in terms of performance between the most used libraries suited for implementing common programming tasks, such as HTTP communication, JSON manipulation, image loading/rendering, among others, providing a set of recommendations to select the most efficient library for each performance indicator. Based on the conclusions drawn and in the extension of the developed work, we also synthesized a set of guidelines that can be used by practitioners to replicate energy studies and build more efficient mobile software.

2023

Efficient Embedding of Strategic Attribute Grammars via Memoization

Autores
Macedo, JN; Rodrigues, E; Viera, M; Saraiva, J;

Publicação
Proceedings of the 2023 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation, PEPM 2023, Boston, MA, USA, January 16-17, 2023

Abstract

2023

Exploring Data Analysis and Visualization Techniques for Project Tracking: Insights from the ITC

Autores
Barrocas, AN; da Silva, AR; Saraiva, J;

Publicação
Quality of Information and Communications Technology - 16th International Conference, QUATIC 2023, Aveiro, Portugal, September 11-13, 2023, Proceedings

Abstract
Data analysis has emerged as a cornerstone in facilitating informed decision-making across myriad fields, in particular in software development and project management. This integrative practice proves instrumental in enhancing operational efficiency, cutting expenditures, mitigating potential risks, and delivering superior results, all while sustaining structured organization and robust control. This paper presents ITC, a synergistic platform architected to streamline multi-organizational and multi-workspace collaboration for project management and technical documentation. ITC serves as a powerful tool, equipping users with the capability to swiftly establish and manage workspaces and documentation, thereby fostering the derivation of invaluable insights pivotal to both technical and business-oriented decisions. ITC boasts a plethora of features, from support for a diverse range of technologies and languages, synchronization of data, and customizable templates to reusable libraries and task automation, including data extraction, validation, and document automation. This paper also delves into the predictive analytics aspect of the ITC platform. It demonstrates how ITC harnesses predictive data models, such as Random Forest Regression, to anticipate project outcomes and risks, enhancing decision-making in project management. This feature plays a critical role in the strategic allocation of resources, optimizing project timelines, and promoting overall project success. In an effort to substantiate the efficacy and usability of ITC, we have also incorporated the results and feedback garnered from a comprehensive user assessment conducted in 2022. The feedback suggests promising potential for the platform’s application, setting the stage for further development and refinement. The insights provided in this paper not only underline the successful implementation of the ITC platform but also shed light on the transformative impact of predictive analytics in information systems. © 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.

Teses
supervisionadas

2022

On the performance of Strategic Attribute Grammars

Autor
José Emanuel Silva Rodrigues

Instituição
UM

2022

Comparação de plataformas low-code

Autor
Mariana Gonçalves Marques

Instituição
UM

2022

Automatic generation of program executions

Autor
José Nuno Castro de Macedo

Instituição
UM

2022

Browser Energy Efficiency in Android

Autor
Nelson Adriano Sequeira Gonçalves

Instituição
UM

2022

Green Software in the Large: Energy-driven Techniques, Tools and Repositories

Autor
Rui António Ramada Rua

Instituição
UM