[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CPS in Parrot (was: A plea for a new old language)



[Matthias Felleisen <matthias@ccs.neu.edu>]
> 
> 5. The Indiana school of thought has successfully taught hundreds and 
> thousands of
> students how to use callcc-continuations (1) and how to implement 
> languages using CPS (2).
> Yes, it is about teaching. In my experience, the worst one can do is 
> teach the "how to use" callcc
> continuations (1) with an explanation of how cps-continuations (2) 
> work. This implementation
> perspective of teaching programming is a disaster in this small issue 
> and in general, too.
> 

This is a good clarification, and I agree that the waters have gotten
quite muddy here.

You suggest that an understanding of CPS is NOT requisite for an
understanding of how to use first-class continuations as a language
feature. The teaching question that Dan's trying to address with
Parrot, though, is a bit different. (Inverse, converse? I can never
remember...)

In your vocabulary, he's trying to explain to programmers how
cps-continuations (2) work, and he's arguing that the worst one can do
is teach them with an explanation of "how to use" callcc continuations
(1).

So, apparently, in terms of teaching, CPS and "how to use callcc
continuations" are orthogonal, just as they are in terms of
implementation.

In your teaching experience, would you agree that an understanding of
callcc and first-class continuations is NOT requisite for an
understanding of language implementation using CPS?

Matt

-- 
Matt Hellige                  matt@immute.net
http://matt.immute.net