dc.contributor.advisor | Morris, J Garrett | |
dc.contributor.author | Ingle, Apoorv | |
dc.date.accessioned | 2019-04-25T20:07:13Z | |
dc.date.available | 2019-04-25T20:07:13Z | |
dc.date.issued | 2018-12-31 | |
dc.date.submitted | 2018 | |
dc.identifier.other | http://dissertations.umi.com/ku:16220 | |
dc.identifier.uri | http://hdl.handle.net/1808/27760 | |
dc.description.abstract | Modern programming languages treat resources as normal values. The static semantics of resources in such languages does not match their runtime semantics. In this thesis, we tackle the resource management problem by making resources first class citizens in the language, and concentrating on sharing or separation of resources. We design and implement QuB (pronounced: cube), a Curry-Howard interpretation of logic of bunched implications (BI) (O’Hearn and Pym, 1999). We distinguish two kinds of values—restricted and unrestricted—and two kinds of function implications— sharing and separating. The restricted values model resources while the unrestricted values model program objects that do not contain any resources. Sharing functions denote that functions share resources with its arguments, while separating functions denote that functions do not share resources with its arguments. We show how the use of monads with sharing and separating functions helps in modeling patterns, such as exception handling, that are difficult to express in linear languages. | |
dc.format.extent | 72 pages | |
dc.language.iso | en | |
dc.publisher | University of Kansas | |
dc.rights | Copyright held by the author. | |
dc.subject | Computer science | |
dc.subject | Logic | |
dc.subject | bi | |
dc.subject | programming language | |
dc.subject | resource | |
dc.subject | types | |
dc.title | QuB: A Resource Aware Functional Programming Language | |
dc.type | Thesis | |
dc.contributor.cmtemember | Kulkarni, Prasad | |
dc.contributor.cmtemember | Alexander, Perry | |
dc.contributor.cmtemember | Gill, Andy | |
dc.thesis.degreeDiscipline | Electrical Engineering & Computer Science | |
dc.thesis.degreeLevel | M.S. | |
dc.identifier.orcid | https://orcid.org/0000-0002-7399-9762 | |
dc.rights.accessrights | openAccess | |