For my first pass, I've been thinking:
- macros
- continuations: on implementing prolog in functional programming
- meta object protocol + messages: mirrors
- type-directed programming: more types for nested data parallel programming
Fun exercise :)
I'll try to post soon about some of the fun PL design / analysis / optimization work I've been doing. We just finished a camera ready for a workshop but I won't be writing up any of my bigger papers (SIMD tree layouts, multicore scheduling, CSS semantics / layout engine synthesis, and adoption-oriented languages) until later this year. Need to kickstart the writing process :)
Kiselyov has some great stuff on laziness.
ReplyDeleteChakravarty+Keller's work is awesome stuff; great to hear that others appreciate it too.
ReplyDeleteLaziness is overrated. Sadly, SLPJ's POPL'03 talk isn't available in video format, and the slides are too silly-looking for a syllabus. But the basic idea is all they really need to know: Haskell isn't lazy because people like laziness -- it's lazy because every strict language ever created has succumbed to the siren song of impurity. SLPJ calls laziness the "hair shirt" Haskell wears to remind it to stay pure (the historical reference to the origins of the Anglican church is on the obscure side, if you ask me...).