# 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)