Designing the view is really the less difficult of your tasks. In order to write a compiler you have first to create a language (or use an existing one) and then actually develop the compiler, that is the
lexer, the
parser, the
code generator, possibly the
optimizer and so on.
I suggest you to start reading books on compiler construction and have a look at tools like
ANTLR[
^].