20 releases (9 breaking)
0.9.0 | Nov 29, 2024 |
---|---|
0.7.0 | Sep 29, 2024 |
0.5.0 | Jul 30, 2024 |
0.1.0 | Mar 29, 2024 |
0.0.5 | Jul 7, 2023 |
#381 in Programming languages
166 downloads per month
525KB
18K
SLoC
The Air Programming Language
The Air programming language is carefully designed to solve programming problems once and for all.
It is an experimental proof-of-concept project and is still in the very early stages of development.
Goals
The Air language seeks to solve programming problems once and for all. It should be able to
- express any describable information, such as requirements and implementations, problems and solutions, propositions and proofs.
- provide any information about the language and the program itself.
- implement any theoretically possible information processing requirement, such as implementing requirements, answering questions, and proving propositions.
- use information about the language and the program itself to perform property proofs and performance optimizations, achieving the best properties and optimal performance.
- provides stable syntax and semantics, allowing users to learn the programming language once and for all.
Non-Goals
- No design choices are taken for granted, and language features are not copied from other languages without review.
- Suboptimal designs are not chosen to accommodate user habits.
- Solutions that only solve most but not all problems are not satisfactory.
- Impossible tasks are not attempted to be implemented.
- The language is not constantly updated to implement more requirements.
Design
- Decouple syntax from semantics, making syntax available as a general data exchange format.
- Build a concise semantic core and provide rich initial context.
- Allow functions to access context, which means that control statements are just functions that can access context.
- Implement a universal logical framework based on computability theory, replacing type systems based on type theory.
- Implement a universal problem framework based on reverse computation theory, used to express any describable requirement or problem, replacing interface/trait systems.
- Implement a universal algorithm framework based on complexity theory, attempting to achieve artificial general intelligence.
Demo
"A demo of implementing a C-like for loop function" ! do ; [
c_for = function ; {
input_name : .args,
context_name : .ctx,
context_access : .mutable,
call_mode : id,
prelude : prelude .,
body : do [
[init, condition, next, body] = args,
ctx | form ; do ; [
.&init,
.&condition while [
.&body,
.&next,
],
],
],
},
c_for [[i = 1, sum = 0], i <= 10, i = i + 1, sum = sum + i],
sum
]
Installation
cargo install airlang_bin
Dependencies
~4–13MB
~172K SLoC