Abstract
Flowchart languages are traditionally used to study the foundations of partial evaluation. This article presents a systematic and formal development of a method for partial evaluation of a reversible flowchart language. The results confirm that partial evaluation in this unconventional computing paradigm shows effects consistent with traditional partial evaluation. Experiments include specializing a symmetric encryption algorithm and a reversible interpreter for Bennett's reversible Turing machines. A defining feature of reversible languages is their invertibility. This study reports the first experiments composing program inversion and partial evaluation. The presented method is fully implemented. It is potentially of interest because reversible computing has found applications in areas as diverse as low-power computing, debugging, robotics, and quantum-inspired computing.
Original language | English |
---|---|
Title of host publication | PEPM 2024 - Proceedings of the 2024 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation |
Editors | Gabriele Keller, Meng Wang |
Number of pages | 15 |
Publisher | Association for Computing Machinery |
Publication date | 2024 |
Pages | 119-133 |
ISBN (Electronic) | 979-8-4007-0487-1 |
DOIs | |
Publication status | Published - 2024 |
Event | 2024 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation, PEPM 2024, in affiliation with the annual Symposium on Principles of Programming Languages, POPL 2024 - London, United Kingdom Duration: 16 Jan 2024 → … |
Conference
Conference | 2024 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation, PEPM 2024, in affiliation with the annual Symposium on Principles of Programming Languages, POPL 2024 |
---|---|
Country/Territory | United Kingdom |
City | London |
Period | 16/01/2024 → … |
Sponsor | ACM SIGACT, ACM SIGLOG, ACM SIGPLAN |
Bibliographical note
Publisher Copyright:© 2024 ACM.
Keywords
- Flowchart Languages
- Partial Evaluation
- Program Inversion
- Program Transformations
- Reversible Computing