• Corpus ID: 242757204

A thread-safe Term Library

  title={A thread-safe Term Library},
  author={Jan Friso Groote and Maurice Laveaux and P.H.M. van Spaendonck},
Terms are one of the fundamental data structures for computing. E.g. every expression characterisable by a context free grammar is a term. Remarkably, terms are not yet standard in common programming languages although term libraries have already been proposed in the 1990-ies. We developed a thread-safe Term Library. The biggest challenge is to implement hyperefficient multi-reader/single writer mutual exclusion for which we designed the new busyforbidden protocol. Model checking is used to… 


Generator of efficient strongly typed abstract syntax trees in Java
The authors present a Java back-end for ApiGen a tool that generates implementations of abstract syntax trees, characterised by strong typing combined with a generic interface and maximal sub-term sharing for memory efficiency and fast equality checking.
Generation of abstract programming interfaces from syntax definitions
Concurrent tries with efficient non-blocking snapshots
This work describes a non-blocking concurrent hash trie based on shared-memory single-word compare-and-swap instructions and shows how to implement an efficient lock-free snapshot operation for concurrent hash tries.
Wait-free concurrent memory management by Create and Read until Deletion (CaRuD)
Experiments indicate that the CaRuD algorithm is very suitable for multiprocessing and uses atomic counters for reference counting and consensus variables to ensure exclusive access.
Lock-free dynamic hash tables with open addressing
An efficient lock-free algorithm for parallel accessible hash tables with open addressing, which promises more robust performance and reliability than conventional lock-based implementations and turned to the interactive theorem prover PVS for mechanical support.
A Database Approach to Distributed State Space Generation
Implementing parallel and concurrent tree structures
This tutorial will focus on an algorithmic framework for parallel balanced binary trees, which works for multiple balancing schemes, including AVL trees, red-black trees, weight-based trees, and treaps, and the corresponding implementation is available as a library.
Cones and foci: A mechanical framework for protocol verification
This work defines a cones and foci proof method, which rephrases the question whether two system specifications are branching bisimilar in terms of proof obligations on relations between data objects, and applies this framework to the Concurrent Alternating Bit Protocol.