Debido al alto tráfico generado por robots, aplicamos límites en el número de peticiones permitidas por cliente y bloqueos por IP automáticos. Si haces un uso legítimo y estás teniendo problemas, avísanos para reevaluar nuestras políticas de bloqueo. Disculpa las molestias.

Artículo:
A Declarative Debugger for Concurrent Erlang Programs

Autores

Caballero, Rafael
Martin-Martin, Enrique
Riesco, Adrián
Tamarit, Salvador

Editor

Sistedes

Publicado en

Actas de las XV Jornadas de Programación y Lenguajes (PROLE 2015)

Licencia

All rights reserved to their respective owners

Resumen

Erlang is a concurrent language with features such as actor model concurrency, no shared memory, message passing communication, high scalability and availability. However, the development of concurrent programs is a complex and error prone task. In this paper we present a declarative debugging approach for concurrent Erlang programs. Our debugger asks questions about the validity of transitions between the different points of the program that involve message passing and/or process creation. The answers, which represent the intended behavior of the program, are compared with the transitions obtained in an actual execution of the program. The differences allow us to detect program errors and to point out the pieces of source code responsible for the bugs. In order to represent the computations we present a semantic calculus for concurrent Core Erlang programs. The debugger uses the proof trees in this calculus as debugging trees used for selecting the questions asked to the user. The relation between the debugging trees and the semantic calculus allows us to establish the soundness of the approach. The theoretical ideas have been implemented in a debugger prototype.

Descripción

Acerca de Caballero, Rafael

Palabras clave

Concurrency, Declarative Debugging, Erlang, Semantics

Citación

Caballero, R., Martin-Martin, E., Riesco, A., Tamarit, S.: A Declarative Debugger for Concurrent Erlang Programs. In: Navarro, M. (ed.) Actas de las XV Jornadas de Programación y Lenguajes (PROLE 2015). Sistedes (2015). https://hdl.handle.net/11705/PROLE/2015/016