Applications of process-oriented design
<p>Concurrency is generally considered to be difficult due to a lack of appropriate abstraction, rather than inherent complexity. Lock-based approaches to mutual exclusion are pervasive, despite the presence of models that are easier to understand, such as the message-passing model present in...
Main Authors: | , |
---|---|
Other Authors: | |
Format: | Thesis |
Language: | English |
Published: |
2014
|
Subjects: |
_version_ | 1826303997426794496 |
---|---|
author | Whitehead, J James Norman Whitehead |
author2 | Spivey, M |
author_facet | Spivey, M Whitehead, J James Norman Whitehead |
author_sort | Whitehead, J |
collection | OXFORD |
description | <p>Concurrency is generally considered to be difficult due to a lack of appropriate abstraction, rather than inherent complexity. Lock-based approaches to mutual exclusion are pervasive, despite the presence of models that are easier to understand, such as the message-passing model present in CSP (Communicating Sequential Processes). CSP provides a rich framework for building and reasoning about concurrent systems, but has historically required a change of programming language or paradigm in order to work with it. The Go programming language is a modern, imperative programming language that includes native support for processes and channels. The popularity of this language has grown and more and more people are being exposed to the fundamental ideas of CSP.</p> <p>There is a gap in the understanding of how a restrictive formal model can interact with and support the development of concurrent programs in a language such as Go. Through a series of case studies and analysis, we show how the CSP concurrency model can be used as the basis for the design of a concurrent system architecture without requiring the program to be written entirely as the composition of processes. It is also possible to use the CSP process algebra to build abstract models and use model-checking tools to verify properties of a concurrent system. These models can then be used to guide the decomposition of a system into a more fine-grained concurrent system.</p> <p>This thesis bridges the gap between the development of CSP-style concurrent software and the formal model of CSP. In particular, it shows how it is not necessary for a program or programming language to conform to rigid structure in order for CSP to be a useful tool for the development of reliable and easy to understand concurrent systems.</p> |
first_indexed | 2024-03-07T06:11:11Z |
format | Thesis |
id | oxford-uuid:ef8b093c-312f-4e95-a3a2-e874af0cd0a0 |
institution | University of Oxford |
language | English |
last_indexed | 2024-03-07T06:11:11Z |
publishDate | 2014 |
record_format | dspace |
spelling | oxford-uuid:ef8b093c-312f-4e95-a3a2-e874af0cd0a02022-03-27T11:41:03ZApplications of process-oriented designThesishttp://purl.org/coar/resource_type/c_db06uuid:ef8b093c-312f-4e95-a3a2-e874af0cd0a0Communication Sequential Processing (CSP)Software engineeringTheory and automated verificationEnglishOxford University Research Archive - Valet2014Whitehead, JJames Norman WhiteheadSpivey, M<p>Concurrency is generally considered to be difficult due to a lack of appropriate abstraction, rather than inherent complexity. Lock-based approaches to mutual exclusion are pervasive, despite the presence of models that are easier to understand, such as the message-passing model present in CSP (Communicating Sequential Processes). CSP provides a rich framework for building and reasoning about concurrent systems, but has historically required a change of programming language or paradigm in order to work with it. The Go programming language is a modern, imperative programming language that includes native support for processes and channels. The popularity of this language has grown and more and more people are being exposed to the fundamental ideas of CSP.</p> <p>There is a gap in the understanding of how a restrictive formal model can interact with and support the development of concurrent programs in a language such as Go. Through a series of case studies and analysis, we show how the CSP concurrency model can be used as the basis for the design of a concurrent system architecture without requiring the program to be written entirely as the composition of processes. It is also possible to use the CSP process algebra to build abstract models and use model-checking tools to verify properties of a concurrent system. These models can then be used to guide the decomposition of a system into a more fine-grained concurrent system.</p> <p>This thesis bridges the gap between the development of CSP-style concurrent software and the formal model of CSP. In particular, it shows how it is not necessary for a program or programming language to conform to rigid structure in order for CSP to be a useful tool for the development of reliable and easy to understand concurrent systems.</p> |
spellingShingle | Communication Sequential Processing (CSP) Software engineering Theory and automated verification Whitehead, J James Norman Whitehead Applications of process-oriented design |
title | Applications of process-oriented design |
title_full | Applications of process-oriented design |
title_fullStr | Applications of process-oriented design |
title_full_unstemmed | Applications of process-oriented design |
title_short | Applications of process-oriented design |
title_sort | applications of process oriented design |
topic | Communication Sequential Processing (CSP) Software engineering Theory and automated verification |
work_keys_str_mv | AT whiteheadj applicationsofprocessorienteddesign AT jamesnormanwhitehead applicationsofprocessorienteddesign |