Implementa um avaliador para um subconjunto muito simples de Forth.
Forth é uma linguagem de programação baseada em pilha. Implementa um avaliador muito básico para um pequeno subconjunto de Forth.
O teu avaliador tem de suportar as seguintes palavras:
+, -, *, / (aritmética de inteiros)DUP, DROP, SWAP, OVER (manipulação de pilha)O teu avaliador também tem de suportar a definição de novas palavras usando a sintaxe habitual: : word-name definition ;.
Para simplificar, o único tipo de dados que precisas de suportar é o dos inteiros com sinal de, pelo menos, 16 bits.
Deves usar as seguintes regras para a sintaxe: um número é uma sequência de um ou mais algarismos (ASCII), uma palavra é uma sequência de uma ou mais letras, algarismos, símbolos ou pontuação que não seja um número. (O Forth provavelmente usa regras ligeiramente diferentes, mas isto é suficientemente próximo.)
As palavras não distinguem maiúsculas de minúsculas.
Repara no caso de teste adicional em tests/alloc-attack.rs. Ele testa implementações algoritmicamente ineficientes. Por isso, costuma ultrapassar o tempo limite online em vez de falhar por completo, o que leva a uma mensagem de erro menos útil.
Inscreve-te no Exercism para aprenderes e dominares Rust com 99 exercícios, e mentoria humana real, tudo grátis.