[racket] Using Scheme to design C programs
Before I started learning Scheme, I had a related but not as grand
experience in a compilers course.
I built my compiler in C++, but used MACROS FROM HELL for certain
aspects. I incidentally found an improvement to the way everyone was
implementing a certain algorithm, which was obvious in the poor-man's
DSL that I had implemented in CPP macros. I also wrote an Emacs Lisp
program to turn another DSL into some hairy C code that was required for
another part of the compiler. Ultimately, I was one of only two people
to get their compiler to work, which I attribute partly to Scheme-ish
mindset (and partly to having more experience at that point,
admittedly). Actually, the other student who finished had done
undergrad at MIT during the SICP era, so I'm going to credit Scheme-ish
thinking for his success too. :)
Thinking like DSLs and mini-languages is a big deal in software
development. Perhaps, as industry discovers that, they'll also discover
that Scheme is an excellent tool in that regard.
--
http://www.neilvandyke.org/