Skip navigation
PDF 379 KB
DOI: http://dx.doi.org/10.7551/978-0-262-32621-6-ch114
Pages 711-718
First published 30 July 2014

Self-Replicating Distributed Virtual Machines

Lance R. Williams

Abstract (Excerpt)

Recent work showed how an expression in a functional programming language can be compiled into a massively redundant asynchronous spatial computation called a distributed virtual machine. A DVM is comprised of bytecodes reified as actors undergoing diffusion and communicating via messages containing encapsulated virtual machine states. Significantly, it was shown that both the efficiency and the robustness of expression evaluation by DVM increase with redundancy. In the present work, spatial computations that become more efficient and robust over time are described. They accomplish this by self-replication, which increases the redundancy of the elements of which they are comprised. The first and simplest of these self-replicating DVMs copies itself by reflection; it reads itself from a contiguous range of memory. The remainder are quines. As such, they reproduce by translating and transcribing self-descriptions. The nature of the self-descriptions and of the translation and transcription processes differ in each case. The most complex self-replicating DVM described represents a fundamentally new kind of artificial organism-- a machine language program reified as a spatial computation that reproduces by compiling its own source-code.