Generating optimized code from SCR specifications
Proceedings of the 2006 ACM SIGPLAN/SIGBED conference on Language, compilers, and tool support for embedded systems
Using Ontologies and Algebra of Algorithms for Formalized Development of Parallel Programs
Fundamenta Informaticae - Concurrency Specification and Programming (CS&P)
From high-level component-based models to distributed implementations
EMSOFT '10 Proceedings of the tenth ACM international conference on Embedded software
Systematic correct construction of self-stabilizing systems: a case study
SSS'10 Proceedings of the 12th international conference on Stabilization, safety, and security of distributed systems
Proving atomicity: an assertional approach
DISC'05 Proceedings of the 19th international conference on Distributed Computing
Using Ontologies and Algebra of Algorithms for Formalized Development of Parallel Programs
Fundamenta Informaticae - Concurrency Specification and Programming (CS&P)
Hi-index | 0.00 |
This paper presents a strategy for compiling distributed systems specified in IOA, a formal language for describing such systems as I/O automata, into Java programs running on a group of networked workstations. The translation works node-by-node, translating IOA programs into Java classes that communicate using the Message Passing Interface. The resulting system runs without any global synchronization. We prove that, subject to certain restrictions on the program to be compiled, assumptions on the correctness of hand-coded datatype implementations, and basic assumptions about the behavior of the network, the compilation method preserves safety properties of the IOA program in the generated Java code. We model the generated Java code itself as a threaded, low-level I/O automaton and use a refinement mapping to show that the external behavior of the system is preserved by the translation. The IOA compiler is part of the IOA toolkit which supports algorithm design, development, testing, and formal verification using automated tools.