Since Scheme is an old language the literature on Scheme compilers is surprisingly rich.
Some of the classics (can't recommend these enough):
"Lisp in Small Pieces" by Christian Queinnec
This book is a delight to read - and even includes a chapter on compiling to C.
"Three Implementation Models for Scheme" by R. Kent Dybvig
Dybvig's thesis. Very clear explanations. Explains how to implement
using a stack of frames (like C).
> - Expressing Scheme types in C data structures
Take a look at how Larceny represents Scheme values. The approach is fairly typical.
Reference counting has problems with cyclic data that becomes dead.
A simple stop-copy garbage collector would be a good place to start.
"Programming Languages: Application and Interpretation" (PLAI( by Shriram Krishnamurthi
has a chapter on memory management:
(There is a nice language for implementation garbage collectors available.
I can't find the linked exercises - have they moved?)