EndBASIC 0.11:函数、LCD 以及字节码 - EndBASIC

  • Published on: July 19, 2024
  • EndBASIC 0.11.0 available after a 1.5-year hiatus:

    • Addresses top feature request - ability to define custom functions and subroutines.
    • Includes other features like LCD console support, a new disassembler, and a faster execution engine.
  • Must-visit links:

  • User-defined functions and subroutines:

    • [EndBASIC 0.10] added GOTO and GOSUB, but needed structured callables with parameter passing and local variables.
    • Implemented a declarative arguments parser for callables to handle arguments more efficiently.
    • Converted the expression evaluator to bytecode to support calling user-defined functions from expressions.
  • Bytecode-based expression evaluation:

    • Modified the compiler to emit bytecode for expression evaluation.
    • Shifted most of the type-checking to the compiler to improve VM performance.
    • Added a disassembler to peek into the VM's inner workings.
  • LCD console:

    • Added a new backend for the console using an LCD for the Raspberry Pi.
    • Published a separate blog post for details.
    • Demonstrated with a video of EndBASIC running the snake game on the Raspberry Pi.
  • Known issues:

    • Graphics console does not work on macOS as the SDL driver violates macOS assumptions.
    • Retrofitting bytecode execution into the AST-based evaluator has accrued technical debt.
    • The author needs a break and has forced the 0.11 release.
  • Conclusion: EndBASIC 0.11 is the best to date. Go and play! Launch interpreter
阅读 11
0 条评论