Addressing Machines as models of lambda-calculus

. Turing machines and register machines have been used for decades in theoretical computer science as abstract models of computation. Also the λ -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 λ -terms into Turing (or register) machines. The reason is that these machines are not well-suited for modelling λ -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 λ -calculus, we need to introduce a rule that bares similarities with the ω -rule and the rule ζ β from combinatory logic.

[1]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[2]  Christiaan Peter Jozef Koymans,et al.  Models of the Lambda Calculus , 1982, Inf. Control..

[3]  Richard Statman,et al.  Lambda theories allowing terms with a finite number of fixed points , 2017, Math. Struct. Comput. Sci..

[4]  Enno Ohlebusch,et al.  Term Rewriting Systems , 2002 .

[5]  Hartley Rogers Theory of recursive functions and effective computability (Reprint from 1967) , 1987 .

[6]  Hendrik Pieter Barendregt,et al.  Some extensional term models for combinatory logics and l - calculi , 1971 .

[7]  G.D. Plotkin,et al.  LCF Considered as a Programming Language , 1977, Theor. Comput. Sci..

[8]  Rasmus Lerdorf,et al.  Introduction to combinatory logic , 1972 .

[9]  Jean-Jacques Lévy,et al.  Explicit Substitutions and Programming Languages , 1999, FSTTCS.

[10]  A. Church Review: A. M. Turing, On Computable Numbers, with an Application to the Entscheidungsproblem , 1937 .

[11]  Albert R. Meyer,et al.  What is a Model of the Lambda Calculus? , 1982, Inf. Control..

[12]  S. Kleene,et al.  λ-Definability and Recursiveness. , 1937 .

[13]  Giulio Manzonetto,et al.  The fixed point property and a technique to harness double fixed point combinators , 2019, J. Log. Comput..

[14]  Giulio Manzonetto,et al.  Degrees of extensionality in the theory of Böhm trees and Sallé's conjecture , 2018, Log. Methods Comput. Sci..

[15]  Peter Selinger The lambda calculus is algebraic , 2002, J. Funct. Program..

[16]  Jon Fairbairn,et al.  TIM: A simple, lazy abstract machine to execute supercombinatorics , 1987, FPCA.

[17]  A. Turing On Computable Numbers, with an Application to the Entscheidungsproblem. , 1937 .

[18]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .

[19]  Davide Sangiorgi,et al.  The Pi-Calculus - a theory of mobile processes , 2001 .

[20]  B. Intrigila,et al.  Extended Addressing Machines for PCF, with Explicit Substitutions , 2021 .

[21]  Claudio Sacerdoti Coen,et al.  Crumbling Abstract Machines , 2019, PPDP.

[22]  Antonino Salibra,et al.  The Lattice of Lambda Theories , 2004, J. Log. Comput..

[23]  Christopher P. Wadsworth,et al.  The Relation Between Computational and Denotational Properties for Scott's Dinfty-Models of the Lambda-Calculus , 1976, SIAM J. Comput..

[24]  J. Roger Hindley,et al.  Introduction to Combinators and Lambda-Calculus , 1986 .

[25]  Jean-Jacques Lévy,et al.  Sharing in the Weak Lambda-Calculus , 2005, Processes, Terms and Cycles.