[plt-scheme] Teaching Scheme

From: Samuel Williams (space.ship.traveller at gmail.com)
Date: Mon May 3 09:57:30 EDT 2010

Dear Doug,

I appreciate your feedback.

In a certain sense, I agree that having the appropriate terminology is useful. In any subject, we are stuck with words which have vague definitions at best.

Compiled vs Interpreted is a very crude comparison - but I like the way you have summarized it.

As an interesting (counter?) example, we have JRuby. Ruby is interpreted by Java implementation of Ruby. Then, for optimization, we compile the Ruby AST (abstract syntax tree) into Java bytecode which runs directly on top of the JVM (still an interpreter). Then we expect the JVM to compile bytecode into native code, if it is suitable. Is JRuby compiled or interpreted? Who knows! I don't know! Both!

Well, after a bit of hand waving, its still useful to call JRuby an interpreted language, in my opinion. But it certainly isn't black or white :p

However, I agree that the terminology is important, and the distinction is important. We have to agree on something otherwise it becomes difficult to discuss and communicate.

Maybe Shriram, you can provide some insight into exactly what point of view you are taking, since we might be misinterpreting your response.

Kind regards,

On 4/05/2010, at 1:42 AM, Doug Williams wrote:

> As pointed out in your paper, the use of terms compiled versus interpreted is a long-standing, high-level generalization of programming languages. There are languages like FORTRAN and C that essentially go out of their way to bind things early specifically so they can be efficiently converted into machine language - i.e., compiled. Other languages like LISP (or Scheme) and Python go out of their way to delay binding for flexibility - which confounds efficient compilation to an extent. [And, yes the language designers often had exactly those distinctions in mind in designing specific languages - particularly those on the compiled side.] I personally find the distinction useful and definitely not nonsensical. I would say ignoring the conventional terminology is as bad as literally embracing them. Just my 2 cents.
> On Mon, May 3, 2010 at 6:50 AM, Shriram Krishnamurthi <sk at cs.brown.edu> wrote:
> Dear Mr. Williams,
> The phrase "interpreted", when applied to languages, is nonsensical.
> Think about it for a minute and it should be clear to you.
> The notion of programming language paradigms is also, in my opinion,
> largely nonsensical:
> http://www.cs.brown.edu/~sk/Publications/Papers/Published/sk-teach-pl-post-linnaean/
> I'm sure you have the best of intentions, but I have no idea what it
> is you're actually trying to accomplish -- in particular, why are you
> trying to reconstruct information that is already abundantly available
> on the Web?
> Shriram
> _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20100504/a3577344/attachment.html>

Posted on the users mailing list.