Supporting Selective Formalism in CSP++ with Process-Specific Storage

Loading...
Thumbnail Image

Date

2012-09-14

Authors

Gumtie, Alicia

Journal Title

Journal ISSN

Volume Title

Publisher

University of Guelph

Abstract

Communicating Sequential Processes (CSP) is a formal language whose primary purpose is to model and verify concurrent systems. The CSP++ toolset was created to embody the concept of selective formalism by making machine-readable CSPm specifications both executable (through the automatic synthesis of C++ source) and extensible (by allowing the integration of C++ user-coded functions). However, these user-coded functions were limited by their inability to share data with each other, which meant that their application was constrained to solving simple problems in isolation. We extend CSP++ by providing user-coded functions in the same CSP process with safe access to a shared storage area, similar in concept and API to Pthreads' thread-local storage, enabling cooperation between them and granting them the ability to undertake more complex tasks without breaking the formalism of the underlying specification. This feature's utility is demonstrated in our line-following robot case study.

Description

Keywords

CSP, CSP++, selective formalism, code generation, formal methods, code synthesis, concurrency, software development, multithreaded applications, thread-local storage, line following, threading, robots

Citation