ATTENTION: The software behind KU ScholarWorks is being upgraded to a new version. Starting July 15th, users will not be able to log in to the system, add items, nor make any changes until the new version is in place at the end of July. Searching for articles and opening files will continue to work while the system is being updated.
If you have any questions, please contact Marianne Reed at mreed@ku.edu .
Qub: A Resource Aware Functional Programming Language
dc.contributor.author | Ingle, Apoorv | |
dc.date.accessioned | 2020-03-24T20:44:58Z | |
dc.date.available | 2020-03-24T20:44:58Z | |
dc.date.issued | 2020-03-15 | |
dc.identifier.uri | http://hdl.handle.net/1808/30163 | |
dc.description.abstract | Managing resources---file handles, database connections, etc.---is a hard problem. Debugging resource leaks and runtime errors due to resource mismanagement are difficult in evolving production code. Programming languages with static type systems are great tools to ensure erroneous code is detected at compile time. However, modern static type systems do little in the aspect of resource management as resources are treated as normal values. We propose a type system, Qub, based on the logic of bunched implications (BI) which models resources as first class citizens. We distinguish two kinds of program objects---restricted and unrestricted---and two kinds of functions---sharing and separating. Our approach guarantees resource correctness without compromising existing functional abstractions. | en_US |
dc.relation.isversionof | https://arxiv.org/abs/1912.10135 | en_US |
dc.rights | This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. | en_US |
dc.rights.uri | http://creativecommons.org/licenses/by-nc-sa/4.0/ | en_US |
dc.subject | Programming languages | |
dc.subject | Type systems. | |
dc.subject | Bunched implications | |
dc.subject | Resources | |
dc.title | Qub: A Resource Aware Functional Programming Language | en_US |
dc.type | Working Paper | en_US |
dc.identifier.orcid | https://orcid.org/0000-0002-7399-9762 | en_US |
dc.rights.accessrights | openAccess | en_US |