一种轻量级、可快速嵌入的脚本语言。
**Pocketlang** 是一门轻量级 (~3000 个分号) 和[快速](https://github.com/ThakeeNathees/pocketlang#performance)的面向对象嵌入式脚本语言,它是用 C 语言编写的。它具有类似 Ruby 的 Python 语法,可以在 15 分钟内学会。包括编译器、字节码虚拟机和运行时,它是一个独立的可执行文件,没有任何外部依赖,正如它的自我描述名称所示。pocketlang 虚拟机可以很容易地嵌入到其他主机程序中。[Wren 语言](https://wren.io/) 和他们精彩的书籍[Crafting Interpreters](http://www.craftinginterpreters.com/) 都被用作编写此语言的参考。 您可以在浏览器中 [尝试使用 pocketlang](https://thakeenathees.github.io/pocketlang/try-online.html)。它是使用 [emscripten](https://emscripten.org/) 编译的虚拟机的 WebAssembly 版本。请注意,在 WebAssembly 版本中,某些功能(输入、文件处理、相对导入等)已被禁用,内存分配受限,而 stdout 调用可能会更慢。 Pocketlang 使用 [NaN-Boxing](https://leonardschuetz.ch/blog/nan-boxing/),这是一种高效的内存管理方式,用于表示动态类型并更快地处理这些类型。它支持 [尾调用](https://en.wikipedia.org/wiki/Tail_call) [优化](https://wiki.c2.com/?TailCallOptimization)。当函数返回一个调用时,被调函数可以重复使用调用者的堆栈帧,这将优化内存占用,从 O(n) 降低到 O(1)。
暂无开放 Issues,或尚未同步最近议题。