jsn: (Default)
jsn ([personal profile] jsn) wrote2010-07-19 02:21 pm

sillyscheme update

Мой проект sillyscheme, будучи меньше недели от роду, внезапно оказался в стадии почти R4RS compliant, и как-то даже кажется, что R5RS реализовать может оказаться подъёмно и интересно.

Реализован Lisp-1 (scheme) со следующими фичами:
  • Lexical scope / Closures,
  • call-with-current-continuation и reusable continuations,
  • Tail call elimination,
  • Automatic memory management (tri-color stop-the-world mark-and-sweep garbage collection),
  • Арифметика целая и плавающая,
  • Негигиеничные макросы через defmacro,
  • eval, read, print и ещё несколько десятков функций и спецформ из R5RS / R4RS (в основном написанные на уже реализованном сабсете scheme).

Нету: обработки ошибок, поддержки векторов, гигиенических макросов.

Главным достижением проекта является, конечно файл README.rst (на английском), который пока, к сожалению, только [livejournal.com profile] bish0nen оценил по достоинству.

Всё вместе -- < 1000 lines of C + < 100 строк на scheme.

Работы по проекту приостановлены в связи с полным отсутствием свободного времени. Будут возобновлены, наверное, когда [livejournal.com profile] avva в своём проекте приблизится к garbage collection, hygienic macros или tail calls elimination.

[identity profile] alexott.livejournal.com 2010-07-19 12:46 pm (UTC)(link)
ссылка на "A Rational Deconstruction of Landin's SECD Machine" неправильная - указывает на гитхаб

[identity profile] jsn.livejournal.com 2010-07-19 01:09 pm (UTC)(link)
ага, спасибо, исправлено.

[identity profile] ifp5.livejournal.com 2010-07-20 09:52 am (UTC)(link)
А чего такого достиг файл README.rst, что-то не догоняю? Ты наконец-то перешел с troff на restructured text? :)

[identity profile] jsn.livejournal.com 2010-07-20 11:00 am (UTC)(link)
Я никогда не пишу никакую документацию (ни на troff-е, ни на rst :)