Pure functional programming languages preclude destructive updates of heap-allocated data. In such languages, all newly computed algebraic values claim freshly allocated heap space, which typically causes idiomatic programs to be notoriously inefficient when compared to their imperative and impure counterparts. We partly overcome this shortcoming by considering a syntactically light language construct for enabling user-controlled in-place updates of algebraic values. The resulting calculus, that is based on a combination of type-based uniqueness and constructor analysis, is guaranteed to maintain referential transparency and is fully compatible with existing run-time systems for nonstrict, pure functional languages.
|Title of host publication||Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation|
|Subtitle of host publication||PEPM '08|
|Editors||J. Hatcliff, R. Glück, O. de Moor|
|Publisher||Association for Computing Machinery|
|Number of pages||9|
|Publication status||Published - 7 Jan 2008|
- Wiskunde en Informatica (WIIN)