Recursive application-survival in the lambda calculus
暂无分享,去创建一个
We embed communication paradigms in the lambda calculus. These communication paradigms are well known in software engineering: Agents, information passing, and interactions. Agents, in the context of the lambda calculus, are lambda terms which behave as self-contained computational entities that have the ability to interact with and communicate information to other agents. Both interaction and communication are facilitated by application in the lambda calculus. When agents interact with other agents, the result is either an agent, or another interaction of agents. We call this property "application survival".
The behaviour of a set of agents is specified by a particular form of recursively defined systems of equations. We develop techniques for analysing and solving such systems of equations, and lambda defining the agents characterised by such systems. The result is a technique for lambda defining terms given by some specification: (a) We first try to describe a part of the desired term, as a result of the interaction of agents. The result of this step is a recursively defined system of equations. (b) We analyse the system of equations and assess the information-passing mechanisms needed. (c) We lambda define the agents. (d) We use these agents to compute the part of the problem that we characterised in terms of the interaction of agents. (e) We lambda define a term with the desired properties.
We apply our theory to a wide range of problems: The study of fixed points and fixed-point combinators, solving systems of equations, Godelisation as an operator in the lambda calculus, and the efficient computation of functions on the H. den Hoed binary numeral system, with a complexity that is independent of the reduction strategy.