I just want to make sure students (and therefore my future software developers) understand why languages like FORTRAN and C (as examples) have the semantics that they have, why languages like LISP (or Scheme) and Python (as examples) have the semantics they have, and why those semantics are different. I think it is rather interesting that FORTRAN and LISP (in its various flavors) as two of the earliest languages are still the two exemplars of the extremes. [As an American, maybe I should call FORTRAN a 'conservative or republican' language and LISP as a 'liberal or democratic' language. I can't help but notice that, in that case, the liberal languages seem to be more factionalized than the conservative ones.] More 'modern' languages seem to fill in between them.<br>
<br><br><div class="gmail_quote">On Mon, May 3, 2010 at 7:57 AM, Samuel Williams <span dir="ltr"><<a href="mailto:space.ship.traveller@gmail.com">space.ship.traveller@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div style="word-wrap: break-word;">Dear Doug,<div><br></div><div>I appreciate your feedback.</div><div><br></div><div>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.</div>
<div><br></div><div>Compiled vs Interpreted is a very crude comparison - but I like the way you have summarized it.</div><div><br></div><div>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!</div>
<div><br></div><div>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</div><div><br></div><div>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.</div>
<div><br></div><div>Maybe Shriram, you can provide some insight into exactly what point of view you are taking, since we might be misinterpreting your response.</div><div><br></div><div>Kind regards,</div><div>Samuel</div>
<div><div></div><div class="h5"><div><br><div><div>On 4/05/2010, at 1:42 AM, Doug Williams wrote:</div><br><blockquote type="cite">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.<br>
<br><div class="gmail_quote">On Mon, May 3, 2010 at 6:50 AM, Shriram Krishnamurthi <span dir="ltr"><<a href="mailto:sk@cs.brown.edu" target="_blank">sk@cs.brown.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Dear Mr. Williams,<br>
<br>
The phrase "interpreted", when applied to languages, is nonsensical.<br>
Think about it for a minute and it should be clear to you.<br>
<br>
The notion of programming language paradigms is also, in my opinion,<br>
largely nonsensical:<br>
<br>
<a href="http://www.cs.brown.edu/%7Esk/Publications/Papers/Published/sk-teach-pl-post-linnaean/" target="_blank">http://www.cs.brown.edu/~sk/Publications/Papers/Published/sk-teach-pl-post-linnaean/</a><br>
<br>
I'm sure you have the best of intentions, but I have no idea what it<br>
is you're actually trying to accomplish -- in particular, why are you<br>
trying to reconstruct information that is already abundantly available<br>
on the Web?<br>
<br>
Shriram<br>
_________________________________________________<br>
For list-related administrative tasks:<br>
<a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme" target="_blank">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</a><br>
</blockquote></div><br>
</blockquote></div><br></div></div></div></div></blockquote></div><br>