Connecting Reversible and Classical Computing Through Hybrid SSA
摘要
Despite the numerous benefits of reversible computing, non-reversible systems remain relevant in the real world. There are cases where reversibility is even detrimental, for example when performing lossy data compressions, where the removal of information is inherently required. For reversible systems to be more broadly adopted, they need to be able to interact with non-reversible systems in one way or another. To allow for seamless co-operation between both paradigms, we propose the integration of optional non-reversibility as a first-class citizen into reversible programming languages to create what we call hybrid programming languages. A hybrid programming language can express both reversible and non-reversible computations in a single host language. This paper describes the hybrid static single assignment form HSSA. Based on the principles of RSSA, HSSA puts reversibility and determinism first, while providing facilities to allow for explicit nondeterminism in either direction. This also includes forward-nondeterminism while maintaining the useful properties of symmetry and invertibility.