Implementation of Message Passing Language
dc.contributor.advisor | Cockett, Robin | |
dc.contributor.author | Kumar, Prashant | |
dc.contributor.committeemember | Zach, Richard | |
dc.contributor.committeemember | Wang, Mea | |
dc.date | 2018-06 | |
dc.date.accessioned | 2018-02-22T17:22:09Z | |
dc.date.available | 2018-02-22T17:22:09Z | |
dc.date.issued | 2018-02 | |
dc.description.abstract | Message 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.citation | Kumar, 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/5476 | en_US |
dc.identifier.doi | http://dx.doi.org/10.11575/PRISM/5476 | |
dc.identifier.uri | http://hdl.handle.net/1880/106402 | |
dc.language.iso | eng | |
dc.publisher.faculty | Graduate Studies | |
dc.publisher.faculty | Science | |
dc.publisher.institution | University of Calgary | en |
dc.publisher.place | Calgary | en |
dc.rights | University 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.subject | Concurrency | |
dc.subject | Compilers | |
dc.subject | Message Passing Language | |
dc.subject | Abstract Machine | |
dc.subject.classification | Computer Science | en_US |
dc.title | Implementation of Message Passing Language | |
dc.type | master thesis | |
thesis.degree.discipline | Computer Science | |
thesis.degree.grantor | University of Calgary | |
thesis.degree.name | Master of Science (MSc) | |
ucalgary.item.requestcopy | true | |
ucalgary.thesis.checklist | I confirm that I have submitted all of the required forms to Faculty of Graduate Studies. | en_US |
Files
Original bundle
1 - 1 of 1
Loading...
- Name:
- ucalgary_2018_kumar_prashant.pdf
- Size:
- 752.92 KB
- Format:
- Adobe Portable Document Format
- Description:
- Thesis
License bundle
1 - 1 of 1
No Thumbnail Available
- Name:
- license.txt
- Size:
- 1.74 KB
- Format:
- Item-specific license agreed upon to submission
- Description: