Since my other thread degenerated into a "school bad, school good" flame war, I thought I would try again.

I have little academic OR practical background with programming.

I want to write a couple of compilers.

The compilers are for functional languages.

I would PREFER to write the compilers with functional languages (1, a Haskell to JVM compiler mostly in Haskell with with some Java, 2, Funcalc--a pedagogical spreadsheet in Kotlin.)

I'm pretty good at learning computer languages, and so far teaching myself Haskell has failed to produce insurmountable obstacles.

But programming compilers is supposed to be HARD, and very much indebted to theory (as in, things they DO teach in school).

I have no money for school, (and whether school produces better coders or not, I LIKE school, but that's irrelevant due to the money problem.)

Is it possible to teach yourself to write compilers in an imperative language? If so how?
Having learned to write compilers with imperative languages, how do you convert to writing compilers in functional languages (for example, given Haskell [thought by many to be hard], writing lexer-parser-compilers is considered easy)?


Regards,


Trent.