18 个版本 (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.1 2022年8月3日

#78编程语言

Download history 184/week @ 2024-04-28 2/week @ 2024-05-05 13/week @ 2024-05-19 134/week @ 2024-05-26 67/week @ 2024-06-02 12/week @ 2024-06-09 3/week @ 2024-06-16 128/week @ 2024-06-23 38/week @ 2024-06-30 288/week @ 2024-07-28 4/week @ 2024-08-04 8/week @ 2024-08-11

每月300 次下载
5 个crate(4 个直接使用) 中使用

MIT/Apache

410KB
14K SLoC

空气编程语言

空气编程语言被精心设计,旨在一次解决编程问题。

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

目标

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

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

非目标

  • 不假设任何设计选择,不会未经审查就从其他语言中复制语言功能。
  • 不会选择次优设计来适应用户习惯。
  • 只解决大多数问题而不是所有问题的解决方案是不可接受的。
  • 不会尝试实现不可能的任务。
  • 不会不断更新语言来实现更多需求。

设计

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

演示

"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–7.5MB
~48K SLoC