Browse thread
[ANN] OCaml-Java project: 1.0 release
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Till Varoquaux <till.varoquaux@g...> |
| Subject: | Re: [Caml-list] [ANN] OCaml-Java project: 1.0 release |
First of all I must apologize to everyone reading the list: I seem to have a bad case of dyslexia today and my previous mails are written in horrible english... Anyways; here goes for trampolines (straight from wikipedia): "Used in some LISP implementations, a trampoline is a loop that iteratively invokes thunk-returning functions. A single trampoline is sufficient to express all control transfers of a program; a program so expressed is trampolined or in "trampolined style"; converting a program to trampolined style is trampolining. Trampolined functions can be used to implement tail recursive function calls in stack-oriented languages." Trampolines tend to have a very high runtime cost. You have to think very carefully about the tradeoffs when converting a whole program to using them. HTH, Till On Tue, May 27, 2008 at 8:26 AM, <forum@x9c.fr> wrote: > Selon Till Varoquaux <till.varoquaux@gmail.com>: > >> On Tue, May 27, 2008 at 7:06 AM, Jon Harrop <jon@ffconsultancy.com> wrote: >> > On Tuesday 27 May 2008 06:46:23 forum@x9c.fr wrote: >> > 4. Are tail calls fully implemented and, if not, when exactly do they work? >> One cannot fully implement tail calls on the JVM: there's no such >> thing as a goto or a tail call instruction. >> Tail recursion can usually be done for cheap. The general requires >> some expensive machinery (usually trampolines) > > Well, to be precise the JVM provides a "goto" instruction, albeit limited > to offsets in the same method. This allows to easily implement tail calls > for direct recursion (and this is done in OCaml-Java). > Can you explain what you mean by "trampoline" in the Java/JVM context ? > > Xavier Clerc > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > -- http://till-varoquaux.blogspot.com/