Bridging CSP and C++ with Selective Formalism and Executable Specifications

  • Authors:
  • W. B. Gardner

  • Affiliations:
  • -

  • Venue:
  • MEMOCODE '03 Proceedings of the First ACM and IEEE International Conference on Formal Methods and Models for Co-Design
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

CSP (Communicating Sequential Processes) is a usefulalgebraic notation for creating a hierarchical behaviouralspecification for concurrent systems, due to its formalinterprocess synchronization and communication semantics.CSP specifications are amenable to simulation andformal verification by model-checking tools. To overcomethe drawback that CSP is neither a full-featured nor popularprogramming language, an approach called "selectiveformalism" allows the use of CSP to be limited to specifyingthe control portion of a system, while the rest of itsfunctionality is supplied in the form of C++ modules.These are activated through association with abstractevents in the CSP specification. The target system is constructedusing a framework called CSP++, which automaticallytranslates CSP specifications into C++, therebymaking CSP directly executable. Thus a bridge is built thatallows a formal method to be combined with a popularprogramming language. It is believed that this methodologycan be extended to hardware/software codesign.