Reversible computing is a computational paradigm in which computations are deterministic in both the forward and backward direction, so that programs have well-defined forward and backward semantics. We investigate the formal semantics of the reversible functional programming language Rfun. For this purpose, we introduce join inverse rig categories, the natural marriage of join inverse categories and rig categories, which we show can be used to model the language Rfun, under reasonable assumptions. These categories turn out to be a particularly natural fit for reversible computing as a whole, as they encompass models for other reversible programming languages, notably Theseus and reversible flowcharts. This suggests that join inverse rig categories really are the categorical models of reversible computing.
翻译:逆向计算是一种计算模式,计算在前向和后向都是决定性的,因此程序具有明确的前向和后向语义。我们调查了可逆功能编程语言Rfun的正式语义。为此,我们引入了反向钻机类别,即组合反向类别和钻机类别之间的自然结合,我们显示,这些类别可以用来在合理的假设下模拟Rfun语言。这些类别对于整个可逆计算特别自然适合,因为它们包含其他可逆编程语言的模式,特别是Thesus和可逆流流程图。这说明,反向钻机类别实际上是可逆计算绝对模式。