Recombinant Programming
Abstract
This research report presents a promising new approach to computation called Recombinant Programming. The novelty of our approach is that it separates the program into two layers of computation: the recombination and the interpretation layer. The recombination layer takes sequences as inputs and allows the programmer to recombine these sequences through the definition of cohesive code units called extensions. The output of such recombination is a mesh that can be used by the interpretation layer in many different ways, depending on the context. To further illustrate our model, we present a language called Grapple that supports Recombinant Programming and show possible applications of this language. In particular, we present RJava, the prototype of a recombinant language that uses Grapple in the context of Java-like programs.