implementing a programming language as an educational project