#vm #codec #decoding #codegen #encoding #programming-language

bin+lib jazz_bytecode

用于编码/解码JazzVM指令的库

1个不稳定版本

0.1.0 2018年11月15日

#236#vm

MIT 许可证

59KB
1.5K SLoC

Jazz (未维护,请参阅 https://github.com/jazz-lang/

license

Jazz 是一种基于寄存器的虚拟机和轻量级编程语言

Jazz 在很大程度上受到 Gravity 语言的影响

目标

  • 清晰简单的语法
  • Rust 集成
  • 与其他语言(不仅仅是 Rust)的接口
  • 使 VM 适合面向对象编程

非目标

  • 编写简单的Jazz编程语言学习手册
  • 即时编译
  • 生成字节码文件

示例代码

func factorial(num) {
    if num == 0 {
        return 1;
    } else {
        return num * factorial(num - 1);
    }
}

func main() {
    print(factorial(5));
    return 0;
}
class Vector2 {
    var x;
    var y;
    func init(a,b) {
        this.x = a;
        this.y = b;
        return this;
    }

    func toString() {
        return concat("(",this.x,";",this.y,")");
    }
}

func main() {
    var vector = Vector2(2,-2);
    print(vector.toString());
}

依赖项

~0.6–1MB
~15K SLoC