Jeopardy: An Invertible Functional Programming Language

Joachim Tilsted Kristensen*, Robin Kaarsgaard, Michael Kirkedal Thomsen

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingArticle in proceedingsResearchpeer-review

Abstract

Reversible programming languages guarantee that their programs are invertible at the cost of restricting the permissible operations to those which are locally invertible. However, writing programs in a reversible style can be cumbersome, and may produce significantly different implementations than the conventional – even when the implemented algorithm is, in fact, invertible. We introduce Jeopardy, a functional programming language that guarantees global program invertibility without imposing local invertibility. In particular, Jeopardy allows the limited use of uninvertible – and even nondeterministic – operations, provided that they are used in a way that can be statically determined to be globally invertible. To this end, we outline an implicitly available arguments analysis and further approaches that can give a partial static guarantee to the (generally difficult) problem of guaranteeing invertibility.

Original languageEnglish
Title of host publicationReversible Computation - 16th International Conference, RC 2024, Proceedings
EditorsTorben Aegidius Mogensen, Lukasz Mikulski
Number of pages18
PublisherSpringer Science+Business Media
Publication date2024
Pages124-141
ISBN (Print)978-3-031-62075-1
ISBN (Electronic)978-3-031-62076-8
DOIs
Publication statusPublished - 2024
Event16th International Conference on Reversible Computation, RC 2024 - Torun, Poland
Duration: 4. Jul 20245. Jul 2024

Conference

Conference16th International Conference on Reversible Computation, RC 2024
Country/TerritoryPoland
CityTorun
Period04/07/202405/07/2024
SeriesLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume14680 LNCS
ISSN0302-9743

Keywords

  • functional programming languages
  • invertible computing
  • program inversion
  • reversible computing

Fingerprint

Dive into the research topics of 'Jeopardy: An Invertible Functional Programming Language'. Together they form a unique fingerprint.

Cite this