Award Date
12-2011
Degree Type
Thesis
Degree Name
Master of Science in Computer Science
Department
Computer Science
First Committee Member
Jan Pederson, Chair
Second Committee Member
Laxmi Gewali
Third Committee Member
Evangelos Yfantis
Graduate Faculty Representative
Aly Said
Number of Pages
131
Abstract
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.
Keywords
Applied sciences; Communicating sequential processes; Compilers; Concurrent programming; Java (Computer program language); Message passing; occam (Computer program language); Process-oriented; Programming languages (Electronic computers)
Disciplines
Computer Sciences | Databases and Information Systems | Programming Languages and Compilers
File Format
Degree Grantor
University of Nevada, Las Vegas
Language
English
Repository Citation
Sowders, Matthew, "ProcessJ: A process-oriented programming language" (2011). UNLV Theses, Dissertations, Professional Papers, and Capstones. 1393.
http://dx.doi.org/10.34917/3294795
Rights
IN COPYRIGHT. For more information about this rights statement, please visit http://rightsstatements.org/vocab/InC/1.0/
COinS