I may not be the best one to talk, but writing a compiler in something like Java/Haskell sounds like it would be incredibility slow if you wanted to get some real world usage out of it. If you already know some Java, why not take a dive into a real lower level language like C/C++ already? -- C/C++ have been used to write a lot of compilers/interpreters. Speaking of, check out Bisqwit's video on writing a compiler.
https://www.youtube.com/watch?v=eF9qWbuQLuw&t=652sIf half way in that video already feels like it's a little too much to handle, perhaps you are not ready. -- No offense. I've tried to taken a nose dive attempting to write a MMO game from scratch and got burned from it pretty quickly after I realized how evolve you really must be. Just don't want you to waste your time, if it could be spent doing something more practical. Otherwise, if you can sit through the hole video and understand how to interpreter into xyz language, by all means go ahead and mess around, and do some Googling around on the Internet. There are 100s examples out there how to make interpreters/compilers.