Eu já vi muitos currículos de CS e sugestões de aprendizado para novos programadores que pedem que o aspirante a programador estude um intérprete de cisco escrito especificamente em cisco. Todos esses sites dizem coisas semelhantes a "é uma revelação intelectual", "é uma experiência de iluminação que todo programador sério deveria ter" ou "mostra as relações de hardware / software" e outras declarações vagas, principalmente de deste artigo, retirado de este respeitável como fazer .
O sentimento geral da minha pergunta é: como o lisp alcança os objetivos acima e por que o lisp? Por que não outra língua?
Estou perguntando isso porque acabei de escrever um interpretador de esquema em esquema (retirado do SICP http://mitpress.mit.edu/sicp/ ) e agora estou escrevendo um interpretador de python em esquema e estou lutando para ter essa epifania lendária isso deveria vir especificamente do primeiro. Estou procurando detalhes técnicos específicos entre os dois idiomas que posso explorar em seus intérpretes de esquema para entender melhor como os programas funcionam.
Mais especificamente:
Por que o estudo de um intérprete escrito na linguagem que ele interpreta é tão enfatizado - é apenas um ótimo exercício mental manter a linguagem original e a linguagem construída corretas ou existem problemas específicos cujas soluções só podem ser encontradas na natureza da linguagem? linguagem original?
Como os intérpretes lisp demonstram bons conceitos de arquitetura para o futuro design de software?
O que eu sentiria falta se fizesse esse exercício em uma linguagem diferente como C ++ ou Java?
Qual é a explicação mais usada ou "ferramenta mental" deste exercício? **
** Eu selecionei a resposta que eu fiz porque eu tenho notado que eu ganhei com este exercício mais habilidade em projetar ferramentas parsing na minha cabeça do que qualquer outra ferramenta única e eu gostaria de encontrar diferentes métodos de análise que pode funcionar melhor para o esquema intérprete que o intérprete python.