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 在 编程语言
每月下载量377
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