[cfe-dev] Summer of Code ideas

Charles Davis cdavis at mymail.mines.edu
Mon Mar 22 18:13:17 PDT 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
some MSP430s.

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.

Chip




More information about the cfe-dev mailing list