The modern day advancements in multi-core technologies require programmers to use the right tools and languages to fully harness their potentials. On that front, our endeavor lies in developing a new multipro- cessing programming language. Concurrent or parallel programs can be hard to get right because of locks, monitors, mutexes, etc. One solution is using a CSP based process-oriented language. Process-oriented programming alleviates many of the problems found in thread and lock programming by proper encapsu- lation of data, explicit synchronous message passing, and the ability to verify code to be free of deadlocks and livelocks by using tools like FDR. Therefore, we have developed a new language called ProcessJ (CSP semantics and Java-like syntax) as a way to modernize languages like occam/occam-π which are outdated and only run on certain Linux distributions. ProcessJ is a multi-backend language with a compiler written in Java; and in this thesis, we focus on the JVM backend, which we call the JVMCSP; in particular, we consider code generation, the necessary runtime classes to support concurrency constructs on the JVM, and a simple cooperative non-preemptive scheduler. We also show how to translate ProcessJ source into Java source that makes use of the runtime classes that we have developed.
展开▼