[racket] Redex question: parameterizing a language definition

From: Lindsey Kuper (lkuper at cs.indiana.edu)
Date: Thu Apr 4 18:48:14 EDT 2013

On Thu, Apr 4, 2013 at 11:19 AM, David Van Horn <dvanhorn at ccs.neu.edu> wrote:
> On 4/4/13 11:15 AM, Matthias Felleisen wrote:
>> On an unrelated note, you may wish to experiment with lambdaLVar
>> as a #lang so that you can write programs. Since you seem to be
>> designing a PL, I consider the practical evaluation as at least
>> as important as a reduction semantics. Just a thought. [My gain for
>> Racket would be that someone who does parallel 'stuff' uses our
>> parallel features.]
>
>
> By the way, as a first step, it's very easy to construct #lang languages out
> of redex models.
>
> There are some details in this thread:
>
>    http://lists.racket-lang.org/users/archive/2012-October/054468.html

That is *very* cool.  I had been wondering if programs written in
languages-implemented-in-Redex could be decoupled from Redex like
that.   Thanks for pointing it out.

> Of course, you'll probably want to eventually implement this language in
> something more efficient than Redex, but at least this gets you to the point
> of writing and running programs in your language.

Lest I give the impression that the only way to write programs with
LVars is to write programs in lambdaLVar, I should point out that we
now have a prototype Haskell implementation of an LVar library [0],
and some preliminary benchmarking results can be found in our new
paper draft [1]. We want to eventually have LVar libraries for various
languages, on top of which people can implement LVar-based data
structures.  lambdaLVar is a minimal substrate for LVars, but it's not
too pleasant to write programs in (although the #lang decoupling could
help).

Lindsey

[0] https://github.com/iu-parfunc/lvars/tree/master/haskell-prototype
[1] https://www.cs.indiana.edu/~lkuper/papers/2013-lvars-draft.pdf

Posted on the users mailing list.