Writing a programming language from scratch for practice.