Version française
Home     About     Download     Resources     Contact us    
Browse thread
[ANN] OCaml-Java project: 1.0 release
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ 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