VLDB 2026 Research / reviewers in the wild / expert
Marcos Viera
dblp:34/5491
· DBLP profile ↗
14ranked-venue papers
5as first author
3since 2021 · last 2025
0000-0003-2291-6151ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 14 · 5 first-author · 3 since 2021Artificial intelligence and machine learning · 2Databases, data management, data science and information retrieval · 2Theory of computation · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Property-based Testing of Attribute GrammarsabstractSoftware 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. José Nuno Macedo, Marcos Viera, João Saraiva |
SLE | 2 |
| 2024 | pyZtrategic: A Zipper-Based Embedding of Strategies and Attribute Grammars in PythonabstractThis 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 |
ENASE | 3 |
| 2024 | Zipper-based embedding of strategic attribute grammarsabstractStrategic 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. | 3 |
| 2019 | Memoized zipper-based attribute grammars and their higher order extension
João Paulo Fernandes, Pedro Martins 0001, Alberto Pardo, João Saraiva, Marcos Viera |
Sci. Comput. Program. | 5 |
| 2018 | MateFun: Functional Programming and Math with AdolescentsabstractThe MateFun project arises with the intention of approaching disciplines that intersect in the field of education, based on the transversality of information and communication technologies with respect to Engineering, Communications, Psychology, Teaching and Pedagogy. In Uruguay, computer courses are increasingly being integrated into curricular content, since learning to program seems to be part of the skills needed for today's people. However, programming in general is absent in mathematics teaching, contrary to the inherent relationship of both. In turn, according to 2015 data from the Educational Monitor of the National Administration of Public Education of Uruguay, Mathematics is the least approved subject of the basic secondary cycle. MateFun is a functional programming language, accessible from a web application, especially aimed to math functions learning. It is intended that through MateFun the learning of programming strengthens the appropriation of the concept of mathematical function, at the same through this project we seek to generate scientific evidence of the transfer or the contributions of programming learning to math. Preliminary data show that the adolescents who experimented with MateFun had similar learning to the control group in mathematical functions, but they also acquired basic knowledge of functional programming. Alejandra Carboni, Víctor Koleszar, Gonzalo Tejera, Marcos Viera, Javier Wagner |
CLEI | 4 |
| 2018 | Model-Driven Development of an Interpreter for the Object Constraint LanguageabstractThe Object Constraint Language (OCL) plays a central role in many Model-Driven Engineering (MDE) initiatives for expressing invariant conditions in models, among other uses. It is defined as a side-effect free language combining model-oriented and functional features. There are works that explore the use of the functional paradigm for the interpretation of OCL such that most of the functional infrastructure could be predefined and automatically generated. In this work we present the MDE-based automatic generation of such functional infrastructure based on Haskell. We also present how the infrastructure is connected with the Eclipse Modeling Framework for final users, allowing the internal complexity to be transparent to them. We provide a different perspective on the interpretation of OCL, together with a sandbox that allows to evaluate in a unified way several proposals that already exist in the scientific community, as well as to collaborate with the migration of functional aspects to the MDE paradigm. Gonzalo Sintas, Leticia Vaz Lutz, Daniel Calegari, Marcos Viera |
CLEI | 4 |
| 2018 | An Internalist Approach to Correct-by-Construction CompilersabstractIn this paper we present a methodology to organize the construction of a correct compiler, taking advantage of the power of full dependently type systems. The basic idea consists in decorating the abstract syntax of languages with their semantics, allowing to express the correctness of the compiler at type level. We show our methodology in a first small example and then explore how it can be promoted to more realistic languages, realizing that our internalistic approach is feasible for defining a correct-by-construction compiler from an imperative language with conditional iteration to a stack based intermediate language. We also show how this methodology can be combined with the externalist approach, compiling from the intermediate language to an assembly-like low level code and separately proving its correctness. Alberto Pardo, Emmanuel Gunther, Miguel Pagano, Marcos Viera |
PPDP | 4 |
| 2015 | Compositional compiler construction: Oberon0
Marcos Viera, S. Doaitse Swierstra |
Sci. Comput. Program. | 1 |
| 2014 | Expand: Towards an Extensible Pandoc System
Jacco Krijnen, S. Doaitse Swierstra, Marcos Viera |
PADL | 3 |
| 2014 | Attribute grammar macros
Marcos Viera, S. Doaitse Swierstra |
Sci. Comput. Program. | 1 |
| 2013 | Just do it while compiling!: fast extensible records in haskellabstractThe library for strongly typed heterogeneous collections HList provides an implementation of extensible records in Haskell that needs only a few common extensions of the language. In HList, records are represented as linked lists of label-value pairs with a lookup operation that is linear-time in the number of fields. In this paper, we use type-level programming techniques to develop a more efficient representation of extensible records for HList. We propose two internal encodings for extensible records that improve lookup at runtime without needing a total order on the labels. One of the encodings performs lookup in constant time but at a cost of linear time insertion. The other one performs lookup in logarithmic time while preserving the fast insertion of simple linked lists. Through staged compilation, the required slow search for a field is moved to compile time in both cases. Bruno Martinez, Marcos Viera, Alberto Pardo |
PEPM | 2 |
| 2009 | Attribute grammars fly first-class: how to do aspect oriented programming in HaskellabstractAttribute Grammars (AGs), a general-purpose formalism for describing recursive computations over data types, avoid the trade-off which arises when building software incrementally: should it be easy to add new data types and data type alternatives or to add new operations on existing data types? However, AGs are usually implemented as a pre-processor, leaving e.g. type checking to later processing phases and making interactive development, proper error reporting and debugging difficult. Embedding AG into Haskell as a combinator library solves these problems. Marcos Viera, S. Doaitse Swierstra, Wouter Swierstra |
ICFP | 1 |
| 2008 | Haskell, do you read me?: constructing and composing efficient top-down parsers at runtimeabstractThe Haskell definition and implementation of read is far from perfect. In the first place read is not able to handle the associativities defined for infix operators. Furthermore, it puts constraints on the way show is defined, and especially forces it to generate far more parentheses than expected. Lastly, it may give rise to exponential parsing times. All this is due to the compositionality requirement for read functions, which imposes a top-down parsing strategy. Marcos Viera, S. Doaitse Swierstra, Eelco Lempsink |
Haskell | 1 |
| 2006 | A multi-stage language with intensional analysisabstractThis paper presents the definition of a language with reflection primitives. The language is a homogeneous multi-stage language that provides the capacity of code analysis by the inclusion of a pattern matching mechanism that permits inspection of the structure of quoted expressions and their destruction into component subparts. Quoted expressions include an explicit annotation of their context which is used for dynamic inference of type, where a dynamic typing discipline based on Hinze and Cheney's approach is used for typing quoted expressions.This paper follows the approach of Sheard and Pasalic about the use of the meta-language Ωmega as a tool for language design. In this sense, it is shown how to represent the syntax, the static as well as the dynamic semantics of the proposed language in terms of Ωmega constructs. Marcos Viera, Alberto Pardo |
GPCE | 1 |