Подтвердить что ты не робот

Маленький и читаемый интерпретатор схем в С++?

Кто-нибудь знает о хорошем/маленьком интерпретаторе схемы в С++? Напротив, 2000 LOC, с простым сборщиком мусора (либо с уплотнением, либо с меткой и разверткой), не нужно поддерживать все R5RS, просто основы if/lambda/set!/Cons/car/cdr и некоторые основные операции.

Спасибо!

4b9b3361

Ответ 1

Хорошо, там есть veeery small lisp от Gary Knott. Даже близко к R5RS, но он маленький, и поставляется с книгой, описывающей внутренности! Однако это C, а не С++, и насколько я помню, там нет GC (но я мог ошибаться).

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

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

Ответ 2

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

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

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

Ответ 3

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

Я нашел один Scheme Interpreter на С++, который вы можете проверить, чтобы он соответствовал вашим потребностям. Я не пробовал этот конкретный, так что это не одобрение.

Ответ 4

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

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

Ответ 5

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

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

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