# yscheme
**Repository Path**: singleo0/yscheme
## Basic Information
- **Project Name**: yscheme
- **Description**: a compiler from Scheme into X64
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-09-04
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# YScheme - an experimental compiler for Scheme
This is the final submission for a compiler course I took from Kent Dybvig at Indiana
University. The compiler compiles a significant subset of Scheme into X64
assembly and then links it with a runtime system written in C. I made attempts
to simplify and innovate the compiler, so it is quite different from Kent's
original design.
In Kent's words, I put myself into trouble each week by doing things differently
and then get myself out of it. Sometimes I did better than his compiler,
sometimes, worse. But eventually I passed all his tests and got an A+.
A notable thing of this compiler is its use of _high-order evaluation contexts_,
an advanced technique used in CPS
transformers, which resulted sometimes in much simpler and shorter code.
### Copyright
Copyright (c) 2008-2014 Yin Wang, All rights reserved
Only the main compiler code is here. I don't have copyright of the rest of the
code (test framework, runtime system etc)
### References
For a history of the important compiler techniques contained in this compiler,
please refer to Kent's paper:
The Development of Chez
Scheme
For details of the compiler framework developed for the course, please refer to
For more information about CPS transformation, please refer to Andrew Appel's
book:
Compiling
with Continuations
and Danvy and Filinski's paper
Representing control: a study of the CPS transformation (1992)