Step 1. Write a program that reads the input program into a data structure that exactly represents the language. You just wrote a parser.
Step 2. Write a program that operates on the data structure from (1) to execute the program. You just wrote an interpreter.
Step 3 (Optional): Write a program that converts the data structure from (1) into a different data structure that you can interpret more efficiently. You just wrote an optimizer.
Step 4 (Optional): Keep iterating on (3) until the output of your optimizer is machine code. You just wrote a compiler.
Not saying the above obviates the need for a book like this one (at all), I just had never thought of it in quite this way and wanted to write it down. :)