16 个版本 (5 个重大更新)

0.5.0 2024年7月30日
0.3.0 2024年6月1日
0.1.0 2024年3月29日
0.0.10 2023年12月31日
0.0.5 2023年7月7日

#399编程语言

Download history 165/week @ 2024-04-26 12/week @ 2024-05-03 3/week @ 2024-05-17 2/week @ 2024-05-24 168/week @ 2024-05-31 18/week @ 2024-06-07 5/week @ 2024-06-14 152/week @ 2024-06-28 5/week @ 2024-07-05 334/week @ 2024-07-26 43/week @ 2024-08-02

每月下载量377

MIT/Apache

465KB
16K SLoC

Air 编程语言

Air 编程语言被精心设计,以一次性解决编程问题。

这是一个实验性的概念验证项目,目前仍处于非常早期的发展阶段。

目标

Air 语言旨在一次性解决编程问题。它应该能够

  • 表达任何可描述的信息,例如需求和方法,问题和解决方案,命题和证明。
  • 提供关于语言和程序本身的所有信息。
  • 实现任何理论上的信息处理需求,例如实现需求、回答问题、证明命题。
  • 使用关于语言和程序本身的信息进行属性证明和性能优化,实现最佳属性和最佳性能。
  • 提供稳定的语法和语义,使用户能够一次性学习编程语言。

非目标

  • 不采取任何设计选择,并且不会未经审查就从其他语言复制语言特性。
  • 不会选择次优设计以适应用户习惯。
  • 只有解决大多数问题而不是所有问题的解决方案是不令人满意的。
  • 不会尝试实施不可能的任务。
  • 不会不断更新语言以实施更多需求。

设计

  • 将语法与语义解耦,使语法作为通用数据交换格式可用。
  • 构建简洁的语义核心并提供丰富的初始上下文。
  • 允许函数访问上下文,这意味着控制语句只是可以访问上下文的函数。
  • 基于可计算理论实现通用逻辑框架,取代基于类型理论的类型系统。
  • 基于逆计算理论实现通用问题框架,用于表达任何可描述的需求或问题,取代接口/特性系统。
  • 基于复杂度理论实现通用算法框架,尝试实现人工通用智能。

演示

"A demo of implementing a C-like for loop function" @ ; ! [
    c_for = function ! {
        input_name : .args,
        context_name : .ctx,
        context_access : .mutable,
        input_mode : id,
        prelude : prelude ! .,
        body : ; ! [
            [init, condition, next, body] = args,
            ctx | form ! ; ! [
                .&init,
                .&condition while [
                    .&body,
                    .&next,
                ],
            ],
        ],
    },
    c_for [[i = 1, sum = 0], i <= 10, i = i + 1, sum = sum + i],
    sum
]

依赖关系

~2.4–8MB
~58K SLoC