Alexey Shmalko 2021-11-21 17:11:57 👋 Hi, all! This is my first post on Alpha here, so I want to establish a little bit of context. (The next posts will be shorter.)
Alpha—a programming language for extensible systems (and hopefully malleable ones in the future). I imagine it as something in between of Julia, Emacs Lisp, and Smalltalk.
I’ve been working on it for a month now, so it’s still an infant. It has REPL, user-defined types, multi-methods, and a print function, but not much else 😁
So far it serves two purposes:
- it is a playground for me to experiment with PLT ideas (multi-methods, JIT, gradual typing, etc)
- it allows me to gain actual experience implementing languages (my problem is that I have too much knowledge and too little practice)
This week I was adding a garbage collector. It was tougher than I expected, but I got it working with the host language. The compiler still needs to be modified to produce the compatible code, so that’s the focus of the next week.
Here is a larger update for this week with memory layout images and some tips on debugging GC:
https://www.alexeyshmalko.com/alpha-3/