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 \lam-calculus programs. We study a class of abstract machines that we call \emph{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$- calculus 程序。 我们研究的是一组我们称之为\emph{ addracking machine 的抽象机器, 因为它们只能操作其他机器的记忆地址。 这些机器的操作非常简单: 在登记册上加载一个地址, 通过他们的地址对另一个机器应用一个地址。 我们以最左边的减值为基础, 用操作的语义处理机器, 并研究它们的行为。 这些机器的固定地址可以很容易地转换成一个全方格规则, 。