VLDB 2026 Research / reviewers in the wild / expert
Ricardo Peña-Marí
dblp:p/RicardoPenaMari · also Ricardo Pena, Ricardo Peña
· DBLP profile ↗
22ranked-venue papers
3as first author
0since 2021 · last 2020
0000-0001-5387-8931ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 18 · 2 first-authorTheory of computation · 10 · 1 first-authorArtificial intelligence and machine learning · 1 · 1 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
2 papers |
Programming languages and type systems · 64% Program analysis · 18% Program verification · 18% |
Topics — the 3 heaviest of 5, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems › language implementation
abstract machines |
0.2 | 1 | 2014 | A resource semantics and abstract machine for Safe: A functional language with regions and explicit deallocation · Inf. Comput. 2014 |
Program analysis
resource analysis |
0.1 | 1 | 2011 | Certification of Safe Polynomial Memory Bounds · FM 2011 |
Programming languages and type systems
functional language |
0.1 | 1 | 2014 | A resource semantics and abstract machine for Safe: A functional language with regions and explicit deallocation · Inf. Comput. 2014 |
Methods — techniques the papers use, named apart from their topics
polynomial memory bounds · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | An Assertional Proof of Red-Black Trees Using Dafny
Ricardo Peña-Marí |
J. Autom. Reason. | 1 |
| 2020 | Extending Liquid Types to ArraysabstractA liquid type is an ordinary Hindley-Milner type annotated with a logical predicate that states the properties satisfied by the elements of that type. Liquid types are a powerful tool for program verification, as programmers can use them to specify pre- and post conditions of their programs, whereas the predicates of intermediate variables and auxiliary functions are inferred automatically. Type inference is feasible in this context, as the logical predicates within liquid types are constrained to a quantifier-free logic to maintain decidability. In this article, we extend liquid types by allowing them to contain quantified properties on arrays so that they can be used to infer invariants on array-related programs (e.g., implementations of sorting algorithms). Although quantified logic is, in general, undecidable, we restrict properties on arrays to a decidable subset introduced by Bradley et al. We describe in detail the extended type system, the verification condition generator, and the iterative weakening algorithm for inferring invariants. After proving the correctness and completeness of these two algorithms, we apply them to find invariants on a set of algorithms involving array manipulations. Manuel Montenegro, Susana Nieva, Ricardo Peña-Marí, Clara Segura |
ACM Trans. Comput. Log. | 3 |
| 2017 | Liquid Types for Array Invariant Synthesis
Manuel Montenegro, Susana Nieva, Ricardo Peña-Marí, Clara Segura |
ATVA | 3 |
| 2015 | A Generic Intermediate Representation for Verification Condition Generation
Manuel Montenegro, Ricardo Peña-Marí, Jaime Sánchez-Hernández |
LOPSTR | 2 |
| 2015 | Editorial of Special Issue Trends in Functional Programming 2011/12
Hans-Wolfgang Loidl, Ricardo Peña-Marí |
Comput. Lang. Syst. Struct. | 2 |
| 2015 | Shape analysis in a functional language by using regular languages
Manuel Montenegro, Ricardo Peña-Marí, Clara Segura |
Sci. Comput. Program. | 2 |
| 2015 | Space consumption analysis by abstract interpretation: Inference of recursive functions
Manuel Montenegro, Ricardo Peña-Marí, Clara Segura |
Sci. Comput. Program. | 2 |
| 2015 | Space consumption analysis by abstract interpretation: Reductivity properties
Manuel Montenegro, Ricardo Peña-Marí, Clara Segura |
Sci. Comput. Program. | 2 |
| 2014 | A resource semantics and abstract machine for Safe: A functional language with regions and explicit deallocation
Manuel Montenegro, Ricardo Peña-Marí, Clara Segura |
Inf. Comput. | 2 |
| 2013 | Shape analysis in a functional language by using regular languagesabstractShape analysis is concerned with the compile-time determination of the 'shape' the heap may take at runtime, meaning by this the pointer chains that may happen within, and between, the data structures built by the program. This includes detecting alias and sharing between the program variables. Manuel Montenegro, Ricardo Peña-Marí, Clara Segura |
PPDP | 2 |
| 2011 | Certification of Safe Polynomial Memory Bounds
Javier de Dios, Ricardo Peña-Marí |
FM | 2 |
| 2010 | Certified Absence of Dangling Pointers in a Language with Explicit Deallocation
Javier de Dios, Manuel Montenegro, Ricardo Peña-Marí |
IFM | 3 |
| 2009 | A Certified Implementation on Top of the Java Virtual Machine
Javier de Dios, Ricardo Peña-Marí |
FMICS | 2 |
| 2009 | From natural semantics to C: A formal derivation of two STG machinesabstractAbstract The Spineless Tag-less G-machine (STG machine) was defined as the target abstract machine for compiling the lazy functional language Haskell. It is at the heart of the Glasgow Haskell Compiler (GHC) which is claimed to be the Haskell compiler that generates the most efficient code. A high-level description of the STG machine can be found in Peyton Jones (In Journal of Functional programming, 2(2), 127–202, 1992), Marlow & Peyton Jones (In Sigplan Not., 39(9), 4–5, 2004), and Marlow & Peyton Jones (In Journal of Functional Programming, 16(4–5), 415–449, 2006). Should the reader be interested in a more detailed view, then the only additional information available is the Haskell code of GHC and the C code of its runtime system. It is hard to prove that this machine correctly implements the lazy semantics of Haskell. Part of the problem lies in the fact that the STG machine executes a bare-bones functional language, called STGL, much lower level than Haskell. Therefore, part of the correctness should be—and it is—established by showing that the translation from Haskell to STGL preserves Haskell's semantics. The other part involves showing that the STG machine correctly implements the lazy semantics of STGL. In this paper we provide a step-by-step formal derivation of the STG machine and of its compilation to C, starting from a natural semantics of STGL. Thus, our starting point is higher level than the descriptions found Peyton Jones (In Journal of Functional programming, 2(2), 127–202, 1992) and Marlow & Peyton Jones (In Sigplan Not., 39(9), 4–5, 2004), and our arrival point is lower level than those works. Additionally, there has been substantial changes between the so-called push/enter model of the STG machine described in Peyton Jones (In Journal of Functional programming, 2(2), 127–202, 1992), and the eval/apply model of the STG machine described in Marlow & Peyton Jones (In Sigplan Not., 39(9), 4–5, 2004). So, in fact, we derive two machines instead of one, starting from the same initial semantics. At each step we provide enough intuitions and explanations in order to understand the refinement, and then the formal definitions and statements proving that the derivation step is sound and complete. The main contribution of the paper is to show that an efficient machine such as the STG can be presented, understood, and formally reasoned about at different levels of abstraction. Alberto de la Encina, Ricardo Peña-Marí |
J. Funct. Program. | 2 |
| 2008 | An Inference Algorithm for Guaranteeing Safe Destruction
Manuel Montenegro, Ricardo Peña-Marí, Clara Segura |
LOPSTR | 2 |
| 2008 | A type system for safe memory management and its proof of correctnessabstractWe present a destruction-aware type system for the functional language Safe, which is a first-order eager language with facilities for programmer controlled destruction and copying of data structures. It provides also regions, i.e. disjoint parts of the heap, where the program allocates data structures. The runtime system does not need a garbage collector and all allocation/deallocation actions are done in constant time. Manuel Montenegro, Ricardo Peña-Marí, Clara Segura |
PPDP | 2 |
| 2005 | Parallel functional programming in EdenabstractEden extends the non-strict functional language Haskell with constructs to control parallel evaluation of processes. Although processes are defined explicitly, communication and synchronisation issues are handled in a way transparent to the programmer. In order to offer effective support for parallel evaluation, Eden's coordination constructs override the inherently sequential demand-driven (lazy) evaluation strategy of its computation language Haskell. Eden is a general-purpose parallel functional language suitable for developing sophisticated skeletons – which simplify parallel programming immensely – as well as for exploiting more irregular parallelism that cannot easily be captured by a predefined skeleton. The paper gives a comprehensive description of Eden, its semantics, its skeleton-based programming methodology – which is applied in three case studies – its implementation and performance. Furthermore it points at many additional results that have been achieved in the context of the Eden project. Rita Loogen, Yolanda Ortega-Mallén, Ricardo Peña-Marí |
J. Funct. Program. | 3 |
| 2005 | Non-determinism analyses in a parallel-functional languageabstractThe parallel-functional language Eden has a non-deterministic construct, the process abstraction merge, which interleaves a set of input lists to produce a single non-deterministic list. Its non-deterministic behaviour is a consequence of its reactivity: it immediately copies to the output list any value appearing at any of the input lists. This feature is essential in reactive systems and very useful in some deterministic parallel algorithms. The presence of non-determinism creates some problems such that some internal transformations in the compiler must be disallowed. The paper describes several non-determinism analyses developed for Eden aimed at detecting the parts of the program that, even in the presence of a process merge, still exhibit a deterministic behaviour. A polynomial cost algorithm which annotates Eden expressions is described in detail. A denotational semantics is described for Eden and the correctness of all the analyses is proved with respect to this semantics. Ricardo Peña-Marí, Clara Segura |
J. Funct. Program. | 1 |
| 2003 | Formally deriving an STG machineabstractStarting from P. Sestoft semantics for lazy evaluation, we define a new semantics in which normal forms consist of variables pointing to lambdas or constructions. This is in accordance with the more recent changes in the Spineless Tagless G-machine (STG) machine, where constructions only appear in closures (lambdas only appeared in closures already in previous versions). We prove the equivalence between the new semantics and Sestoft's. Then, a sequence of STG machines are derived, formally proving the correctness of each derivation. The last machine consists of a few imperative instructions and its distance to a conventional language is minimal.The paper also discusses the differences between the final machine and the actual STG machine implemented in the Glasgow Haskell Compiler. Alberto de la Encina, Ricardo Peña-Marí |
PPDP | 2 |
| 2001 | Parallel Functional Programming at Two Levels of AbstractionabstractThe parallel functional language Eden extends Haskell with expressions to define and instantiate process systems. These extensions allow also the easy definition of skeletons as higherorder functions. P arallel programming is possible in Eden at two levels: Recursive programming and higher-order programming. At the lower level, processes are explicitly created by using recursive definitions. In this way, skeletons can be defined. This is very un usual, as most skeleton-based languages use an imperative language to create new skeletons. At the higher level, available sk eletons are used to create applications or to define new skeletons on top of the other ones. In this paper, we present five skeletons, most of them wellkno wn, covering a wide range of parallel structures. F or each one, sev eral Eden implementations are given, together with their corresponding cost models. Finally, some examples of application programming are shown, including predicted and actual results on a Beowulf cluster. Ricardo Peña-Marí, Fernando Rubio 0001 |
PPDP | 1 |
| 1997 | The Eden Coordination Model for Distributed Memory SystemsabstractEden is a concurrent declarative language that aims at both the programming of reactive systems and parallel algorithms on distributed memory systems. In this paper, we explain the computation and coordination model of Eden. We show how lazy evaluation in the computation language is fruitfully combined with the coordination language that is specifically designed for multicomputers and that aims at maximum parallelism. Silvia Breitinger, Rita Loogen, Yolanda Ortega-Mallén, Ricardo Peña-Marí |
HIPS | 4 |
| 1996 | A New Look to Pattern Matching in Abstract Data TypesabstractIn this paper we present a construction smoothly integrating pattern matching with abstract data types. We review some previous proposals [19, 23, 20, 6, 1] and their drawbacks, and show how our proposal can solve them. In particular we pay attention to equational reasoning about programs containing this new facility. We also give its formal syntax and semantics, as well as some guidelines in order to compile the construction efficiently. Pedro Palao-Gostanza, Ricardo Peña-Marí, Manuel Núñez 0001 |
ICFP | 2 |