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

2026

“It Makes the Code Clearer”: Why Developers Adopt ModernPython Features in Open Source Projects

Autores
Mendonça, W; Leite, M; Romeiro, O; Carvalho, F; Bonifácio, R; Monteiro, E; Pinto, G; Accioly, P; Saraiva, J;

Publicação

Abstract
Python has become one of the most widely used programming languages, yet the transition fromPython 2 to 3 introduced a tension between innovation and compatibility. While new featuressuch as formatted string literals, type annotations, and structural pattern matching expanded thelanguage’s expressiveness, they also required substantial adaptation of legacy code. Despite theincreasing relevance of these features, there is still limited empirical evidence on how modernPython features are being adopted in practice—when developers start using them, how adoptionunfolds over time, and what motivations drive these decisions. This paper addresses this gapthrough a large-scale empirical study of 424 open-source Python projects. Our analysis revealstwo distinct adoption patterns: rapid adoption of small syntactic improvements and slowerintegration of features that require extensive refactoring or ecosystem support. On average,projects begin using with new features within 16 months after their release but take roughly 4years to achieve broader and sustained adoption. This observation may be partially explainedby the transition from Python 2 to 3, which did not preserve full backward compatibility.Complementary qualitative evidence from pull-request discussions indicates that developers areprimarily motivated to rejuvenate Python code through improvements in comprehension, safety,and performance, yet often constrained by compatibility requirements and maintenance costs.Together, these findings offer practical insights for tool developers and maintainers seeking tobalance innovation and stability in the ongoing rejuvenation of Python source code.

2025

Property-based Testing of Attribute Grammars

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

Publicação
PROCEEDINGS OF SLE 2025 18TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON SOFTWARE LANGUAGE ENGINEERING, SLE 2025

Abstract
Software testing is an integral part of modern software development. Testing frameworks are part of the toolset of any software language allowing programmers to test their programs in order to detect bugs. Unfortunately, there is no work on testing in attribute grammars. In this paper we combine the powerful property-based testing technique with the attribute grammar formalism. In such property-based attribute grammars, properties are defined on attribute instances. Properties are tested on large sets of randomly generated (abstract syntax) trees by evaluating their attributes. We present an implementation that relies on strategies to express property-based attribute grammars. Strategies are tree-based recursion patterns that are used to encode logic quantifiers defining the properties.

2025

Is There Hypothesis for Attribute Grammars?

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

Publicação
Programming

Abstract

2025

Greening AI-enabled Systems with Software Engineering: A Research Agenda for Environmentally Sustainable AI Practices

Autores
Cruz, L; Fernandes, JP; Kirkeby, MH; Fernández, SM; Sallou, J; Anwar, H; Roque, EB; Bogner, J; Castaño, J; Castor, F; Chasmawala, A; Cunha, S; Feitosa, D; González, A; Jedlitschka, A; Lago, P; Muccini, H; Oprescu, A; Rani, P; Saraiva, J; Sarro, F; Selvan, R; Vaidhyanathan, K; Verdecchia, R; Yamshchikov, IP;

Publicação
CoRR

Abstract
The environmental impact of Artificial Intelligence (AI)-enabled systems is increasing rapidly, and software engineering plays a critical role in developing sustainable solutions. The ''Greening AI with Software Engineering'' workshop,1 funded by the Centre Europ´een de Calcul Atomique et Mol´eculaire (CECAM) and the Lorentz Center, provided an interdisciplinary forum for 29 participants, from practitioners to academics, to share knowledge, ideas, practices, and current results dedicated to advancing green software and AI research. The workshop was held February 3-7, 2025, in Lausanne, Switzerland. Through keynotes, flash talks, and collaborative discussions, participants identified and prioritized key challenges for the field. These included energy assessment and standardization, benchmarking practices, sustainability-aware architectures, runtime adaptation, empirical methodologies, and education. This report presents a research agenda emerging from the workshop, outlining open research directions and practical recommendations to guide the development of environmentally sustainable AI-enabled systems rooted in software engineering principles.

2025

Understanding the adoption of modern Javascript features: An empirical study on open-source systems

Autores
Lucas, W; Nunes, R; Bonifácio, R; Carvalho, F; Lima, R; Silva, M; Torres, A; Accioly, P; Monteiro, E; Saraiva, J;

Publicação
EMPIRICAL SOFTWARE ENGINEERING

Abstract
JavaScript is a widely used programming language initially designed to make the Web more dynamic in the 1990s. In the last decade, though, its scope has extended far beyond the Web, finding utility in backend development, desktop applications, and even IoT devices. To circumvent the needs of modern programming, JavaScript has undergone a remarkable evolution since its inception, with the groundbreaking release of its sixth version in 2015 (ECMAScript 6 standard). While adopting modern JavaScript features promises several benefits (such as improved code comprehension and maintenance), little is known about which modern features of the language have been used in practice (or even ignored by the community). To fill this gap, in this paper, we report the results of an empirical study that aims to understand the adoption trends of modern JavaScript features, and whether or not developers conduct rejuvenation efforts to replace legacy JavaScript constructs and idioms with modern ones in legacy systems. To this end, we mined the source code history of 158 JavaScript open-source projects, identified contributions to rejuvenate legacy code, and used time series to characterize the adoption trends of modern JavaScript features. The results of our study reveal extensive use of JavaScript modern features which are present in more than 80% of the analyzed projects. Our findings also reveal that (a) the widespread adoption of modern features happened between one and two years after the release of ES6 and, (b) a consistent trend toward increasing the adoption of modern JavaScript language features in open-source projects and (c) large efforts to rejuvenate the source code of their programs.