Roberto Ierusalimschy

dblp:90/4557 · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Programming languages and type systems › control operators
continuations
0.112009
Revisiting coroutines · ACM Trans. Program. Lang. Syst. 2009
Programming languages and type systems › control structures
control abstraction
0.112009
Revisiting coroutines · ACM Trans. Program. Lang. Syst. 2009
Programming languages and type systems › control operators
coroutines
0.112009
Revisiting coroutines · ACM Trans. Program. Lang. Syst. 2009
Concurrent programming › concurrency models
synchronous programming
0.012013
Safe system-level concurrency on resource-constrained nodes · SenSys 2013
Programming languages and type systems
control flow
0.012009
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
YearPublicationVenuePosition
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éu
abstract
Cé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
LCTES4
2017 The Design and Implementation of the Synchronous Language CÉU
abstract
C é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 lua
abstract
Programmers 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
DLS3
2015 Terra: Flexibility and Safety in Wireless Sensor Networks
abstract
Terra 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. Networks3
2014 Scriptable operating systems with Lua
abstract
Extensible 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
DLS2
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 nodes
abstract
Despite 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
SenSys3
2009 A text pattern-matching tool based on Parsing Expression Grammars
abstract
Abstract 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 coroutines
abstract
This 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 PEGs
abstract
Parsing 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
DLS2
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-Par3
1999 Dynamic Reconfiguration of CORBA-Based Applications
Noemi de La Rocque Rodriguez, Roberto Ierusalimschy
SOFSEM2
1996 Lua-An Extensible Extension Language
abstract
This 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 Components
abstract
Abstract 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