Hacker News new | past | comments | ask | show | jobs | submit login
A Turing Machine built using LEGO (legoturingmachine.org)
62 points by itamarb on June 19, 2012 | hide | past | favorite | 15 comments



http://news.ycombinator.com/item?id=4126210

As I said there, I'm always deeply disappointed (less deeply as time goes by, I'm coming to expect it) when something like this in Lego is actually just a peripheral for a program running in silicon somewhere.

I no longer have any of my Lego, but I remember building most of a completely mechanical Turing Machine way back in the early 1970s. So satisfying seeing it work purely mechanically, and I'm sure someone with more creativity and skill than I had, or indeed have, could do it.

Please?


Here's one that uses an electric motor to power it - but no electronics:

http://hackaday.com/2011/03/25/mechanical-turing-machine-can...


Comments on Reddit suggest this is also a fully-mechanical Lego Turing Machine (including electric motor), but I haven't watched the full video to make sure there's no Mindstorms CPU kit:

http://www.turing2012.fr/?p=530&lang=en


It looks quite small? Given that it is an universal computer, I guess that is quite a feat.


That's mine. It's a physical implementation of a 5-symbol, 2-state Turing machine which was shown to be universal by Wolfram. If it were perfectly reliable (it isn't) and had an infinite tape (it doesn't) then it would be universal. Going to the extremes of low symbols and states makes it extremely inefficient in terms of code density, if you can apply that term to a Turing machine. The shortest program I've been able to write for it, doing unary subtraction of 3 and 2 would take about 60 hours and need a tape three times longer than I have.


Thanks for the correction - I doubted if such a relatively simple device could be universal (see comment below), but it's fascinating to learn that it is! :-)


Still, I am not sure how big other physical computers are (do any even exist)? I think it's cool :-)

Is there a compiler for it? :-)


It calculates a cellular automata called Rule 110 (http://en.wikipedia.org/wiki/Rule_110) which is very difficult to code for. I've seen a paper which shows a method for coding any Turing machine into rule 110, but most of it is beyond my mathematical ability at the moment. So far as I know nothing resembling a normal compiler exists for it.

It's actually much simpler to make a mechanical implementation of rule 110 directly, but Turing machines are more widely recognised.


It says it's a Turing Machine, I seriously doubt that it is a Universal Turing Machine.


Inaccurate. This isn't a Turing machine built using Lego. It's some simple memory which is then used by the Lego mindstorms CPU.


Actually, it is a Turing machine built using Lego. The part built using just Lego bricks however isn't a universal Turing machine. I don't see a claim anywhere that it's a UTM, just that it's a TM, which it clearly is.

BTW: The site links to the code running on the brick, which is a very simple parser for a basic TM language which interprets programs written in that language. So even though the "universal" part isn't done using basic bricks, it actually is a UTM.


I always find these physical Turing machines kind of silly. The Turing machines and UTM are theoretical devices used to solve a problem in mathematical logic.

Also, this particular machine isn't a UTM. It doesn't read its program from the tape, and therefore it's useless IMHO.

Now, if someone wants to build a UTM using the symbols and state transitions described in Turing's original paper then that would be worth looking at.


It's sole purpose is to demonstrate to people in an accessable fashion what a turing machine is.. and I'd say that this does a swell job of that [at least, their video on vimeo does].


The actual demonstration is kinda lacking - if you're observing the machine, you can't see what's going on in software, so there's still a layer of 'magic'. This isn't really much better than building a simple electronic computer with LEDs on each of its 32 bits of memory.

In some ways it's actually worse: for the electronic computer there are less layers of abstraction (digital logic [adders, flipflops etc] > logic gates > transistors > semiconductor physics) than for NXT (scripting language > interpreter > real language > compiler > digital logic > ...). Even though the NXT language is probably easier to understand, it takes longer to explain if someone keeps asking "but how does that work underneath?"


Instructions for how to build it would be nice. I see source code for the NXT brick, but no diagrams.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: