On 11 Sep 2009, at 4:45 pm, Brian Harvey wrote:

>> Says who?
>
> Says me, of course.  :-)
>
> I'm guessing (I could be wrong of course) that you're not old enough
> to
> remember the days before interactive computing.

Spot on, I'm a whippersnapper of thirty, who grew up with 1980s-era 8-
bit micros with BASIC REPLs :-)

>  People used to have to debug
> with both hands tied behind their back, effectively -- there wasn't
> a keyboard
> for them to /use/ their hands on.

But, I've done plenty of embedded work, the worst case of which being
that I had merely one LED as my debugging feedback. Still scarred, I
go into a killing rage whenever I see an eight-pin micro-controller...
I've sworn never to touch anything too limited to at least run FORTH ;-)

...so, yes, I do know the wonder of a REPL for debugging and hacking;
I'd have to not have the facility. Chicken, for example, is primarily
a compiler; it's a very static environment - but eval was written in
Scheme, somewhat metacircularly, and compiled with the Chicken
compiler, and lo, "csi", the Chicken REPL came to be. It's really a
different implementation, that merely happens to implement (almost)
the same language, and uses the underlying Scheme data model of the
compiled runtime so that you can call compiled closures (which is how
cons/car/cdr appear) and they use the same pairs and whatnot. AIUI the
interpreter 'compiles' lambdas into closures in the compiled world
that happen to have the code for the interpreter with the closure body
closed over within it or something like that, so interpreted-code
closures work fine with compiled higher-order functions.

I presume the macro-expansion phase in the compiler uses the same
implementation of eval as csi.

So on the one hand, the core Chicken language works fine without a
REPL, and one can then add one on top by implementing eval and then
writing a REPL...

ABS

--
Alaric Snell-Pym
Work: http://www.snell-systems.co.uk/
Play: http://www.snell-pym.org.uk/alaric/
Blog: http://www.snell-pym.org.uk/archives/author/alaric/




_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to