As part of my research and courses, I have been implementing various languages in Scheme using the Gambit Scheme compiler. Three compilers implemented this way stand out:
1) ETOS, an Erlang to Scheme compiler which generates code that is roughly as fast as the HIPE native code compiler for Erlang. Here's a paper on it:
http://www.iro.umontreal.ca/~feeley/papers/etos.ps . Also there is a (old) web page with the code:
http://www.iro.umontreal.ca/~etos/ .
2) SIX, the "Scheme Infix syntaX" is a C-like syntax supported by the Gambit reader. Gambit comes with macros which implement a semantics very close to C. For example:
% gsi
Gambit v4.4.0
> \ for (int i=1; i<5; i++) pp(i*i);
1
4
9
16
> ' \ for (int i=1; i<5; i++) pp(i*i);
(six.for (six.define-variable (six.identifier i) int () (six.literal 1))
(six.x<y (six.identifier i) (six.literal 5))
(six.x++ (six.identifier i))
(six.call
(six.identifier pp)
(six.x*y (six.identifier i) (six.identifier i))))
3) A student of mine wrote a fairly complete Java compiler in Scheme which compiled Java to Scheme.
Marc Feeley