IPDL
IPDL is the "Inter-*-communication Protocol Definition Language", where "*" includes "process" and "thread."
Status
The IPDL compiler is being implemented in stages.
- Basic code generation (no protocol management)
- Type checking and protocol management
- Protocol state machines
- (IN PROGRESS) Full dynamic safety checking
- Static analysis of code implementing IPDL interfaces
- Model checking of inter-protocol interactions
Reference
The IPDL/Getting started guide intends to be somewhat verbose and gentle introduction to the IPDL.
The IPDL/Five minute example shows examples of what C++ code you need to implement to make IPDL "work." Before reading this, you should be somewhat familiar with the IPDL (or good at learning by example.)
IPDL/The IPDL/Electrolysis Cookbook gives recipes for various common tasks in electrolysis development.
The IPDL/Low level setup walks you through setting up the support infrastructure (processes, threads, and sockets) that IPDL needs to send messages. Few people should need to read this.
Other projects
- IPDL/Unit test generation: use IPDL specifications to generate unit tests that "extensively" explore the protocol-level interaction of two (or more) actors. The unit tests are intended to check the C++ implementation(s) of the actor interfaces.