文件名称:jack-lang:杰克语言的 C VM
文件大小:18KB
文件格式:ZIP
更新时间:2024-06-30 08:37:27
C
杰克朗 这个项目是一个原型 VM,用于在简单、可移植的 C 中实现 Jack 语言。编译项目就像gcc *.c (或 tcc 或 clang 等...)一样简单。 这只是语言运行时。 它是一个相当典型的脚本语言运行时,包括一个字节码解释器和一个基于堆栈的内存模型。 C API 深受 lua 的 C API 的启发。 外部代码永远不会获得对任何 VM 对象的直接指针访问。 垃圾收集器是一个简单的引用计数系统。 这意味着它无法检测和释放循环(脚本作者必须手动中断循环),但它非常简单可靠。 没有意外的 GC 暂停,因为所有内容都在最后一个引用丢失时被释放。 运行时中的函数非常灵活,甚至使字节码解释器成为一个独立的模块,可以在不接触核心引擎的情况下进行替换。 数据类型 目前有七种数据类型,它们是: Nil :迭代终止符,未找到令牌,什么都没有 布尔值: true或false Integer :
【文件预览】:
jack-lang-master
----old()
--------intern.c(2KB)
--------test-dual.c(607B)
--------test.c(3KB)
--------math.c(2KB)
--------types-dual.h(2KB)
--------run.sh(81B)
--------types.h(2KB)
--------rational.c(3KB)
--------api.h(5KB)
--------intern.h(273B)
--------api.c(19KB)
--------main.c(767B)
----LICENSE(1KB)
----README.md(1KB)
----Makefile(54B)
----opcodes.txt(3KB)
----.gitignore(15B)
----main.c(6KB)