SBLP is promoted by the Brazilian Computer Society since 1996 and provides a forum for researchers, students and professionals to present and discuss ideas and innovations in the design, definition, analysis, implementation and practical use of programming languages. Since 2010, SBLP has been organized in the context of CBSoft (Brazilian Conference on Software: Theory and Practice), together with other events on computer science and software engineering.
Proceeding Downloads
Towards automatic error recovery in parsing expression grammars
Error recovery is an essential feature for a parser that should be plugged in Integrated Development Environments (IDEs), which must build Abstract Syntax Trees (ASTs) even for syntactically invalid programs in order to offer features such as automated ...
Taskminer: automatic identification of tasks
This paper presents TaskMiner, a tool that automatically finds task parallelism in C code. TaskMiner solves classic problems of irregular parallelism, such as finding the memory ranges accessed by tasks, removing spurious static dependencies, detecting ...
Pallene: a statically typed companion language for lua
The simplicity and flexibility of dynamic languages make them popular for prototyping and scripting, but the lack of compile-time type information makes it very challenging to generate efficient executable code.
Inspired by ideas from scripting, just-in-...
More than meets the eye: invisible instructions
In modern software development, high-level languages are becoming progressively more feature-rich. The expressiveness and increased abstraction provided by these features allow programmers to be more productive and less concerned with low-level details. ...
AsyncRFJ: an asynchronous approach to reactive object-oriented programming
While the object-orientation is the most used paradigm for developing general purpose software systems, the use of reactive systems has been growing lately. One of the differences between them is that while the first offers an imperative style, the ...
Property-based testing for lambda expressions semantics in featherweight Java
The release of Java 8 represents one of the most significant updates to the Java language since its inception. The addition of λ-expressions allows the treatment of code as data in a compact way, improving the language expressivity. This paper addresses ...
Type inference for GADTs, outsidein and anti-unification
Support for generalized algebraic data types (GADT) in extensions of Haskell allows functions defined over GADTs to be written without the need for type annotations in some cases, but it requires type annotations in most of them. This paper presents a ...
Refactorings for replacing dynamic instructions with static ones: the case of ruby
- Elder Rodrigues,
- Rafael Serapilha Durelli,
- Raphael Winckler de Bettio,
- Leonardo Montecchi,
- Ricardo Terra
Dynamic features offered by programming languages provide greater flexibility to the programmer (e.g., dynamic constructions of classes and methods) and reduction of duplicate code snippets. However, the unnecessary use of dynamic features may detract ...
Towards certified virtual machine-based regular expression parsing
Regular expressions (REs) are pervasive in computing. We use REs in text editors, string search tools (like GNU-Grep) and lexical analysers generators. Most of these tools rely on converting regular expressions to its corresponding finite state machine ...
Revisiting monitors
Most current programming languages do not restrict the use of the concurrency primitives they provide, leaving it to the programmer to detect data races. In this paper, we revisit the monitor concept, which guards against data races by guaranteeing that ...
Evaluation of the impact on energy consumption of lazy versus strict evaluation of Haskell data-structures
Data processing is one of the most energy-consuming tasks of computing systems. For both environmental and economical reasons, it is necessary to optimize software programs to be more energy efficient. There has been a lazy versus strict evaluation ...
Towards progressive program verification in Dafny
Program verification is a tool for the development of software that is free from defects and satisfies its functional specification. It suffers from two issues that have already been addressed in the field of type systems. First, it has a rigid focus on ...
Index Terms
- Proceedings of the XXII Brazilian Symposium on Programming Languages