Implementation of Message Passing Language

dc.contributor.advisorCockett, Robin
dc.contributor.authorKumar, Prashant
dc.contributor.committeememberZach, Richard
dc.contributor.committeememberWang, Mea
dc.date2018-06
dc.date.accessioned2018-02-22T17:22:09Z
dc.date.available2018-02-22T17:22:09Z
dc.date.issued2018-02
dc.description.abstractMessage Passage Language (MPL) is a programming language based on the work of Cockett and Pastro. MPL is a statically typed concurrent programming language with message passing as the concurrency primitive. It brings communication safety to interacting processes using a type system. MPL consists of two languages, concurrent MPL and sequential MPL, which can interact with each other. Concurrent MPL programs are written using concurrency constructs built into the language and protocols, which are concurrent data types. These concurrency constructs allow intuitive modelling of real world concurrency scenarios. Sequential MPL is a functional programming language. In addition to data definitions, sequential MPL allows codata definitions, which can model infinite structures. Sequential MPL allows for disciplined recursion using folds and unfolds in addition to normal recursion. In this thesis, we develop the first prototype of a compiler for MPL. We reformulate MPL's design to allow normal recursion in addition to primitive recursion, the only form of recursion allowed in previous designs. In light of the changes made to MPL, we describe MPL's type system. Then we develop an algorithm for type inferencing MPL programs, and implement it. In addition, we develop and implement an abstract machine to run MPL programs. We also develop the intermediate languages through which MPL programs compile to the abstract machine. We describe and implement the algorithms used in the compilation of MPL programs to the abstract machines, namely lambda lifting and compilation of pattern-matching.en_US
dc.identifier.citationKumar, P. (2018). Implementation of Message Passing Language (Master's thesis, University of Calgary, Calgary, Canada). Retrieved from https://prism.ucalgary.ca. doi:10.11575/PRISM/5476en_US
dc.identifier.doihttp://dx.doi.org/10.11575/PRISM/5476
dc.identifier.urihttp://hdl.handle.net/1880/106402
dc.language.isoeng
dc.publisher.facultyGraduate Studies
dc.publisher.facultyScience
dc.publisher.institutionUniversity of Calgaryen
dc.publisher.placeCalgaryen
dc.rightsUniversity of Calgary graduate students retain copyright ownership and moral rights for their thesis. You may use this material in any way that is permitted by the Copyright Act or through licensing that has been assigned to the document. For uses that are not allowable under copyright legislation or licensing, you are required to seek permission.
dc.subjectConcurrency
dc.subjectCompilers
dc.subjectMessage Passing Language
dc.subjectAbstract Machine
dc.subject.classificationComputer Scienceen_US
dc.titleImplementation of Message Passing Language
dc.typemaster thesis
thesis.degree.disciplineComputer Science
thesis.degree.grantorUniversity of Calgary
thesis.degree.nameMaster of Science (MSc)
ucalgary.item.requestcopytrue
ucalgary.thesis.checklistI confirm that I have submitted all of the required forms to Faculty of Graduate Studies.en_US
Files
Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
ucalgary_2018_kumar_prashant.pdf
Size:
752.92 KB
Format:
Adobe Portable Document Format
Description:
Thesis
License bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
license.txt
Size:
1.74 KB
Format:
Item-specific license agreed upon to submission
Description: