J'ai vu de nombreux curriculums CS et des suggestions d'apprentissage pour de nouveaux programmeurs qui appellent le programmeur en herbe à étudier un interprète lisp spécifiquement écrit en lisp. Tous ces sites disent des choses similaires à «c'est une révélation intellectuelle», «c'est une expérience d'illumination que tout programmeur sérieux devrait avoir» ou «il vous montre des relations matériel / logiciel» et d'autres déclarations vagues, en particulier de cet article tiré de ce mode d'emploi réputé .
Le sentiment général de ma question est, comment le lisp atteint-il les objectifs ci-dessus et pourquoi le lisp? Pourquoi pas une autre langue?
Je pose cette question parce que je viens de terminer l'écriture d'un interpréteur de schéma dans le schéma (tiré du SICP http://mitpress.mit.edu/sicp/ ) et maintenant j'écris un interprète python dans le schéma et j'ai du mal à avoir cette épiphanie légendaire qui est censé provenir spécifiquement de l'ancien. Je suis à la recherche de détails techniques spécifiques entre les deux langues que je peux exploiter dans leurs interprètes de schéma pour comprendre le fonctionnement des programmes.
Plus précisement:
Pourquoi l'étude d'un interprète écrit dans la langue qu'il interprète est-elle si soulignée - est-ce simplement un excellent exercice mental pour garder la langue originale et la langue construite droite ou y a-t-il des problèmes spécifiques dont les solutions ne peuvent être trouvées que dans la nature de la langue originale?
Comment les interprètes lisp démontrent-ils de bons concepts d'architecture pour la future conception de logiciels?
Que manquerais-je si je faisais cet exercice dans un langage différent comme C ++ ou Java?
Quel est le plat à emporter ou "outil mental" le plus utilisé dans cet exercice? **
** J'ai choisi la réponse que je l'ai fait parce que je l' ai remarqué que je l' ai acquise lors de cet exercice plus de compétences dans la conception d' outils d' analyse syntaxique dans ma tête que tout autre outil et je voudrais trouver différentes méthodes d'analyse qui peuvent mieux travailler pour le régime interprète que l'interpréteur python.