archives

GNU epsilon - an extensible programming language

I haven't had a chance to check this out yet, so I'm putting this here, so that maybe one of you can report interesting things about it.

GNU epsilon - an extensible programming language, PhD thesis by Luca Saiu, with many familiar folks in the jury, including Peter Van Roy.

Reductionism is a viable strategy for designing and implementing practical programming languages, leading to solutions which are easier to extend, experiment with and formally analyze. We formally specify and implement an extensible programming language, based on a minimalistic first-order imperative core language plus strong abstraction mechanisms, reflection and self-modification features. The language can be extended to very high levels: by using Lisp-style macros and code-to-code transforms which automatically rewrite high-level expressions into core forms, we define closures and first-class continuations on top of the core. Non-self-modifying programs can be analyzed and formally reasoned upon, thanks to the language simple semantics. We formally develop a static analysis and prove a soundness property with respect to the dynamic semantics. We develop a parallel garbage collector suitable to multi-core machines to permit efficient execution of parallel programs.

More at http://www.gnu.org/software/epsilon/

Seeking feedback for a tutorial paper draft about GADTs

Hi Haskellers,

I have written a draft of an introductory-level tutorial paper about GADTs in Haskell (for submittion to proceedings of the recent LASER summer school) and I would like to seek initial feedback about its content: what information is probably missing? are there any subtle mistakes?

The main idea of this article was to serve as a starting point for learning GADTs (I was missing this kind of information myself some time ago), so I have collected several examples demonstrating common use cases.

Here is a link to the paper:
https://docs.google.com/open?id=0B9ZIIsDR0B7Hb1VBTFZOZEUzXzA