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: | forum@x9c.fr <forum@x...> |
| Subject: | Re: [Caml-list] [ANN] OCaml-Java project: 1.0 release |
Le 27 mai 08 à 19:59, Florian Weimer a écrit : > * Till Varoquaux: > >> 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." > > I'm not sure if this is this a universally understood term. In GHC > land, this is called a "mini-interpreter". The mini-interpreter > doesn't > have to be *that* expensive if you can avoid consing, but this seems > to > require whole-program analysis (or, at the very least, rather powerful > inter-procedural escape analysis). > > I think I've heard this term mostly in the context of currying > (specifically, in the implementation of downward closures in languages > such as Ada). > Indeed, I was aware of such a technique but did not know the name "trampoline" (quite funny, by the way). It is highly improbable that I will implement this in OCaml-Java. I want to keep separate compilation, and the possibility of very-late linking as proposed by Java. Xavier Clerc