Forth

Forth

Difícil

Instrucciones

Implementa un evaluador para un subconjunto muy simple de Forth.

Forth es un lenguaje de programación basado en pila. Implementa un evaluador muy básico para un subconjunto pequeño de Forth.

Tu evaluador debe admitir las siguientes palabras:

  • +, -, *, / (aritmética de enteros)
  • DUP, DROP, SWAP, OVER (manipulación de la pila)

Tu evaluador también debe admitir la definición de nuevas palabras usando la sintaxis habitual: : word-name definition ;.

Para simplificar, el único tipo de dato que necesitas admitir son enteros con signo de al menos 16 bits.

Debes usar las siguientes reglas para la sintaxis: un número es una secuencia de uno o más dígitos (ASCII), y una palabra es una secuencia de una o más letras, dígitos, símbolos o signos de puntuación que no sea un número. (Es probable que Forth use reglas un poco diferentes, pero esto se acerca lo suficiente).

Las palabras no distinguen entre mayúsculas y minúsculas.

Asignación eficiente

Ten en cuenta el caso de prueba adicional en tests/alloc-attack.rs. Prueba contra implementaciones algorítmicamente ineficientes. Por eso, por lo general se agota el tiempo de espera en línea en lugar de fallar directamente, lo que da un mensaje de error menos útil.

Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Rust Exercism

¿Todo listo para empezar Forth?

Regístrate en Exercism para aprender y dominar Rust con 99 ejercicios y mentoría humana real, todo gratis.