Ich habe viele CS-Lehrpläne und Lernvorschläge für neue Programmierer gesehen, die den angehenden Programmierer auffordern, einen Lisp-Interpreter zu studieren, der speziell in Lisp geschrieben ist. Alle diese Seiten sagen Dinge ähnlich wie „seine intellektuelle Offenbarung“, „es ist eine Erleuchtungserfahrung jeder ernsthafte Programmierer haben sollte“ oder „es zeigt Ihnen , Hardware / Software - Beziehungen“ und andere vage Aussagen, vor allem aus diesem Artikel entnommen aus dieses seriöse How-to .
Das allgemeine Gefühl meiner Frage ist, wie erreicht Lispel die oben genannten Ziele und warum Lispel? Warum nicht eine andere Sprache?
Ich frage dies, weil ich gerade mit dem Schreiben eines Schema-Interpreters im Schema fertig bin (entnommen aus SICP http://mitpress.mit.edu/sicp/ ) und jetzt schreibe ich einen Python-Interpreter im Schema und ich habe Mühe, diese legendäre Offenbarung zu haben das soll speziell von ersteren kommen. Ich suche nach bestimmten technischen Details zwischen den beiden Sprachen, die ich in ihren Schema-Interpreten verwenden kann, um zu verstehen, wie Programme funktionieren.
Genauer:
Warum wird das Studium eines Dolmetschers, der in der Sprache geschrieben ist, die er interpretiert, so betont? Ist es nur eine große mentale Übung, die Originalsprache und die gebaute Sprache gerade zu halten, oder gibt es spezifische Probleme, deren Lösungen nur in der Natur der Sprache zu finden sind? Ursprache?
Wie demonstrieren Lisp-Interpreten gute Architekturkonzepte für das zukünftige Softwaredesign?
Was würde ich vermissen, wenn ich diese Übung in einer anderen Sprache wie C ++ oder Java machen würde?
Was ist das am häufigsten verwendete Mitnehmer- oder "mentale Werkzeug" aus dieser Übung? **
** Wie wähle ich die Antwort , die ich tat , weil ich habe bemerkt , dass ich von dieser Übung mehr Geschick bei der Gestaltung Parsen Werkzeugen in meinem Kopf als jedes andere Werkzeug gewonnen haben , und ich möchte verschiedene Methoden finden , dass der Parsen besser für die Regelung kann arbeiten Interpreter als der Python-Interpreter.