At some point I will do a 'splainer.
...with the caveat that I'm not a Hoon programmer, an Urbit expert, or any of that. I've just read the docs a bunch of times and think I kinda grok it.
#UrbitThread <--- so I can find this laterhttps://twitter.com/thepiclord/status/1085184299333083141 …
-
Show this thread
-
2/ Let me start w a tiny bit of intro. Every computing thing sits atop a CPU. A CPU is a chip that executes instructions. Instructions are a set of N different integers. On the x86 series, integer 0x10 = 16 is "add"https://en.wikipedia.org/wiki/X86_instruction_listings …
2 replies 0 retweets 4 likesShow this thread -
3/ x86 is an example of a CISC chip (complex instruction set chip). It has hundreds (thousands?) of different instructions. This level of complexity is hard to test as being correct...and can't be PROVEN to be correct. (Remember the "x87 bug" ? https://en.wikipedia.org/wiki/Pentium_FDIV_bug … )
1 reply 0 retweets 2 likesShow this thread -
4/ The opposite of CISC is RISC. REDUCED instruction set computer. The smaller the instruction set, the easier to prove correctness. OK, so that's hardware CPUs. Say that we want to build something clean and tidy that abstracts away from the silicon CPU. What do we do?
1 reply 0 retweets 0 likesShow this thread -
5/ We define a VIRTUAL machine. We write some software that runs on the actual silicon CPU and which simulates some other CPU. Which other CPU? What model? What brand? Here's a crazy thing: any! ...and you can even invent your own fictional CPU!
2 replies 0 retweets 4 likesShow this thread -
6/ Java did this, and their virtual machine is called the JVM (Java Virtual Machine)https://en.wikipedia.org/wiki/Java_virtual_machine …
1 reply 0 retweets 1 likeShow this thread -
7/ Urbit has done this too, and their virtual CPU is called "Nock" or "the Nock VM" or something. It's a RISC design (reduced instruction set). It has just 10 or 12 or so integer opocodes. https://urbit.org/docs/learn/arvo/nock/definition/ …
1 reply 0 retweets 2 likesShow this thread -
8/ You either are a coder, or you have friends who are coders, right? They don't program x86 chips using integers. They use higher level languages like C / C++ / Ruby / Python, which are then boiled down by other software into a sequence of integers that the x86 silicon groks
3 replies 0 retweets 4 likesShow this thread -
This Tweet is unavailable.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.