Rbsiev
SICP evaluator in Ruby.
Or, Ruby で書いた SICP の evaluator.
It is intended to be a part of Scheme implementation written in Ruby.
Installation
Execute:
$ gem install rbsiev
Usage
Run the simple REPL as:
$ rbsiev
Then, you can input Scheme program.
Supported Syntax
In 0.1.0, the evaluator mostly corresponds to the one in SICP 4.1.1 - 4.1.6.
See the wiki page for more information about the progress of implementing.
Literals
- boolean value (
#fand#t), - an empty list (
()), - a string enclosing with double-quotations, such
"hoge" - numbers (integer, real, rational, and complex)
Primitive procedures
- arithmetic operators (
+,-,*,/,%), - comparison operators (
=,<,>,<=,>=) cons,car,cdrnull?,pair?,list?,number?list,appendwrite,display
Syntax to be evaluated
- lambda expression
- such
(lambda (n) (+ n 1))
- such
- procedure application
- such
(foo 1)
- such
- conditional expression
if,cond,when,unless
- logical test
and,or
- assignment
set!
- definition
define
- sequence
begin
- local bindings
let,let*,letrec,letrec*
- loop
do
Related projects
- Lexical Analyzer for Scheme - mnbi/rbscmlex
- Abstract Syntax Tree and Syntax Analyzer for Scheme - mnbi/rubasteme
- Ruby wit Syntax Sugar of Scheme - mnbi/rus3
- A small Scheme implementation in Ruby - mnbi/rubeme
Development
After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/mnbi/rbsiev.
License
The gem is available as open source under the terms of the MIT License.