Widziałem wiele programów CS i sugestii dotyczących uczenia się dla nowych programistów, którzy wzywają początkującego programistę do studiowania interpretera lisp, który jest specjalnie napisany w lisp. Wszystkie te witryny mówią coś podobnego do „to intelektualna rewelacja”, „jest to oświecenie, które powinien mieć każdy poważny programista” lub „pokazuje relacje sprzętowe / programowe” i inne niejasne stwierdzenia, szczególnie z tego artykułu zaczerpniętego z ten renomowany poradnik .
Ogólne zdanie mojego pytania brzmi: w jaki sposób seplenienie osiąga powyższe cele i dlaczego seplenienie? Dlaczego nie jakiś inny język?
Pytam o to, ponieważ właśnie skończyłem pisać interpreter schematów w schemacie (wzięty z SICP http://mitpress.mit.edu/sicp/ ), a teraz piszę interpretera schematów w schemacie i walczę o to, by legendarne objawienie który ma pochodzić konkretnie z tego pierwszego. Szukam konkretnych szczegółów technicznych między dwoma językami, które mogę wykorzystać w swoich tłumaczach schematów, aby uzyskać zrozumienie na temat działania programów.
Dokładniej:
Dlaczego akcentowanie nauki tłumacza napisanego w języku, który interpretuje, jest tak podkreślone - czy to tylko świetne ćwiczenie umysłowe, aby zachować oryginalny język i język zbudowany, czy też istnieją konkretne problemy, których rozwiązania można znaleźć tylko w naturze Oryginalny język?
W jaki sposób tłumacze lisp demonstrują dobre koncepcje architektury dla przyszłego projektowania oprogramowania?
Czego bym przegapił, gdybym wykonał to ćwiczenie w innym języku, takim jak C ++ lub Java?
Jakie jest najczęściej używane na wynos lub „narzędzie mentalne” z tego ćwiczenia? **
** Wybrałem odpowiedź zrobiłem, bo nie zauważyłem, że zyskały więcej od tego ćwiczenia umiejętności w projektowaniu narzędzi analizowania w głowie niż jakikolwiek inny jednym narzędziu i chciałbym znaleźć różne metody przetwarzania, które mogą działać lepiej dla programu interpreter niż interpreter python.