A development method for deriving reusable concurrent programs from verified CSP models

dc.contributor.advisorBradshaw, Karen
dc.contributor.authorDibley, James
dc.date.accessioned2026-03-04T15:33:28Z
dc.date.issued2019
dc.description.abstractThis work proposes and demonstrates a novel method for software development that applies formal verification techniques to the design and implementation of concurrent programs. This method is supported by a new software tool, CSPIDER, which translates machine-readable Communicating Sequential Processes (CSP) models into encapsulated, reusable components coded in the Go programming language. In relation to existing CSP implementation techniques, this work is only the second to implement a translator and it provides original support for some CSP language constructs and modelling approaches. The method is evaluated through three case studies: a concurrent sorting array, a trialdivision prime number generator, and a component node for the Ricart-Agrawala distributed mutual exclusion algorithm. Each of these case studies presents the formal verification of safety and functional requirements through CSP model-checking, and it is shown that CSPIDER is capable of generating reusable implementations from each model. The Ricart-Agrawala case study demonstrates the application of the method to the design of a protocol component. This method maintains full compatibility with the primary CSP verification tool. Applying the CSPIDER tool requires minimal commitment to an explicitly defined modelling style and a very small set of pre-translation annotations, but all of these measures can be instated prior to verification. The Go code that CSPIDER produces requires no intervention before it may be used as a component within a larger development. The translator provides a traceable, structured implementation of the CSP model, automatically deriving formal parameters and a channel-based client interface from its interpretation of the CSP model. Each case study demonstrates the use of the translated component within a simple test development.
dc.description.degreeDoctoral thesis
dc.description.degreePhD
dc.format.extent288 pages
dc.format.mimetypeapplication/pdf
dc.identifier.otherhttp://hdl.handle.net/10962/72329
dc.identifier.urihttps://researchrepository.ru.ac.za/handle/123456789/8193
dc.languageEnglish
dc.publisherRhodes University, Faculty of Science, Department of Computer Science
dc.rightsDibley, James
dc.subjectCSP (Computer program language)
dc.subjectSequential processing (Computer science)
dc.subjectGo (Computer program language)
dc.subjectCSPIDER (Open source tool)
dc.titleA development method for deriving reusable concurrent programs from verified CSP models
dc.typeAcademic thesis

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
A_development_method_for_deriving_reusable_concurr_vital_30035.pdf
Size:
2.66 MB
Format:
Adobe Portable Document Format