NoAssemblyRequired
Last edit May 5, 2004
"No Assembly Required: Compiling Standard ML to C" (1990) by David Tarditi, Peter Lee, Anurag Acharya (see
http://citeseer.nj.nec.com/tarditi90no.html
).
This paper shows how to compile Standard ML [
SmlLanguage
] to C [
CeeLanguage
] without compromises on portability and
ProperTailRecursion
by converting Standard ML code to a
ContinuationPassingStyle
LambdaCalculus
intermediate language which is then compiled to C.
The technique used is similar to the
RegisterTransformation
and
StackTransformation
techniques described in the book
EssentialsOfProgrammingLanguages
. (At least in the first edition. Apparently some of the more advanced chapters were cut or simplified for the second edition. However, see
http://www.cs.indiana.edu/~chaynes/c311/s95/hw11.ss
for examples of these techniques.)
Also see
CeeAsAnIntermediateLanguage
and
CheneyOnTheMta
.
CategoryPaper