Award Date
12-1-2020
Degree Type
Thesis
Degree Name
Master of Science in Computer Science
Department
Computer Science
First Committee Member
Jan Pedersen
Second Committee Member
Kazem Taghva
Third Committee Member
Laxmi Gewali
Fourth Committee Member
Sarah Harris
Number of Pages
150
Abstract
ProcessJ is a modern Process-Oriented language that builds on previous work from other languages like occam and occam-pi. However, the only readily-available runtime system is built on top of the Java Virtual Machine (JVM). This is not a choice made intentionally, but simply out of a lack of other implementations -- until now. This thesis introduces the new C++-based runtime system for ProcessJ, coupled with a new C++ code generator for the ProcessJ compiler. This thesis later examines the implementation details of the runtime system, including the components that make it up. We also examine the ability to cooperatively schedule many processes within the runtime environment, inside a separate scheduling system built on top of traditional operating system threading, rather than simply mapping processes one-to-one with threads. We later exemplify some of the cooperatively-schedulable code generated by the compiler, giving a complete rundown of the constituents and their various design choices. Lastly, we show the results of several tests that demonstrate the performance benefits of a bespoke C++-based runtime system, and discuss the future work and optimizations of this system.
Keywords
The processJ C++; Runtime; Code generator
Disciplines
Computer Sciences
File Format
File Size
813 KB
Degree Grantor
University of Nevada, Las Vegas
Language
English
Repository Citation
Thomason, Alexander Christian, "The ProcessJ C++ Runtime System and Code Generator" (2020). UNLV Theses, Dissertations, Professional Papers, and Capstones. 4087.
http://dx.doi.org/10.34917/23469762
Rights
IN COPYRIGHT. For more information about this rights statement, please visit http://rightsstatements.org/vocab/InC/1.0/