Re: [Embeddedml-user] no subject
Brought to you by:
andrew36b
From: Andrew H. <and...@gm...> - 2008-10-15 14:27:24
|
Hi Felix, On Wed, Oct 15, 2008 at 2:54 AM, Felix Winkelmann <fw...@em...> wrote: >> Yes, the C backend is indeed trampoline based -- the trampoline code >> can be found in the main.c file created as the C output. Also, yes, >> the compiler does general CPS conversion. We've defined the compiler >> backend as the very last step of the compilation process, where the >> cps converted, alloc converted and closure converted code is mapped >> into C (or Forth). The compiler is based on Appel's book, so in many >> respects it's probably similar to sml/nj. > > Ah, thanks for that information. What sort of garbage collection > algorithm is used, if I may ask? Currently a simple two space stop and copy collector is used. You can find the implementation of the memory allocation routines (alloc_untraced, alloc_traced_string, alloc_traced_array, and alloc_tagged) as well as the underlying garbage collector in the runtime-c.c file that is created as part of the C output. >> I actually gave that talk a couple days ago :) I'll send you a link >> to the presentation materials when they get online (hopefully soon). > > Excellent. Please do so, I'm looking forward to learn more about > embeddedml. I actually wrote an M.S. thesis about the new backends to the compiler. I uploaded the thesis as an uploadable file to the embeddedml project. You can get the file from this link: http://downloads.sourceforge.net/embeddedml/harris_thesis.pdf?use_mirror= There is also a new "documentation" page on the embeddedml website http://embeddedml.sourceforge.net hope this helps, -andrew |