- 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
andGOSUB
, 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.
- [EndBASIC 0.10] added
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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。