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.
In order to check the correctness of Transactional Memory (TM) systems, a formal description of the implementations guarantees is necessary. There are many consistency conditions for TM, one of the most common is opacity. In this paper we present a ...
Featherweight Java is one of the most popular calculi which specify object-oriented programming features. It has been used as the basis for investigating novel language functionalities, as well as to specify and understand the formal properties of ...
The extraction of high-level information from binary code is an important problem in programming languages, whose solution supports the detection of malware in binary code and the construction of dynamic program slices. The Control Flow Graph is one of ...
Several image manipulation tools support the use of at least one general scripting language (e.g., Python, JavaScript), for task automation. But, users of such tools usually do not have much experience or skill with these (or often any) programming ...
In this paper, we show how stream fusion, a program transformation technique used in functional programming, can be adapted for an Object-Oriented setting. This makes it possible to have more Stream operators than the ones currently provided by the Java ...
Halide is a domain-specific language (DSL) for image processing that enforces a separation of the algorithm and the execution schedule, allowing the generation of specialized code for distinct computer architectures by rewriting only the execution ...
This paper presents TensorSafe, a dependently typed Haskell library which makes possible the definition and structural validation of deep neural networks architectures. Nowadays, the development process of deep learning models has been notably ...
Structured parallel programming has been studied and applied in several programming languages. This approach has proven to be suitable for abstracting low-level and architecture-dependent parallelism implementations. Our goal is to provide a structured ...
Compilers are usually distributed with a test framework. This framework supports the task of tuning optimizations and static analyses. As an example, clang has a test suite that, in March 2019, counted 259 benchmarks. Although in principle a large ...
We describe the formalization of a type system for parsing expression grammars (PEG) which is equivalent to Ford's original fixpoint-based definition of well-formed PEGs. We use our type system definition to implement a functional big-step semantics for ...