Inicializando um compilador: por quê?

Compreendocomo uma linguagem pode se auto-inicializar, mas eu não consegui encontrar muita referênciaporque você deve considerar bootstrapping.

A resposta intuitiva é que a linguagem que você está escrevendo oferece utilitários que não são encontrados na linguagem "base" do compilador,e os recursos da linguagem são relativamente adequados para um compilador.

Por exemplo, faria sentido inicializar um compilador C ++ - poderia ser muito mais fácil manter o compilador quando o OOP é usado corretamente, ao invés de usar o C simples.

Por outro lado, o MATLAB certamente torna a matemática de matriz muito mais fácil do que o C simples, mas não vejo nenhum benefício aparente de escrever um compilador / interpretador do MATLAB no MATLAB - parece que ele se tornariaMenos manutenção. Uma visão semelhante poderia ser aplicada à linguagem de programação R. Ou um exemplo bastante extremo seria bootstrappingEspaço em branco, que está escrito em Haskell - definitivamente um enormesuperconjunto de espaço em branco.

A única razão para o bootstrapping é aproveitar os recursos do novo idioma? Eu sei que há também a razão "porque nós podemos", mas não é isso que eu estou procurando :)

questionAnswers(11)

yourAnswerToTheQuestion