7 simple steps to implementing a programming language