Page 178 -
P. 178
243_masterpieces_03.qxd 4/18/03 7:02 PM Page 150
150 Masterpiece 3 • The LEGO Turning Machine
switches to control the movement and the write/erase functions, modifying the software
accordingly, or using a specific program for this.
NQC is a wonderful language because it’s easy to learn, powerful and very wide-
spread. However, there are other languages—like leJOS (the LEGO version of the Java
interpreter) or BrickOS—that would probably be much better than NQC to program a
Turing machine.These alternate languages have more complex data structures and more
flexible functions, so you can work on a different way to implement the state transition
table, for example.
NOTE
For more information regarding Java Turing Machines and other software:
■ www.nmia.com/~soki/turing
■ www.nmt.edu/~prcm/turing
■ www.turing.org.uk/turing/scrapbook/tmjava.html
■ www.cheransoft.com/vturing
These are only a few ideas. Remember that LEGO is beautiful because everyone has
a different way to approach and solve a problem, so take these tips only as simple sugges-
tions that you can expand and revise as much as you want.
Summary
In this chapter, we took a journey into the very origins of AI, building a revolutionary
device created to study computability: the Lego Turing Machine.
The purpose of the chapter was to see how you could create structures that contain
data, like the tape and its modifiable cells, and handle reading and writing of symbols on
it, using appropriate devices. We also learned how the state transition table, the “intelli-
gent” part of the model, could be coded with a programming language and used to con-
trol the entire behavior of the machine.
Even though the LEGO Turing Machine may seem a fairly simple model, it covers
many of the aspects that distinguish a true masterpiece: unconventional building solu-
tions, a particular way of programming, expansion possibilities, and a model that is really
beautiful to see in action.

