[Noisebridge-discuss] I am working through "The Implementation of Functional Programming Languages"

Crutcher Dunnavant crutcher at gmail.com
Tue Oct 27 21:55:19 UTC 2009


I tend to look rather askance at meta-programming; and to much prefer
layered language transforms.

With meta-programming, it becomes very difficult to make statements
about what properties the language has, or how its programs are
structured, without of course executing the meta-program. With layered
language transforms, each layer is a well-defined transformation from
one language to another, until you get down to the implementation
language.

I know meta-programming gives the programmer a lot of power, but so
does GOTO, and I think it ends up being just as dangerous in terms of
program comprehension. Maybe a little bit less, because of how clever
you have to be before you can even use meta-programming, but I still
think it is, fundamentally, a tarted up macro system, and
fundamentally messy.

One of the reasons I love the Haskell-like language's lazy evaluation
is that they permit the construction of novel flow-control mechanisms
without relying on meta-programming.

On Tue, Oct 27, 2009 at 2:48 PM, dpc <weasel at meer.net> wrote:
> dpc <weasel at meer.net> writes:
>
>> Crutcher Dunnavant <crutcher at gmail.com> writes:
>>
>>> Really? Is there a straight-forward way to compile Scheme down to run
>>> on System F and/or the G Machine? Both systems are based on lazy graph
>>> reduction, and assume immutability of data.
>>
>> i'm thinking more of managing environments/closure-ish things. there are
>> a bunch of issues in functional languages that are different than when
>> compiling algol-ish things.
>
> plus, i also tend to think of the implementation of the 'abstract
> machine' as part of the language implementation.
>
> \p
>
> ---
> Socialism can only arrive by bicycle. - Jose Antonio Viera Gallo
>



-- 
Crutcher Dunnavant <crutcher at gmail.com>



More information about the Noisebridge-discuss mailing list