120 likes | 138 Views
Self-Replicating Distributed Virtual Machines. Lance R. Williams Dept. of Computer Science University of New Mexico. Church-Turing Thesis. All models of effective computation are equivalently powerful.
E N D
Self-Replicating Distributed Virtual Machines Lance R. Williams Dept. of Computer Science University of New Mexico
Church-Turing Thesis • All models of effective computation are equivalently powerful. • However, certain models offer advantages with respect to particular modes of physical implementation. • The von Neumann machine is well-suited to implementation using electronic components.
Signaling Networks • The von Neumann machine is less useful as a model for computations implemented using signaling networks of neurons, molecules, nanomachines, or bacteria. • The ACTOR model (Hewitt ‘73) is potentially better suited to this mode of implementation.
ACTOR Model • A model of concurrent computation • An actor is a process. • Actors execute asynchronously and in parallel. • An actor can send/receive messages to/from other actors. • An actor can create new actors.
Distributed Virtual Machines • Compile programs written in a simple and expressive programming language into a network of actors • Actors represent virtual machine bytecodes and basic datatypes. • The network of actors constitutes the code, stack, and heap of a distributed virtual machine.
Example put (define sqr (lambda (x) (* x x))) refer argument pair get pair refer pair COMPILATION get put pair argument put ref close closure symbol refer def get get assign symbol pair apply pair get apply halt number primitive number get put number
The Cell • It is a popular misconception that DNA is a self-replicating molecule. • DNA is a molecular representation. • DNA can be used to represent a description of a self-replicating machine called the cell. • The cell translates the DNA into a copy of the cell and a copy of the DNA.
Quines • A quine is a program which prints its own source code. • A quine consists of program and data. • The program uses the data to construct copies of the program and the data.
Self-Replicating Distributed Virtual Machines • A compiler can be implemented as a distributed virtual machine. • The distributed virtual machine can copy itself by compiling its own source code. • A distributed virtual machine which copies itself and then copies its own source code is (in effect) a non-biological cell.
Bacterial Implementation bacterium molecular key bytecode n bytecode n+1 continuation (plasmid) molecular lock bacterium
Conclusion • ACTOR model is better suited to describing signaling network embodied computations than the von Neumann machine. • A compiler implemented as a distributed virtual machine can copy itself simply by compiling its own source code. • A self-replicating distributed virtual machine embodied using bacteria would be a meta-cell.