Inventing a new PL
August 21, 2007
I’d like to implement a new programming language for my personal use. Here are some qualities I’m interested in:
- small: It should be as small as possible, like lambda calculus.
- extensible: All syntactic sugar added here. Also, must support compiler extensions.
- concurrent: need abstract notion of concurrency built in.
- typed: static is better than dynamic typing, but it should support both.
- lazy: the implementation can still be strict, but lazy gives more freedom to programmers
- modules: need a simple, yet reflective, module system.
- FFI: should be able to easily access foreign code, preferably C-like.
It seems like I could build my language on top of Clean. I’ll try writing some programs in Clean first.