Como Escrever Um Intérprete

Índice:

Como Escrever Um Intérprete
Como Escrever Um Intérprete

Vídeo: Como Escrever Um Intérprete

Vídeo: Como Escrever Um Intérprete
Vídeo: O Papel do Intérprete em Espaços Acadêmicos! | Gabriela Serenini 2024, Julho
Anonim

Para criar um interpretador, você precisa escrever um analisador de código-fonte, um loop de execução de bytecode e uma grande quantidade de código de biblioteca padrão. Nem sempre é divertido e fácil se você não usar as ferramentas que o compilador e o analisador geram para você. Com eles, será tão fácil quanto descascar peras escrever um intérprete de línguas para uma pessoa experiente. Vejamos um exemplo de como escrever um intérprete com JIT em PyPy.

Como escrever um intérprete
Como escrever um intérprete

Instruções

Passo 1

Escolha um idioma para escrever. Nesse caso, é uma foda cerebral. É muito simples e consiste em uma fita de inteiros, que são inicializados em zero, e 1 ponteiro para a célula atual na fita. Existem apenas oito comandos no idioma: ">" - mova o ponteiro para a próxima célula,"

Passo 2

Escreva um interpretador em Python simples. O contador de instruções armazenará ponteiros para a instrução atual. A primeira expressão recuperará a instrução, após a qual várias instruções determinam como executá-la. Omitir a implementação dos operadores "[" e "]", pois eles devem alterar o contador de comandos para a posição do mesmo parêntese.

etapa 3

Implemente uma classe Tape que armazene um ponteiro para o número atual e uma fita de inteiros. A fita crescerá conforme necessário. Analise o código-fonte com antecedência para que vários comentários não sejam lidos um byte de cada vez. Crie também um dicionário de parênteses, para que possa encontrar parênteses correspondentes, se necessário.

Passo 4

Execute def parse (programa). Esta função retorna strings apenas de comandos e do dicionário de parênteses.

Etapa 5

Junte tudo e você terá um intérprete de trabalho cerebral. Inicie o interpretador Python e verifique se ele funciona. Esta é apenas uma instância única de escrever um intérprete usando a linguagem mais simples. Se desejar, você pode escrever em quase qualquer idioma, tendo se familiarizado com suas propriedades e propósito.

Recomendado: