You may know about Alan Turing or John von Neumann, but what about John Vincent Atanasoff or Konrad Zuse? According to Wikipedia: > John Vincent Atanasoff (October 4, 1903 – June 15, 1995) was an American physicist and inventor credited with inventing the first electronic digital computer. Atanasoff invented the first electronic digital computer in the 1930s at Iowa State College (now known as…
In Bootstrap post-collapse OOP technology with Wasm GC (Part 2) we implemented the minimum viable runtime in raw WebAssembly to run our prelude and bootstrap a basic OOP language. But the prelude was provided to our runtime as text, and our runtime has no parser (yet), how do we feed the prelude it? In Part 1 I embedded the following video: The video description says: Demonstration of the…
In Bootstrap post-collapse OOP technology (Part 1) I sketched the minimal set of features a language has to provide to allow booting/bootstrapping the rest of our minimal object oriented language in itself. But if we are bootstrapping post collapse, we have to run the bootstrapping "prelude" in some implementation on top of hardware we can find. Collapse OS selected Z80, 8086, 6809 and 6502…
Quoting collapseos.org : Winter is coming and Collapse OS aims to soften the blow. It is a Forth operating system and a collection of tools and documentation with a single purpose: preserve the ability to program microcontrollers through civilizational collapse. But how do we preserve the ability to program OOP through civilizational collapse? In previous posts: Make Your Self , Macros and…
In the previous posts: Make Your Self and Macros and optimizations: it's just a phase I described the design and implementation of a minimal object oriented language with the implementation done in JavaScript. When we design our language on top of a high level language we may reuse accidentally or on purpose a lot of the host language semantics and make it hard to tell if our design is our own or…
This post builds upon the previous one where I built the smallest OOP language I could based only on message dispatch. Everything is as late bound as possible, even the language semantics, the core only has basic data types, a call stack and logic for message dispatch. In the previous post I implemented the semantics for evaluating expressions with enough message handlers to show arithmetic…
In Search of Maxwell's equations of Object Oriented Software Motivation Yes, that was the big revelation to me when I was in graduate school—when I finally understood that the half page of code on the bottom of page 13 of the Lisp 1.5 manual was Lisp in itself. These were “Maxwell’s Equations of Software!” This is the whole world of programming in a few lines that I can put my hand over. -- A…
Context This is a true story. The events depicted in this film took place in Minnesota in 1987. At the request of the survivors, the names have been changed. Out of respect for the dead, the rest has been told exactly as it occurred. — Fargo (1996 film) While writing WebAssembly from the Ground Up we reached the point where we needed to write an introduction. We decided to write one each and see…
Some weeks ago I was working on some explorable explanation for binary operators and I started thinking if there was any interesting work on making programming interactive, interesting, even fun. I asked on twitter, mastodon and the future of coding slack the following question: Do you know any games where the core game mechanic is about programming? Things like Zachtronics games , factorio or…
Edited from the transcript for readability: Ants actually have a really cool grouping algorithm. One of the things that they do is they keep their larva sorted by age and frequently things will happen where the larva get disordered because they had to move the colony or something, but they do it through just seemingly random behavior, they just randomly walk around pick up larva and put them down…