Contribute Media
A thank you to everyone who makes this possible: Read More

What I learned building Forth in 64 bit Intel assembly


The computer programming language Forth was invented by Charles H. Moore in 1970. Forth is famous for being stack based and using reverse polish notation: the operators come after their operands. A Forth program to convert from Fahrenheit to Celsius (C = (F-32) × 5/9) is:

32 - 5 * 9 /

On 23rd August 2016 I had an urge to write a Forth system in 64-bit Intel Assembly. This talk is about what happens next.

In it I unpack what it means to implement a language. I dig a little into a lower-level description of typical computer hardware, and a little into 64-bit Intel Assembly. Compared to Python, Forth is a low-level language; compared to Assembly, Forth is a high-level language.

I'll talk about how we can implement one language in terms of another, by building models, and how we can model languages and model computational processes.

Forth is a tiny, but powerful, language. Moore's insight was to discover a language that was:

  • small
  • sufficient
  • easy to implement
  • extensible.

The result is that Forth implementations are typically composed of a tiny nucleus (typically in Assembly) surrounded by a larger amount of "Forth-in-Forth".

Come. Let's implement a language.


Improve this page