For the parsing aspects, reading about parser generators or the like would be super useful
Parser generators usually have a very limited number of target languages, so you might find yourself stuck into a language you do not want to code in.
I started out with Yacc, though, and that helped me out a lot more...