маленький и читаемый интерпретатор схем в C ++? - PullRequest
22 голосов
/ 10 апреля 2010

Кто-нибудь знает хороший / маленький интерпретатор схем в C ++? Желательно что-то

Спасибо!

Ответы [ 5 ]

14 голосов
/ 15 апреля 2010

Ну, есть очень крошечный шепот Гари Нотта. Даже не близко к R5RS, но он маленький, и поставляется с книгой, описывающей внутренности! Однако это C, а не C ++, и, насколько я помню, нет GC (но я могу ошибаться) .

Есть также Мини-схема Нильса Холма, но она также C и немного больше, чем вы просили (2404 строки C плюс 1352 схемы). Нильс также написал Схему 9 из пустого пространства , которая больше, но также поставляется с книгой, описывающей каждый фрагмент кода.

Tinyscheme - еще одна маленькая Схема (4500 строк C плюс 452 Lisp) ...

3 голосов
/ 10 апреля 2010

Вот длинный список реализаций схемы:

http://community.schemewiki.org/?scheme-faq-standards#implementations

Некоторые из них являются встраиваемыми интерпретаторами, в основном на C. Это не должно быть преградой для C ++.

2 голосов
/ 10 апреля 2010

К сожалению Реализация схемы не организована на основе таких практических критериев. :)

Я нашел один интерпретатор схемы в C ++ , который вы могли бы проверить, чтобы убедиться, что он соответствует вашим потребностям. Я не пробовал этот конкретный, так что это не одобрение.

0 голосов
/ 20 мая 2017

Я начал проект в моем университете, чтобы сделать именно это. Shaka Scheme - это попытка реализовать R7RS в C ++.

Мы работаем над реализацией макросов и продолжений на момент написания и сосредоточимся на модели реализации после R. Распределенная куча модель диссертации Дибвига для оценки .

В будущем мы надеемся создать полностью понятную базу данных документации через вики-сайт GitHub, посвященную нашей разработке и методологии, чтобы сделать реализацию Scheme доступной для чтения новичкам.

0 голосов
/ 21 апреля 2010

Есть также Схема Гамбита. Он также написан на C и имеет то преимущество, что он предназначен для встраиваемости. Я лично использовал его для встраивания схемы в Excel 2003 !

Несмотря на то, что он очень много в процессе работы, он отлично работает, и вы можете легко адаптировать его к тому, что вам нужно в C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...