跳转至

欢迎来到 Lumos 文档页

这个项目仍处于早期开发阶段,所以文档和代码可能随时发生变化

早期开发:新建文本文件 (bushi)

什么是 Lumos

Lumos 是一个 实验性质的编程语言,旨在提供现代化的编程体验和强大的功能。它结合了 C/C++ 的灵活性和现代编程语言的简洁性,同时具有自动引用计数的内存管理和其他高级特性。
粗心的小明不小心把水泼到了文档上,导致字都糊啦~

感觉可能造不出来

问点问题

你们认为如何书写返回类型比较好?

  • fn add(i32 a, i32 b) -> i32; 什么C++
  • fn add(i32 a, i32 b): i32; 什么Kotlin
  • fn add(i32 a, i32 b) i32; 什么Zig

关于编译器

我希望其他人能够加入进来帮助我完成它。

我的目标

  • Lumos 希望能做到
    • ASM 一样可控
    • C/C++ 一样灵活
    • Rust 一样安全
    • Python 一样简单易学
    • Kotlin 一样优雅
  • Lumos 不希望变成
    • ASM 一样难以阅读
    • C++ 一样复杂
    • Rust 一样限制繁多
    • Python 一样慢
    • JS 一样混乱

画大饼,别信

我认为

一个编程语言应该是:可控的

while (true) { /* do nothing */ }
// 很明显这不应该是未定义行为
// 在 Lumos 中,它会产生一个死循环
(i32)0x80000000 >> 1;
// 很明显它的值不应该是 0x40000000 0xc0000000 二选一
// 在 Lumos 中,它为 0xc0000000

一个编程语言应该是:逻辑清晰的

list() + map();
// 很明显它们不应该能够相加