The Vala language, in which I implement Odysseus, is (much like CoffeeScript is to JS) a relatively simple transpiler to C. One who's main job is to add additional typechecking & abstract most uses of function pointers, void pointers, & memory management away behind pretty C#-like syntax.
That is it parsed it's own Syntax to an AST, typechecks it, compiles it down into an AST for C, and has the C compiler parse that again to output assembly.
Not a bad language, I much prefer it over Java.