C-- is a compiler TargetLanguage developed by SimonPeytonJones, NormanRamsey, and others. It is intended as a portable AssemblyLanguage that can replace CeeLanguage as a target language used by compiler writers.
From http://www.cminusminus.org/
"C--: a portable assembly language that supports garbage collection"
"Abstract: For a compiler writer, generating good machine code for a variety of platforms is hard work. One might try to reuse a retargetable code generator, but code generators are complex and difficult to use, and they limit one's choice of implementation language. One might try to use C as a portable assembly language, but C limits the compiler writer's flexibility and the performance of the resulting code. The wide use of C, despite these drawbacks, argues for a portable assembly language. C-- is a new language designed expressly for this purpose. The use of a portable assembly language introduces new problems in the support of such high-level run-time services as garbage collection, exception handling, concurrency, profiling, and debugging. We address these problems by combining the C-- language with a C-- run-time interface. The combination is designed to allow the compiler writer a choice of source-language semantics and implementation techniques, while still providing good performance." http://www.eecs.harvard.edu/~nr/pubs/c--gc.pdf