Phorty: FORTH em Python

Há um tempo, apenas por brincadeira, acabei fazendo uma implementação da linguagem FORTH em Python. Com aproximadamente 300 linhas de código, a PHORTY (como foi batizada) implementa tanto o modo interativo como o modo de compilação. É possível também estender seus programas, carregando módulos feitos em Python (que, por sua vez, podem carregar módulos escritos em outras linguagens, como C, por exemplo).

A interpretação de código é bem simples: o código FORTH é “compilado” para uma string contendo código Python; o Python, depois, compila esse código e cria uma função. Não é a maneira mais limpa e nem provavelmente a mais eficiente, mas funciona bem e foi a mais fácil de implementar.

Além disso, essa implementação permite fazer o disasm (para mnemônicos da Máquina Virtual do Python) de qualquer palavra, inclusive as “built-in”.

Não sei qual a utilidade prática de um negócio desses. Só sei que foi divertido escrevê-lo.

Exemplos e downloads estão disponíveis na página do projeto.

Leave a Comment