Combinatory code and a parallel packet-based computational model

Up until now the widespread use of functional languages has been hindered by the lack of any sort of efficient implementation. The main reason for this has been the need to support an environment, a mapping of variables in scope to their current values. By using combinatory logic it is possible to translate a functional program into a form in which all bound variables have been removed. The transformed program will be string of constants which selectively ship to each expression that part of the environment it references. As a result of this the hardware needed to produce a physical realization of the model should be very much simpler than that of normal Von Neumann computing engines. In order to exploit the implicit parallelism present in a functional program a computational model based upon a parallel packet based graph reduction scheme is proposed which allows code to be treated in exactly the same manner as data. In particular the code graph can be regarded as a lazily constructed data structure.