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 在 编程语言 中
每月300 次下载
在 5 个crate(4 个直接使用) 中使用
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