  Novel assembly processes for nanocircuits could present compelling
alternatives to the detailed design and placement currently used for computers.
The resulting architectures however may not be programmable by standard means.
In this paper, nanocomputers with unconventional architectures are programmed
using adaptive methods. The internals of the device are treated as a "black
box" and programming is achieved by manipulating "control voltages". Learning
algorithms are used to set the controls. As examples, logic gates and simple
arithmetic circuits are implemented. Additionally, similar methods allow for
reconfiguration of the devices, and makes them resistant to certain kinds of
faults.
