4 ms·
We can blame von Neumann (et al) and his infernal architecture, where memory stores both instructions and data.
by thwarted 11mo ago
We can blame von Neumann (et al) and his infernal architecture, where memory stores both instructions and data.
- account42 11mo agoNot really, most of these configuration as code systems are not executed directly on the CPU but rather interpreted in which case a separate data-only memory would not stop anyone.
- josefx 11mo agoYou can blame whoever invented the word "if", as soon as you can branch based on data you can just write an interpreter that turns data into instructions, no matter the architecture.
- amelius 11mo agoYou need more than if for Turing completeness though.
- alexdns 11mo agoCorrect. You need at least 2 ifs.
- spooky_deep 11mo agoYou need unbounded recursion no?
- dotancohen 11mo agoThat's actually what two ifs could be.
- knollimar 11mo agoWas the case against the goto statement so good we can't mention it?
- dotancohen 11mo agoMore or less, I meant how this would be inlined in assembly with a goto that could goto back where the branching originated from.
- thwarted 11mo agoYou need conditionals and loops. Recursion counts as looping.
- anthk 11mo agoOr lambda. Or Forth commands. You can create an 'if' with few atoms.
- tovej 11mo agovon Neumann did not invent the von Neumann architecture. Not even a little bit. If you want to reason that the hardware is at fault, you should be blaming the Eckert-Mauchley architecture.
- deleted 11mo ago[deleted]
- pragma_x 11mo agoFWIW, you can make software that runs on Harvard architecture chips. They feature distinct address spaces for ROM and RAM. It's been a while, but it's how Atmel/Microchip AVR micros work. https://en.wikipedia.org/wiki/Harvard_architecture https://en.wikipedia.org/wiki/Harvard_architecture That said, I'm unaware of any programming language (outside assembler) that takes that split to heart in a higher-level way.