SEDCLOPLMar 1, 2016

A Graph-Based Semantics Workbench for Concurrent Asynchronous Programs

arXiv:1603.00307v15 citations
Originality Incremental advance
AI Analysis

This work addresses the problem of ensuring consistency and correctness in concurrent programming models for language designers and developers, though it is incremental as it builds on existing tools and focuses on a specific language.

The authors tackled the challenge of analyzing and comparing execution models for concurrent asynchronous programs, specifically in the SCOOP language, by developing a semantics workbench that identified a deadlock-related discrepancy between principal models.

A number of novel programming languages and libraries have been proposed that offer simpler-to-use models of concurrency than threads. It is challenging, however, to devise execution models that successfully realise their abstractions without forfeiting performance or introducing unintended behaviours. This is exemplified by SCOOP---a concurrent object-oriented message-passing language---which has seen multiple semantics proposed and implemented over its evolution. We propose a "semantics workbench" with fully and semi-automatic tools for SCOOP, that can be used to analyse and compare programs with respect to different execution models. We demonstrate its use in checking the consistency of semantics by applying it to a set of representative programs, and highlighting a deadlock-related discrepancy between the principal execution models of the language. Our workbench is based on a modular and parameterisable graph transformation semantics implemented in the GROOVE tool. We discuss how graph transformations are leveraged to atomically model intricate language abstractions, and how the visual yet algebraic nature of the model can be used to ascertain soundness.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes