Master of Science in Computer Science
First Committee Member
Jan Pederson, Chair
Second Committee Member
Third Committee Member
Graduate Faculty Representative
Number of Pages
Java is a general purpose object-oriented programming language that has been widely adopted. Because of its high adoption rate and its lineage as a C-style language, its syntax is familiar to many programmers. The downside is that Java is not natively concurrent. Volumes have been written about concurrent programming in Java; however, concurrent programming is difficult to reason about within an object-oriented paradigm and so is difficult to get right.
occam -π is a general purpose process-oriented programming language. Concurrency is part of the theoretical underpinnings of the language. Concurrency is simple to reason about within an occam -π application because there is never any shared state; also occam -π is based on a process calculus, with algebraic laws for composing processes. It has well-defined semantics regarding how processes interact. The downside is that the syntax is foreign and even archaic to programmers who are used to the Java syntax.
This thesis presents a new language, ProcessJ, which is a general purpose, process-oriented programming language meant to bridge the gap between Java and occam -π. ProcessJ does this by combining the familiar syntax of Java with the process semantics of occam -π. This allows for a familiar-looking language that is easy to reason about in concurrent programs.
This thesis describes the ProcessJ language, as well as the implementation of a compiler that translates ProcessJ source code to Java with Java Communicating Sequential Processes (JCSP), a library that provides CSP-style communication primitives.
Applied sciences; Communicating sequential processes; Compilers; Concurrent programming; Java (Computer program language); Message passing; occam (Computer program language); Process-oriented; Programming languages (Electronic computers)
Computer Sciences | Databases and Information Systems | Programming Languages and Compilers
Sowders, Matthew, "ProcessJ: A process-oriented programming language" (2011). UNLV Theses, Dissertations, Professional Papers, and Capstones. 1393.