Abstract
We investigate the power of non-determinism in purely functional programming languages with higher-order types. Specifically, we consider cons-free programs of varying data orders, equipped with explicit non-deterministic choice. Cons-freeness roughly means that data constructors cannot occur in function bodies and all manipulation of storage space thus has to happen indirectly using the call stack. While cons-free programs have previously been used by several authors to characterise complexity classes, the work on non-deterministic programs has almost exclusively considered programs of data order 0. Previous work has shown that adding explicit non-determinism to consfree programs taking data of order 0 does not increase expressivity; we prove that this—dramatically—is not the case for higher data orders: adding non-determinism to programs with data order at least 1 allows for a characterisation of the entire class of elementary-time decidable sets. Finally we show how, even with non-deterministic choice, the original hierarchy of characterisations is restored by imposing different restrictions.
Original language | English |
---|---|
Title of host publication | Programming Languages and Systems : 26th European Symposium on Programming, ESOP 2017, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2017, Uppsala, Sweden, April 22–29, 2017, Proceedings |
Editors | Hongseok Yang |
Number of pages | 28 |
Publisher | Springer |
Publication date | 2017 |
Pages | 668-695 |
ISBN (Print) | 978-3-662-54433-4 |
ISBN (Electronic) | 978-3-662-54434-1 |
DOIs | |
Publication status | Published - 2017 |
Event | 26th European Symposium on Programming - Uppsala, Sweden Duration: 22 Apr 2017 → 29 Apr 2017 Conference number: 26 |
Conference
Conference | 26th European Symposium on Programming |
---|---|
Number | 26 |
Country/Territory | Sweden |
City | Uppsala |
Period | 22/04/2017 → 29/04/2017 |
Series | Lecture notes in computer science |
---|---|
Volume | 10201 |
ISSN | 0302-9743 |
Keywords
- Cons-free programming
- EXPTIME hierarchy
- Implicit computational complexity
- Non-deterministic programming
- Unitary variables