DATA OPTIMIZATIONS FOR CONSTRAINT AUTOMATA

Sung-Shik T. Q. Jongmans*, Farhad Arbab

*Corresponding author for this work

Research output: Contribution to journalArticleAcademicpeer-review

Abstract

Constraint automata (CA) constitute a coordination model based on finite automata on infinite words. Originally introduced for modeling of coordinators, an interesting new application of CAs is implementing coordinators (i.e., compiling CAs into executable code). Such an approach guarantees correctness-by-construction and can even yield code that outperforms hand-crafted code. The extent to which these two potential advantages materialize depends on the smartness of CA-compilers and the existence of proofs of their correctness.

Every transition in a CA is labeled by a "data constraint" that specifies an atomic data-flow between coordinated processes as a first-order formula. At run-time, compiler-generated code must handle data constraints as efficiently as possible. In this paper, we present, and prove the correctness of two optimization techniques for CA-compilers related to handling of data constraints: a reduction to eliminate redundant variables and a translation from (declarative) data constraints to (imperative) data commands expressed in a small sequential language. Through experiments, we show that these optimization techniques can have a positive impact on performance of generated executable code.

Original languageEnglish
Article number11
Number of pages38
JournalLogical Methods in Computer Science
Volume12
Issue number3
DOIs
Publication statusPublished - 27 Apr 2017

Keywords

  • protocols
  • constraint automata
  • Reo
  • compilation
  • optimization
  • performance
  • PARTIALLY-DISTRIBUTED COORDINATION
  • CHANNEL-BASED COORDINATION
  • REO
  • SATISFACTION
  • HYPERGRAPHS
  • MODEL

Cite this