EDBT 2026 Demo / reviewers in the wild / expert
Roberto Ierusalimschy
dblp:90/4557
· DBLP profile ↗
24ranked-venue papers
4as first author
0since 2021 · last 2020
0000-0003-2263-4955ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 17 · 4 first-authorSystems, architecture and hardware · 4Computer networks · 2Applied, interdisciplinary, general and emerging computing · 1
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 · 86% Concurrent programming · 14% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Embedded and real-time systems · 100% |
Topics — the 5 heaviest of 6, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems › control operators
continuations |
0.1 | 1 | 2009 | Revisiting coroutines · ACM Trans. Program. Lang. Syst. 2009 |
Programming languages and type systems › control structures
control abstraction |
0.1 | 1 | 2009 | Revisiting coroutines · ACM Trans. Program. Lang. Syst. 2009 |
Programming languages and type systems › control operators
coroutines |
0.1 | 1 | 2009 | Revisiting coroutines · ACM Trans. Program. Lang. Syst. 2009 |
Concurrent programming › concurrency models
synchronous programming |
0.0 | 1 | 2013 | Safe system-level concurrency on resource-constrained nodes · SenSys 2013 |
Programming languages and type systems
control flow |
0.0 | 1 | 2009 | Revisiting coroutines · ACM Trans. Program. Lang. Syst. 2009 |
Methods — techniques the papers use, named apart from their topics
synchronous language design · 0.3compile-time analysis · 0.3operational semantics · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | Pallene: A companion language for Lua
Hugo Musso Gualandi, Roberto Ierusalimschy |
Sci. Comput. Program. | 2 |
| 2020 | Revisiting monitors
Renan Santos, Noemi de La Rocque Rodriguez, Roberto Ierusalimschy |
Sci. Comput. Program. | 3 |
| 2019 | A memory-bounded, deterministic and terminating semantics for the synchronous programming language Céu
Guilherme F. Lima, Rodrigo C. M. Santos, Roberto Ierusalimschy, Edward Hermann Haeusler, Francisco Sant'Anna |
J. Syst. Archit. | 3 |
| 2018 | A memory-bounded, deterministic and terminating semantics for the synchronous programming language CéuabstractCéu is a synchronous programming language for embedded soft real-time systems. It focuses on control-flow safety features, such as safe shared-memory concurrency and safe abortion of lines of execution, while enforcing memory bounded, deterministic, and terminating reactions to the environment. In this work, we present a small-step structural operational semantics for Céu and a proof that reactions have the properties enumerated above: that for a given arbitrary timeline of input events, multiple executions of the same program always react in bounded time and arrive at the same final finite memory state. Rodrigo C. M. Santos, Guilherme F. Lima, Francisco Sant'Anna, Roberto Ierusalimschy, Edward Hermann Haeusler |
LCTES | 4 |
| 2017 | The Design and Implementation of the Synchronous Language CÉUabstractC éU is a synchronous language targeting soft real-time systems. It is inspired by Esterel and has a simple semantics with fine-grain control over program execution. C éU uses an event-triggered notion of time that enables compile-time checks to detect conflicting concurrent statements, resulting in deterministic and concurrency-safe programs. We present the particularities of our design in comparison to Esterel, such as stack-based internal events, concurrency checks, safe integration with C, and first-class timers. We also present two implementation back ends: one aiming for resource efficiency and interoperability with C, and another as a virtual machine that allows remote reprogramming. Francisco Sant'Anna, Roberto Ierusalimschy, Noemi de La Rocque Rodriguez, Silvana Rossetto, Adriano Branco |
ACM Trans. Embed. Comput. Syst. | 2 |
| 2016 | Error reporting in Parsing Expression Grammars
André Murbach Maidl, Fabio Mascarenhas, Sérgio Medeiros 0001, Roberto Ierusalimschy |
Sci. Comput. Program. | 4 |
| 2015 | A formalization of typed luaabstractProgrammers often migrate from a dynamically typed to a statically typed language when their simple scripts evolve into complex programs. Optional type systems are one way of having both static and dynamic typing in the same language, while keeping its dynamically typed semantics. This makes evolving a program from dynamic to static typing a matter of describing the implied types that it is using and adding annotations to make those types explicit. Designing an optional type system for an existing dynamically typed language is challenging, as its types should feel natural to programmers that are already familiar with this language. In this work, we give a formal description of Typed Lua, an optional type system for Lua, with a focus on two of its novel type system features: incremental evolution of imperative record and object types that is both lightweight and type-safe, and projection types, a combination of flow typing, functions that return multiple values, and multiple assignment. While our type system is tailored to the features and idioms of Lua, its features can be adapted to other imperative scripting languages. André Murbach Maidl, Fabio Mascarenhas, Roberto Ierusalimschy |
DLS | 3 |
| 2015 | Terra: Flexibility and Safety in Wireless Sensor NetworksabstractTerra is a system for programming wireless sensor network (WSN) applications. It combines the use of configurable virtual machines with a reactive scripting language that can be statically analyzed to avoid unbounded execution and memory conflicts. This approach allows the flexibility of remotely uploading code on motes to be combined with a set of guarantees for the programmer. The choice of the specific set of components in a virtual machine configuration defines the abstraction level seen by the application script. We describe a specific component library built for Terra, which we designed taking into account the functionality commonly needed in WSN applications—typically for sense and control. We also discuss the programming environment resulting from the combination of a statically analyzable scripting language with this library of components. Finally, we evaluate Terra by measuring its overhead in a basic application and discussing its use and cost in a typical monitoring WSN scenario. Adriano Branco, Francisco Sant'Anna, Roberto Ierusalimschy, Noemi de La Rocque Rodriguez, Silvana Rossetto |
ACM Trans. Sens. Networks | 3 |
| 2014 | Scriptable operating systems with LuaabstractExtensible operating system is a design based on the idea that operating systems can be adapted to meet user requirements by allowing user extensions. In a different scenario, that of application development, there is a paradigm that supports that complex systems should allow users to write scripts to tailor an application to their needs. In this paper we propose the concept of scriptable operating system, which applies scripting development paradigm to the concept of extensible operating systems. Scriptable operating systems support that operating systems can adequately provide extensibility by allowing users to script their kernel. We also present an implementation of a kernel-scripting environment that allows users to dynamically extend Linux and NetBSD operating systems using the scripting language Lua. To evaluate this environment, we extended both OS kernels to allow users to script CPU frequency scaling and network packet filtering using Lua. Lourival Vieira Neto, Roberto Ierusalimschy, Ana Lúcia de Moura, Marc Balmer |
DLS | 2 |
| 2014 | A survey of support for structured communication in concurrency control models
Alexandre Skyrme, Noemi de La Rocque Rodriguez, Roberto Ierusalimschy |
J. Parallel Distributed Comput. | 3 |
| 2014 | On the relation between context-free grammars and parsing expression grammars
Fabio Mascarenhas, Sérgio Medeiros 0001, Roberto Ierusalimschy |
Sci. Comput. Program. | 3 |
| 2014 | From regexes to parsing expression grammars
Sérgio Medeiros 0001, Fabio Mascarenhas, Roberto Ierusalimschy |
Sci. Comput. Program. | 3 |
| 2014 | Left recursion in Parsing Expression Grammars
Sérgio Medeiros 0001, Fabio Mascarenhas, Roberto Ierusalimschy |
Sci. Comput. Program. | 3 |
| 2013 | Safe system-level concurrency on resource-constrained nodesabstractDespite the continuous research to facilitate WSNs development, most safety analysis and mitigation efforts in concurrency are still left to developers, who must manage synchronization and shared memory explicitly. In this paper, we present a system language that ensures safe concurrency by handling threats at compile time, rather than at runtime. Based on the synchronous programming model, our design allows for a simple reasoning about concurrency that enables compile-time analysis resulting in deterministic and memory-safe programs. As a trade-off, our design imposes limitations on the language expressiveness, such as doing computationally-intensive operations and meeting hard real-time responsiveness. To show that the achieved expressiveness and responsiveness is sufficient for a wide range of WSN applications, we implement widespread network protocols and the CC2420 radio driver. The implementations show a reduction in source code size, with a penalty of memory increase below 10% in comparison to nesC. Overall, we ensure safety properties for programs relying on high-level control abstractions that also lead to concise and readable code. Francisco Sant'Anna, Noemi de La Rocque Rodriguez, Roberto Ierusalimschy, Olaf Landsiedel, Philippas Tsigas |
SenSys | 3 |
| 2009 | A text pattern-matching tool based on Parsing Expression GrammarsabstractAbstract Current text pattern‐matching tools are based on regular expressions. However, pure regular expressions have proven too weak a formalism for the task: many interesting patterns either are difficult to describe or cannot be described by regular expressions. Moreover, the inherent non‐determinism of regular expressions does not fit the need to capture specific parts of a match. Motivated by these reasons, most scripting languages nowadays use pattern‐matching tools that extend the original regular‐expression formalism with a set of ad hoc features, such as greedy repetitions, lazy repetitions, possessive repetitions, ‘longest‐match rule,’ lookahead, etc. These ad hoc extensions bring their own set of problems, such as lack of a formal foundation and complex implementations. In this paper, we propose the use of Parsing Expression Grammars (PEGs) as a basis for pattern matching. Following this proposal, we present LPEG, a pattern‐matching tool based on PEGs for the Lua scripting language. LPEG unifies the ease of use of pattern‐matching tools with the full expressive power of PEGs. Because of this expressive power, it can avoid the myriad of ad hoc constructions present in several current pattern‐matching tools. We also present a Parsing Machine that allows a small and efficient implementation of PEGs for pattern matching. Copyright © 2008 John Wiley & Sons, Ltd. Roberto Ierusalimschy |
Softw. Pract. Exp. | 1 |
| 2009 | Revisiting coroutinesabstractThis article advocates the revival of coroutines as a convenient general control abstraction. After proposing a new classification of coroutines, we introduce the concept of full asymmetric coroutines and provide a precise definition for it through an operational semantics. We then demonstrate that full coroutines have an expressive power equivalent to one-shot continuations and one-shot delimited continuations. We also show that full asymmetric coroutines and one-shot delimited continuations have many similarities, and therefore present comparable benefits. Nevertheless, coroutines are easier implemented and understood, especially in the realm of procedural languages. Ana Lúcia de Moura, Roberto Ierusalimschy |
ACM Trans. Program. Lang. Syst. | 2 |
| 2008 | A parsing machine for PEGsabstractParsing Expression Grammar (PEG) is a recognition-based foundation for describing syntax that renewed interest in top-down parsing approaches. Generally, the implementation of PEGs is based on a recursive-descent parser, or uses a memoization algorithm. We present a new approach for implementing PEGs, based on a virtual parsing machine, which is more suitable for pattern matching. Each PEG has a corresponding program that is executed by the parsing machine, and new programs are dynamically created and composed. The virtual machine is embedded in a scripting language and used by a patternmatching tool. We give an operational semantics of PEGs used for pattern matching, then describe our parsing machine and its semantics. We show how to transform PEGs to parsing machine programs, and give a correctness proof of our transformation. Sérgio Medeiros 0001, Roberto Ierusalimschy |
DLS | 2 |
| 2002 | ALua: flexibility for parallel programming
Cristina D. Ururahy, Noemi de La Rocque Rodriguez, Roberto Ierusalimschy |
Comput. Lang. Syst. Struct. | 3 |
| 1999 | Dynamic Extension of CORBA Servers
Marco Catunda, Noemi de La Rocque Rodriguez, Roberto Ierusalimschy |
Euro-Par | 3 |
| 1999 | Dynamic Reconfiguration of CORBA-Based Applications
Noemi de La Rocque Rodriguez, Roberto Ierusalimschy |
SOFSEM | 2 |
| 1996 | Lua-An Extensible Extension LanguageabstractThis paper describes Lua, a language for extending applications. Lua combines procedural features with powerful data description facilities, by using a simple, yet powerful, mechanism of tables . This mechanism implements the concepts of records, arrays and recursive data types (pointers), and adds some object-oriented facilities, such as methods with dynamic dispatching. Lua presents a mechanism of fallbacks that allows programmers to extend the semantics of the language in some unconventional ways. As a noteworthy example, fallbacks allow the user to add different kinds of inheritance to the language. Currently, Lua is being extensively used in production for several tasks, including user configuration, general-purpose data-entry, description of user interfaces, storage of structured graphical metafiles, and generic attribute configuration for finite element meshes. Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes Filho |
Softw. Pract. Exp. | 1 |
| 1995 | Side-Effect Free Functions in Object-Oriented Languages
Roberto Ierusalimschy, Noemi de La Rocque Rodriguez |
Comput. Lang. | 1 |
| 1993 | A Denotational Approach for Type-Checking in Object-Oriented Programming Languages
Roberto Ierusalimschy |
Comput. Lang. | 1 |
| 1993 | Application Integration: Constructing Composite Applications from Interactive ComponentsabstractAbstract Creating new applications by integrating user interface and application components is a relatively new idea which is currently of wide interest. A significant part of this problem is clearly defining the separation between user interface and application components. This paper proposes a new design methodology based on the concept of an abstract data view (ADV), a structuring method which cleanly defines this separation. A number of examples of composite interactive documents, ones which could contain several different user interfaces with entities such as text, calculations, drawings and possibly even multi‐media presentations, illustrate the ADV concept. These examples lead naturally to the introduction of the concept ofhole, a user interface area in a composite interactive document which is managed by an external program, and uses ADVs. Prototypes of a number of systems supporting ADVs and holes are currently running in our laboratory. Donald D. Cowan, Terry M. Stepien, Roberto Ierusalimschy, Carlos José Pereira de Lucena |
Softw. Pract. Exp. | 3 |