Turing machines and register machines have been used for decades in theoretical computer science as abstract models of computation. Also the $\lambda$-calculus has played a central role in this domain as it allows to focus on the notion of functional computation, based on the substitution mechanism, while abstracting away from implementation details. The present article starts from the observation that the equivalence between these formalisms is based on the Church-Turing Thesis rather than an actual encoding of $\lambda$-terms into Turing (or register) machines. The reason is that these machines are not well-suited for modelling $\lambda$-calculus programs. We study a class of abstract machines that we call "addressing machine" since they are only able to manipulate memory addresses of other machines. The operations performed by these machines are very elementary: load an address in a register, apply a machine to another one via their addresses, and call the address of another machine. We endow addressing machines with an operational semantics based on leftmost reduction and study their behaviour. The set of addresses of these machines can be easily turned into a combinatory algebra. In order to obtain a model of the full untyped $\lambda$-calculus, we need to introduce a rule that bares similarities with the $\omega$-rule and the rule $\zeta_\beta$ from combinatory logic.
翻译:图灵机器和注册机器在理论计算机科学中作为抽象计算模型已经使用了几十年的抽象计算模型。 此外, $\ lambda$- calcululs 计算器在这一领域中发挥了中心作用, 因为它允许以功能计算概念为重点, 以替代机制为基础, 并提取执行细节 。 本篇文章的出发点是观察到这些形式主义之间的等值是基于教会- 指导理论, 而不是将$\lambda$- 术语实际编码成图灵( 或注册) 机器。 原因是这些机器不适合建模 $\ lambda$- calcululs 程序。 我们研究的是一组我们称之为“ 处理机器” 的抽象机器, 因为它们只能操作其他机器的记忆地址 。 这些机器的操作非常基本: 在登记册中加载一个地址, 将一台机器应用到另一个机器的地址 。 我们用最左端的操作性语义处理机器, 以其行为为基础。 这些机器的固定地址可以很容易地转换成“ $ $ ” 。