Skip to content
Free planNo credit card requiredStart writing

article · Digital Scholarship - UNLV (University of Nevada Reno) · 2020

ProcessJ: A process-oriented programming language

Matthew Sowders

Cited by 0Open access

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.

Cite this paper

APA 7

Sowders, M. (2020). ProcessJ: A process-oriented programming language. Digital Scholarship - UNLV (University of Nevada Reno). https://doi.org/10.34917/3294795

MLA 9

Sowders, Matthew. “ProcessJ: A process-oriented programming language.” Digital Scholarship - UNLV (University of Nevada Reno), 2020, https://doi.org/10.34917/3294795.

Chicago

Sowders, Matthew. 2020. “ProcessJ: A process-oriented programming language.” Digital Scholarship - UNLV (University of Nevada Reno). https://doi.org/10.34917/3294795.

Harvard

Sowders, M. (2020) ‘ProcessJ: A process-oriented programming language’, Digital Scholarship - UNLV (University of Nevada Reno). Available at: https://doi.org/10.34917/3294795.

BibTeX
@article{sowders2020processj,
  title = {{ProcessJ: A process-oriented programming language}},
  author = {Sowders, Matthew},
  journal = {Digital Scholarship - UNLV (University of Nevada Reno)},
  year = {2020},
  doi = {10.34917/3294795}
}

Made from the index record. Check names, capitalisation and page numbers against the paper. Need another style? AI for Research has over 10,000.