Emanuel Rodrigues

dblp:337/5508 · DBLP profile ↗
← Back
4ranked-venue papers
2as first author
4since 2021 · last 2026
0000-0003-4317-1144ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 3 · 2 first-author · 3 since 2021Artificial intelligence and machine learning · 1 · 1 since 2021Databases, data management, data science and information retrieval · 1 · 1 since 2021
YearPublicationVenuePosition
2026 Ztrategic: Libraries and Tools For Software Language Specification, Transformation, and Testing
abstract
This tool paper presents the Ztrategic framework, which integrates strategic term rewriting and attributes grammars through a unifying navigation abstraction based on functional zippers. The resulting zipper-based embedding is both concise and expressive, integrating the strengths of both formalisms. Together, these mechanisms serve as foundational building blocks for Ztrategic for supporting property-based testing in language engineering.
Emanuel Rodrigues, José Nuno Macedo, João Saraiva
SLE1
2025 A Microservice-Based Architecture for Real-Time Credit Card Fraud Detection with Observability
Robson S. Santos, Robesvânia Araújo, Paulo A. L. Rego, José M. da S. M. Filho, Jarélio G. da S. Filho, José D. C. Neto, Nicksson C. A. Freitas, Emanuel Rodrigues, Francisco A. A. Gomes, Fernando A. M. Trinta
DATA8
2024 pyZtrategic: A Zipper-Based Embedding of Strategies and Attribute Grammars in Python
abstract
This paper presents pyZtrategic: a library that embeds strategic term rewriting and attribute grammars in the Python programming language. Strategic term rewriting and attribute grammars are two powerful programming techniques widely used in language engineering: The former relies on strategies to apply term rewrite rules in defining large-scale language transformations, while the latter is suitable to express context-dependent language processing algorithms. Thus, pyZtrategic offers Python programmers recursion schemes (strategies) which apply term rewrite rules in defining large scale language transformations. It also offers attribute grammars to express context-dependent language processing algorithms. PyZtrategic offers the best of those two worlds, thus providing powerful abstractions to express software maintenance and evolution tasks. Moreover, we developed several language engineering problems in pyZtrategic, and we compare it to well established strategic programming and attribute grammar systems. Our preliminary results show that our library offers similar expressiveness as such systems, but, unfortunately, it does suffer from the current poor runtime performance of the Python language.
Emanuel Rodrigues, José Nuno Macedo, Marcos Viera, João Saraiva
ENASE1
2024 Zipper-based embedding of strategic attribute grammars
abstract
Strategic term re-writing and attribute grammars are two powerful programming techniques widely used in language engineering. The former relies on strategies to apply term re-write rules in defining large-scale language transformations, while the latter is suitable to express context-dependent language processing algorithms. These two techniques can be expressed and combined via a powerful navigation abstraction: generic zippers. This results in a concise zipper-based embedding offering the expressiveness of both techniques. In addition, we increase the functionalities of strategic programming, enabling the definition of outwards traversals; i.e. outside the starting position. Such elegant embedding has a severe limitation since it recomputes attribute values. This paper presents a proper and efficient embedding of both techniques. First, attribute values are memoized in the zipper data structure, thus avoiding their re-computation. Moreover, strategic zipper based functions are adapted to access such memoized values. We have hosted our memoized zipper-based embedding of strategic attribute grammars both in the Haskell and Python programming languages. Moreoever, we benchmarked the libraries supporting both embedding against the state-of-the-art Haskell-based Strafunski and Scala-based Kiama libraries. The first results show that our Haskell Ztrategic library is very competitive against those two well established libraries.
José Nuno Macedo, Emanuel Rodrigues, Marcos Viera, João Saraiva
J. Syst. Softw.2