#language #embeddable #extension #forth #concatenative

bin+lib rivet

一种为嵌入而设计的简单组合式编程语言,灵感来自 Kitten。目前尚不完整,大部分只是占据了这个名字:3

2 个版本

使用旧的 Rust 2015

0.0.1 2017 年 8 月 31 日
0.0.0 2017 年 8 月 8 日

#5 in #concatenative

MIT 许可协议

33KB
824

rivet

一种受 Kitten 启发的简单组合式编程语言。

目标是成为 Rust 程序的嵌入语言,好像还不够用。

促使我想要做这件事的文档是 http://evincarofautumn.blogspot.com/2012/02/why-concatenative-programming-matters.html,但他们所有的东西都值得一读。

一个有趣的目标:允许嵌入此程序的程序能够指定 CPU 使用等硬限制,适用于运行不受信任的程序。尽管这也要求对编译器进行一定的关注,以便没有人可以通过提供病态的输入来使其拒绝服务。

当前状态

它 trivially turing-complete,但它也异常粗糙。实际上还没有准备好供公众使用。

待办事项

很快

  • 移除 unwraps
  • 更多数据类型?数组、结构体、数值库
  • 更多函数元数据,函数类型?
  • 更有用的解释器程序 -- 加载文件等。
  • 更好的错误处理

不那么快

  • 函数作为除 AST 之外的某些类型(字节码?线程代码?)
  • 静态类型检查
  • 模块系统??
  • 更友好的定义/声明语法
  • Prelude 模块

依赖关系

~7MB
~142K SLoC