[cfe-dev] Summer of Code ideas
cdavis at mymail.mines.edu
Mon Mar 22 20:13:17 CDT 2010
On 3/22/10 6:46 PM, John Regehr wrote:
>> 1. Implement nesC support. nesC (which stands for "Networked Embedded
>> Systems C") is a dialect of the C language.
> The problem is that one of the main TinyOS targets, AVR, has no LLVM
> backend. The other main target, MSP430, has a backend that is slowly
> becoming useful but doesn't quite work yet.
> Maybe an AVR backend would be a better project?
Maybe. Only one problem. I don't have any AVR chips to test with, only
Maybe I should work on the MSP430 backend instead.
> Also, I'm not convinced that compiling via C is a problem for nesC. For
> some languages, there is substantial lost efficiency, but most of nesC
> is syntactically and semantically identical to C so there's little or no
> impedance mismatch.
Yes, but we still have to invoke two processes for every nesC program:
one to compile nesC -> C and one to compile C -> machine code. (I admit,
it's not as bad with nesC because all the sources in the program are
always taken together.)
Also, there are other tools like mig (not to be confused with a tool by
the same name needed to build the XNU kernel) and nesdoc that operate on
nesC code. It might be worthwhile to rewrite them, too, to be clang-based.
More information about the cfe-dev