logoalt Hacker News

andsoitisyesterday at 3:15 PM1 replyview on HN

The core requirement for “programmability” is a machine whose behavior can be changed by altering symbolic instructions without rebuilding the machine.

The Banu Musa automatic flute player doesn’t meet this bar. The flute player was mechanically configured, not symbolically programmed. It had no conditional logic or flow control. No stored symbolic instructions.

To contrast, the Jacquard Loom used an externally stored instructions (punch cards). It allowed arbitrary-length instruction sequences, which is a primitive form of control flow.


Replies

112233yesterday at 3:36 PM

Punchcards are also mechanically configured, not symbolically programmed. If you see huge semantical difference between a card with holes and a cylinder with pins or a cam with groves, please explain that difference. Or is the "arbitrary length" the main difference?

I'd imagine something that changes operation based purely on state (position of a dial, presence of a peg in a slot etc) conceptually being "symbolic". Punchcards are not it.

show 2 replies