2010-04-09 12 views
21

Ktoś wie o tłumaczeniu z dobrego/małego schematu w C++? No cóż, jest to coś, co można nazwać < 2000 LOC, za pomocą zwykłego garbage collectro (kompaktowanie lub oznaczenie &), bez potrzeby obsługi całego R5RS, tylko podstawowe informacje o/lambda/set!/Cons/car/cdr i kilka podstawowych operacji.mały i czytelny interpreter schematów w C++?

Dzięki!

Odpowiedz

2

Niestety, zgodnie z praktycznymi kryteriami, Scheme Implementations nie organizuje się. :)

Znalazłem jeden Scheme Interpreter in C++, który możesz sprawdzić, czy pasuje do Twoich potrzeb. Nie próbowałem tego konkretnego, więc nie jest to poparcie.

13

Cóż, jest tam veeery tiny lisp autorstwa Gary'ego Knotta. Nawet nie zbliżony do R5RS, ale jest mały i pochodzi z książką opisującą elementy wewnętrzne! Jednak to C, nie C++, i o ile pamiętam nie ma GC (ale mogę się mylić).

Jest też Mini Scheme autorstwa Nilsa Holma, ale jest też C i nieco większy niż to, o co pytałeś (2404 linie C plus 1352 schematu). Nils napisał także: Scheme 9 from Empty Space, który jest większy, ale zawiera także książkę opisującą każdy fragment kodu.

Tinyscheme to kolejny mały Scheme (4500 linii C Plus 452 z Lisp) ...

+0

+1 dla s9fes. Bardzo przydatne! – JasonFruit

0

Jest też Program Gambit. Jest również napisany w języku C i ma tę zaletę, że jest przeznaczony do osadzania. Osobiście użyłem go do embed Scheme inside Excel 2003!

Mimo że jest bardzo pracochłonna, działa dobrze i można go łatwo dostosować do potrzeb C++.

0

Rozpocząłem projekt na moim uniwersytecie, aby zrobić dokładnie to. Shaka Scheme to próba wdrożenia R7RS w C++.

Pracujemy nad wdrożeniem makr i kontynuacji od momentu ich napisania, a skoncentrujemy się na modelu wdrożenia po R. Kent Dybvig's dissertation's heap-allocated model for evaluation.

Mamy nadzieję, że w przyszłości będziemy dysponować w pełni zrozumiałą bazą danych dokumentacji za pośrednictwem wiki GitHub naszego projektu i metodologii, dzięki czemu wdrożenie schematu będzie czytelne dla początkujących.