On Wed, 2008-07-09 at 13:45 +0200, Philipp Klaus Krause wrote:
> Jonathan S. Shapiro schrieb:
> 
> > If we want to use dynamic linking facilities, however (e.g. for code
> > reuse), we need the ability to generate code at run time (more
> > precisely: at dynamic link time). It is desirable to develop this
> > capability anyway, since that capability can be used to support an
> > interactive BitC environment.
> 
> Wouldn't this be problematic for embedded systems? If there's only a few
> KB of RAM and you want the program to live in a few dozen KB of ROM?

Philipp:

I'm having trouble resolving what "this" you are referring to. Let me
see if I can make a good enough guess to answer your question, but
please ask again if this doesn't do it.

I did not mean to say that all BitC implementations would be
interactive. I was trying to say that we want to be able to have *some*
BitC implementations that are interactive -- mainly because of the
benefit for interactive development environments.

It is very important for BitC to preserve the option for instantiation
at static link time so that no further instantiation can possibly be
required at run time. Hmm. Now that I think about it, perhaps there is a
fourth desirable model:

  Instantiate everything at system build time.

This is a specialization of static link time expansion, where you might
have a bunch of programs running in a fixed system, and you want those
programs to all share the same code space.


If we assume that there is an "instantiate at system build time" model,
then I think we have pushed about as far into the embedded space as any
other general-purpose language can do. The remaining questions amount to
"Can *any* 32-bit language reasonably be expected to function on a 4K-8K
heap". I certainly imagine that the answer to this might be yes in some
very special cases, and I think that BitC shouldn't be any different in
this respect from any other 32-bit language.


Now having said all of that, there may turn out to be a perverse middle
ground. It is possible to imagine programs where a large amount of
instantiation is required to execute the entire program, but most of
that instantiation appears on rare paths. For such programs, run-time
instantiation and code generation might provide a space savings.


shap

_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to