Journal article
Programming with ornaments
- Abstract:
- Dependently typed programming advocates the use of various indexed versions of the same shape of data, but the formal relationship amongst these structurally similar datatypes usually needs to be established manually and tediously. Ornaments have been proposed as a formal mechanism to manage the relationships between such datatype variants. In this paper, we conduct a case study under an ornament framework; the case study concerns programming binomial heaps and their operations — including insertion and minimum extraction — by viewing them as lifted versions of binary numbers and numeric operations. We show how current dependently typed programming technology can lead to a clean treatment of the binomial heap constraints when implementing heap operations. We also identify some gaps between the current technology and an ideal dependently typed programming language that we would wish to have for our development.
- Publication status:
- Published
- Peer review status:
- Peer reviewed
Actions
Access Document
- Files:
-
-
(Preview, Accepted manuscript, pdf, 400.3KB, Terms of use)
-
- Publisher copy:
- 10.1017/S0956796816000307
Authors
+ Engineering and Physical Sciences Research Council
More from this funder
- Grant:
- Reusability
- DependentTypes(EP/G034516/1
- Publisher:
- Cambridge University Press
- Journal:
- Journal of Functional Programming More from this journal
- Volume:
- 27
- Article number:
- e2
- Publication date:
- 2016-12-12
- Acceptance date:
- 2016-10-28
- DOI:
- EISSN:
-
1469-7653
- ISSN:
-
0956-7968
- Pubs id:
-
pubs:665817
- UUID:
-
uuid:f0476871-2b2f-48d6-9cbe-645e186cafd7
- Local pid:
-
pubs:665817
- Source identifiers:
-
665817
- Deposit date:
-
2016-12-14
Terms of use
- Copyright holder:
- Cambridge University Press
- Copyright date:
- 2016
- Notes:
- Copyright © 2016 Cambridge University Press. This is the accepted manuscript version of the article. The final version is available online from Cambridge University Press at: https://doi.org/10.1017/S0956796816000307
If you are the owner of this record, you can report an update to it here: Report update to this record