9 个版本 (重大变更)
| 0.11.0 | 2024年7月20日 |
|---|---|
| 0.10.0 | 2022年12月27日 |
| 0.9.0 | 2022年6月6日 |
| 0.8.1 | 2022年1月29日 |
| 0.5.1 | 2021年1月25日 |
#455 在 开发工具
每月下载 248次
在 6 个 包中使用
1.5MB
29K SLoC
EndBASIC 编程语言 - 标准库
EndBASIC 是一种类似BASIC语言的解释器,灵感来源于Amstrad的Locomotive BASIC 1.1和Microsoft的QuickBASIC 4.5。与前者一样,EndBASIC旨在提供一个交互式环境,无缝地将编码与即时视觉反馈相结合。与后者一样,EndBASIC提供高级编程结构和强类型。
EndBASIC 提供一个简化和受限的环境来学习编程的基础,并专注于可以快速奖励程序员的特性。这些特性包括内置的文本编辑器、渲染图形的命令以及与Raspberry Pi硬件交互的命令。实现此类功能比其他功能(如性能或更丰富的语言)具有优先级。
EndBASIC 使用Rust编写,可以在各种操作系统和平台上运行,包括macOS、Windows和Linux。
EndBASIC 在Apache 2.0许可证下是免费软件。
这个包里有什么?
endbasic-std 提供了语言标准库,它由各种命令和函数组成。这些都可以单独暴露给解释器。
标准库功能
EndBASIC的标准库受到了其他BASIC解释器的启发,但并不打算与它们完全兼容。该库目前包含
- 数组:
LBOUND,UBOUND。 - 控制台操作:
CLS,COLOR,INKEY,INPUT,LOCATE,PRINT,SCRCOLS,SCRROWS。 - 数据操作:
READ,RESTORE。 - 日期和时间操作:
SLEEP。 - 图形:
GFX_CIRCLE、GFX_CIRCLEF、GFX_HEIGHT、GFX_LINE、GFX_PIXEL、GFX_RECT、GFX_RECTF、GFX_SYNC、GFX_WIDTH。 - 硬件交互:
GPIO_CLEAR、GPIO_READ、GPIO_SETUP、GPIO_WRITE。 - 文件系统交互:
CD、DIR、MOUNT、PWD、UNMOUNT。 - 解释器交互:
CLEAR、ERRMSG、HELP。 - 数值:
ATN、CINT、COS、DEG、INT、MAX、MIN、PI、RAD、RANDOMIZE、RND、SIN、SQR、TAN。 - 程序操作:
DISASM、EDIT、KILL、LIST、LOAD、NEW、RUN、SAVE。 - 字符串和字符:
ASC、CHR、LEFT、LEN、LTRIM、MID、RIGHT、RTRIM、STR。
设计原则
关于EndBASIC实现的一些亮点是
-
最小化库。标准库提供了所有内置命令的逻辑,但每个命令都可以单独安装到解析器中,所有与环境(例如控制台或文件系统)的交互都通过调用者需要实现的钩子公开。
-
异步支持。该库与异步兼容,使其能够轻松地通过WASM嵌入到JavaScript中。
示例
examples目录包含示例代码,以展示如何将EndBASIC解释器和标准库嵌入到您自己的程序中。
examples/script-runner.rs:展示了如何实例化完整的EndBASIC解释器并使用它来实现脚本运行器。
依赖项
~2.9–4MB
~70K SLoC