View Proposal
-
Proposer
-
Adam Sampson
-
Title
-
Programming language based on Wadler's CP calculus
-
Goal
-
Design a language with concurrency facilities based on the Classical Processes calculus
-
Description
- A process calculus is a mathematical model of the behaviour of a concurrent program. Designing a programming language's facilities to correspond to a particular process calculus is interesting because it allows you to reason mathematically about the behaviour of programs written in that language - for example, proving that they can't deadlock or livelock. The Communication Sequential Processes calculus has been particularly successful, with languages like occam, Go and Rust using it as the basis of their concurrency facilities.
But CSP dates from the 1970s, and there have been advances in process calculi since then! Philip Wadler's Classical Processes (CP) calculus is a particularly interesting example - it makes use of ideas from the theory of session types, which has traditionally been used to reason about the safety of things like network protocols and cryptographic procedures. It would be interesting to experiment with designing and implementating a simple programming language based on CP, in the same way occam is based on CSP.
- Resources
-
-
Background
-
-
Url
-
External Link
-
Difficulty Level
-
High
-
Ethical Approval
-
None
-
Number Of Students
-
1
-
Supervisor
-
Adam Sampson
-
Keywords
-
language design, process calculus, cp, concurrency
-
Degrees
-
Bachelor of Science in Computer Science
Bachelor of Science in Computer Systems
Master of Engineering in Software Engineering
Master of Science in Computer Science for Cyber Security
Master of Science in Computing (2 Years)
Master of Science in Information Technology (Software Systems)
Master of Science in Network Security
Master of Science in Software Engineering
Bachelor of Science in Computing Science
Bachelor of Engineering in Robotics
Bachelor of Science in Computer Science (Cyber Security)