Self-Replicating Distributed Virtual Machines

Download Report

Transcript Self-Replicating Distributed Virtual Machines

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)))
COMPILATION
refer
argument
pair
refer
get
pair
get
put
pair
put
close
closure
assign
halt
argument
symbol
def
symbol
pair
ref
refer
get
get
pair
apply
get
number
pair
apply
primitive
put
number
number
get
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+1
bytecode n
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.