On Thursday 02 April 2009 15:36:38 kirk wrote:
> Jon Harrop wrote:
> > On Thursday 02 April 2009 15:09:12 Charles Oliver Nutter wrote:
> >> It's not necessarily Sun's choice when it exhibits external behavioral
> >> changes. Such changes must be standardized so all JVMs will support
> >> them. If it were just up to Sun, it would probably go in (since I know I
> >> want it and several others want it).
> >
> > Ok. I only care about Sun's JVM because it is the defacto standard. If
> > tail calls are not adopted as a standard across all JVMs, what are the
> > odds of Sun including them just in its own JVM as an extension?
>
> why do they have to be exposed? Isn't tail recursion and implementation 
> detail? And an optimization at that? 

Elimination of tail calls is a requirement for certain kinds of program to run 
correctly. If tail calls are not eliminated, such programs leak stack space 
until they die from a stack overflow exception.

In particular, tail calls are important in functional programs because that 
paradigm encourages the composition of functions into arbitrarily-long 
pipelines that data flow through in order to produce the desired result. 
Without tail calls, every stage in the pipeline leaks stack space.

Note that "tail recursion" is a term typically used to describe the special 
case of tail calls where the branch target is statically known and is often a 
self-call. In general, tail calls refer to any calls in tail position and 
they may well be calls to locations that are not statically known. Hence TCO 
implementations often globally alter the calling convention used internally 
by the VM and this can introduce disadvantages such as degraded performance 
on other code.

-- 
Dr Jon Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/?e

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "JVM 
Languages" group.
To post to this group, send email to jvm-languages@googlegroups.com
To unsubscribe from this group, send email to 
jvm-languages+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/jvm-languages?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to