Eu criei vários compiladores escritos à mão para linguagens muito simples, mas agora quero tentar desenvolver uma linguagem dinâmica, semelhante a um Python ou Ruby simplificado. No entanto, foi fácil para mim entender como os compiladores funcionam. Compiladores primitivos são traduzidos. Mas não posso fazer isso se a linguagem for dinâmica. Eu tenho que escrever um intérprete ou VM que controla as informações em tempo de execução e coloca muito mais trabalho em mim.
Em resumo, há algum recurso que eu deva verificar, considerando que eu sei como os compiladores funcionam, mas quero migrar para a criação de um intérprete? Existem algumas VMs por aí para linguagens dinâmicas, mas não tenho problema em criar minhas próprias. Tudo isso é apenas para a minha experiência pessoal.
Estou buscando informações sobre como passar de um compilador para um intérprete. Se eu já fiz um compilador para a linguagem X, mas agora o que escrever para um intérprete, o que precisa ser feito e há algum recurso que repasse o processo?
Não quero recursos amplos ou abstratos que abordem como os compiladores ou máquinas virtuais funcionam. Eu tenho muitos livros didáticos sobre o assunto. Todos os recursos que encontrei on-line assumem que você tem 0 experiência e, assim, começam com análises lexicais ou sintáticas ou são extremamente abstratos. Eu tenho um compilador funcional, mas agora desejo transformar isso em um intérprete e adicionar recursos dinâmicos ao idioma.
Não consegui encontrar recursos nesse processo, ele pode ter um escopo muito limitado ou recursos no "back-end" de um intérprete sem ser muito teórico, e foi por isso que publiquei aqui.