This is scheme version of si, which is implemented according to SICP and this version is mainly used to to help me understand the internal structure of interpreter, I will implement C version in other repo.
I am doing this project because I want to know the internal structure of interpreter, so that this projcet won't be a product qualited project, but merely a toy, and also I will first implement scheme version, which is much easier to implement, and after I have fully understand the functionality of the interpreter I will start to implement the C version, which involve so much memory manipluation.
Even though this will be just a toy implemention, but it will still has a goal, which include:
- implement a basic functionality of scheme, but not include
call/cc
call - implement a CL like macro system, which include
defmacro
,backquote
,comma
andcomma-at
primitive - implement a hygiene macro system which is embedded in
defmacro
, so that user will never required to deal with such issue
Something I will not implement:
- compiler, so that si will only be a interpreter, not a compiler
define-syntax
like macro system, which I think is much more ugly than defmacro- large set of system related call interface like
open
or read/write