#编程语言 #编程 #phoenix #性能 #简单 #语言

bin+lib phoenix-lang

一种简单、快速的编程语言

18个稳定版本

1.5.3 2024年6月29日
1.5.2 2024年6月28日
1.4.0 2024年3月26日
1.3.2 2023年11月4日
0.1.1 2023年8月9日

#88编程语言

Download history 1/week @ 2024-04-27 4/week @ 2024-05-04 4/week @ 2024-05-18 153/week @ 2024-06-01 12/week @ 2024-06-08 229/week @ 2024-06-15 105/week @ 2024-06-22 212/week @ 2024-06-29 81/week @ 2024-07-06

1,178 每月下载量

MIT 许可证

245KB
5K SLoC

Phoenix

编程语言

基于书籍 Crafting Interpreters此仓库

功能

  • 动态类型
  • 自动内存管理
  • 垃圾回收
  • 一等函数
  • 闭包
  • 词法作用域
  • 尾递归
  • 模式匹配
  • 代数数据类型
  • 继承
  • Rust原生函数的API

用法

  • 要启动程序,运行
cargo run -- --help
  • 要安装phoenix,运行
cargo install --path .

然后你可以使用以下命令运行phoenix

phoenix --help

示例

fun binary_search(list, item) {
  var low = 0;
  var high = list.len() - 1;

  while low <= high {
    var mid = (low + high) / 2;
    var guess = list[mid];
    printf("low: {}, high: {}, mid: {}, guess: {}", low, high, mid, guess);

    if guess == item {
      return mid;
    } else if guess > item {
      high = mid - 1;
    } else {
      low = mid + 1;
    }
  }
  return nil;
}

var elements = [1, 3, 5, 7, 9];
var search = 7;
printf("element {} is at index: {}", search, binary_search([1, 3, 5, 7, 9], 7));

TODO

  • 添加更多示例
  • 添加更多测试
  • 添加更多文档
  • 添加更多错误处理
  • 修复列表(不工作:在类中访问列表,例如:c.l[0] = 1;)
  • 修复REPL
  • 修复模块(不工作:类)
  • 实现 [+-*/]=i++i--
  • 更好的原生函数"api"
  • 添加LLVM支持

依赖项

~5–16MB
~158K SLoC