Newsgroups: comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!rochester!udel!gatech!news.mathworks.com!zombie.ncsc.mil!simtel!news.sprintlink.net!howland.reston.ans.net!swrinde!sdd.hp.com!hplabs!hplntx!hplntx.hpl.hp.com!gjr
From: gjr@hplgr2.hpl.hp.com (Guillermo (Bill) J. Rozas)
Subject: Re: Java imps not tail recursive
Sender: news@hpl.hp.com (HPLabs Usenet Login)
Message-ID: <GJR.95Aug1170233@hplgr2.hpl.hp.com>
In-Reply-To: blume@dynamic.cs.princeton.edu's message of 01 Aug 1995 01:45:14 GMT
Date: Wed, 2 Aug 1995 01:02:33 GMT
Reply-To: gjr@hplabs.hpl.hp.com
References: <RAMSDELL.95Jul30183001@linus.linus.mitre.org>
	<RAMSDELL.95Jul31063944@linus.linus.mitre.org>
	<BLUME.95Jul31214514@dynamic.cs.princeton.edu>
Nntp-Posting-Host: hplgr2.hpl.hp.com
Organization: /users/gjr/.organization
Followup-To: comp.lang.scheme
Lines: 32

In article <BLUME.95Jul31214514@dynamic.cs.princeton.edu> blume@dynamic.cs.princeton.edu (Matthias Blume) writes:

|   NNTP-Posting-Host: dynamic.cs.princeton.edu
|   In-reply-to: ramsdell@linus.mitre.org's message of 31 Jul 1995 10:39:44 GMT
|
|   In article <RAMSDELL.95Jul31063944@linus.linus.mitre.org> ramsdell@linus.mitre.org (John D. Ramsdell) writes:
|
|      The purpose of my last note was to warn Schemers that the Java
|      language specification fails to require that implementations of the
|      language be tail recursive.  In fact, the bytecode interpreter that
|      comes from Sun is not tail recursive.  Didn't we go through this
|      before with Dylan?
|
|   See Andrew Appel's book `Compiling with Continuations' for a critique
|   of the `has-to-be-properly-tail-recursive' requirement.  (He makes a
|   point by saying this requirements is arbitrary and weak -- a much
|   stronger requirement of being `safe-for-space' is more useful and more
|   desirable.  The tail-recursion optimization is just one of the many
|   instances addressed by that.)

Actually safe-for-space-complexity is just as arbitrary (and weaker
than others than I can imagine) and has an additional drawback, namely
that it is very hard to describe without first talking about
lambda-lifting.  

Proper-tail-recursion is simple to describe with respect to a naive
environment model as that presented in SICP.  However, this simple
model does not satisfy safe-for-space-complexity.

I have a hard time with a requirement that imposes the need for
compiling/pre-processing, and is subject to current implementation
technology.
