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

pdf

File Size

813 KB

Degree Grantor

University of Nevada, Las Vegas

Language

English

Rights

IN COPYRIGHT. For more information about this rights statement, please visit http://rightsstatements.org/vocab/InC/1.0/


Share

COinS