At present I am working through an introduction to R and an introduction to Haskell. Both are fun, but Haskell is more fun--and harder.

I'm about a quarter of the way through each textbook.

I'm also in DES's Vocational Rehab, because I have three disabilities, two master's degrees, and work as a telephone customer service representative for low wages. My vocational rehab coach wants me to start contributing to an opensource project ASAP. I'd like to contribute to Frege (Haskell for the JVM) but it will be weeks before I can finish the Haskell book, and then I'd still be a newbie. The most advanced training I have is a community college certificate of completion in computer programming, so I'm not that sophisticated or experienced a programmer. I am having trouble convincing my worker that making a meaningful contribution to an opensource project is actually a daunting proposition in most cases. Is anybody looking for an entry-level contributor to an opensource project?

Anyway, there are opensource projects I'd like to work on.  One is extending and documenting Frege (https://github.com/Frege/frege). They want Haskell plugins translated into Frege+Java. The project, unfortunately, seems moribund. No matter, maybe it would be possible to "borrow" directly from the GHC after going over a compiler textbook with exercises.  Of course, what one would REALLY want would be a JIT Frege compiler, and I have a feeling you won't get that by slavishly translating the GHC.

The other, rather harder, project I want to work on is translating, then modifying and extending Peter Sestoft's Funcalc (Spreadsheet Implementation Technology: Basics and Extensions, 2014). I have some idiosyncratic ideas of what I want to do with a functional language that is a spreadsheet.  I want to target the JVM, and write most of the compiler/interpreter in a functional language. I'd use Frege + Java but Frege isn't nearly mature enough. I expect that if I ever do it, I'll use Kotlin + Java. 

That implies that future projects are going to be learning to write compilers and learning to code in Kotlin.

How might someone with the equivalent of an AA in CIS (not CS) emphasizing programming get competent at (human) reading and (human) writing of lexers-parsers-compilers-linkers? What are prerequisites.

Does anyone have favorite compiler textbooks? Any compiler textbooks they really hate?


Regards,

Trent Shipley