返回资讯中心
外部精选
软件工程
#开发者实时流

SultanC:用阿拉伯语编写的自托管系统编程语言

来源标题:SultanC – an Arabic-first systems programming language

SultanC 是一个自托管的系统编程语言项目,其编译器用 SultanC 自身编写并可完成字节级自举验证。该语言的关键字同时支持阿拉伯语和英语,两种写法共享同一 AST 与语义。它具备所有权感知的内存安全、代数数据类型、模式匹配和线程等特性。

Hacker News 最新supax2026/11/7 · 8 天前11 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

一个自举的系统编程语言,用阿拉伯语编写。 安装  ·  语言  ·  标准库  ·  目标平台  ·  文档 SultanC 是一门原生系统编程语言,具备所有权感知的安全性、代数数据类型、模式匹配和线程。它的关键字同时存在于阿拉伯语和英语中,作为同一套语法的平等、可互换的表面形式。编译器用 SultanC 编写并编译自身:每次构建都通过逐字节的自举校验(Stage3 == Stage4)。 def main(): int { let x: int = 40; let y: int = 2; return x + y; عرف الرئيسية(): عدد { دع س: عدد = 40; دع ص: عدد = 2; أرجع س + ص; 相同的 AST、相同的语义、相同的诊断信息:只有关键字和标识符发生变化。 git clone https://github.com/sultan-language/sultanc.git && cd sultanc ./build.sh # C Stage0 -> Stage1 -> Stage2 (needs LLVM) sudo cp build/sultanc /usr/local/bin/sultanc 路线 命令 依赖 C 引导(默认) ./build.sh C 编译器 + LLVM WebAssembly 种子 ./build.sh --bootstrap=wasm 仅需 C 编译器 从现有编译器重建 ./build.sh --bootstrap=existing 已构建的 build/sultanc(约一分钟) 内置 LLVM 后端 ./build.sh --enable-llvm LLVM 19–23 自举校验 ./build.sh verify Stage3 == Stage4,逐字节一致 macOS 使用 Homebrew LLVM:构建前执行 export LLVM_CONFIG="$(brew --prefix llvm)/bin/llvm-config"。 Windows:./build.sh --bootstrap=c --enable-llvm --backend=llvm。 sultanc main.sn -o app && ./app 语言 所有权、借用和移动检查,在代码生成之前静态验证 代数数据类型和模式匹配,带穷尽性检查 泛型和编译期求值(وقت_الترجمة) 错误即值:نتيجة 结果、؟ 传播、إنهيار / panic 线程与同步:spawn/join、原子操作、Arc、Mutex、Condvar、Once、通道,并在编译期检查线程可以捕获什么 阿拉伯语和英语作为平等的源码表面,包括每一条诊断信息 经过验证的中间表示(MSIR):每个 pass 在到达后端之前都要经过检查器 原生输出:ELF、Mach-O、PE/COFF 和 WebAssembly,使用编译器自带的链接器;在 Linux 和 FreeBSD 上不需要 libc sultanc check main.sn # 仅类型检查 sultanc run main.sn # 在解释器中运行,不编译 sultanc --backend=llvm main.sn -o app # LLVM 后端(O2) sultanc --target=aarch64-linux-gnu main.sn # 交叉编译 sultanc --lang=en check main.sn # 英文诊断信息(默认阿拉伯语) sultanc --diagnostic-format=json check main.sn sultanc targets # 列出所有目标平台 解释器运行与编译器相同的 MSIR 和相同的标准库,支持 Linux、macOS、Windows 和 FreeBSD。 领域 亮点 文本与格式化 UTF-8 文本、Unicode 分段与规范化、std.fmt(Rust 风格格式字符串,编译期检查) 集合 带容量的 vector、map、set、排序 文件与进程 文件、目录、链接、文件锁、流式子进程、环境变量 网络 TCP、UDP、Unix socket、DNS、TLS 1.3、HTTP/1.1 和 HTTP/2(客户端和服务端) 数据格式 JSON、TOML、CSV、zip、tar 压缩 gzip/deflate、zstd、xz/LZMA2 加密与哈希 SHA-2、X25519、Ed25519、ChaCha20-Poly1305、AES-GCM、XXH64、CRC 并发 std.thread、std.sync(原子操作、Arc、Mutex、RwLock、Condvar、Once、通道) 完整列表见 std 覆盖范围,并与 Rust 和 Go 做了对比。 操作系统 架构 Linux x86_64、aarch64、riscv64、loongarch64、ppc64le、s390x、mips64el、sparcv9、i686、armv7 macOS arm64、x86_64 Windows x64、arm64 FreeBSD x86_64、aarch64、riscv64 Android x86_64、aarch64、armv7 WebAssembly WASI(wasm32);freestanding wasm32/wasm64 x86_64 和 arm64 有原生后端;其他所有目标平台都经由 LLVM。见目标平台。 架构与 MSIR 源码如何变成原生代码 内核架构 编译器内部 引导 C Stage0 和 WebAssembly 种子 安全流程 所有权与借用检查 类型系统 类型、推断、泛型、类型转换 所有权与销毁 移动、drop、临时值、容量 错误 Result、?、panic、本地化消息 并发 线程、原子操作、同步 格式化 std.fmt 解释器 sultanc run 平台依赖 std 对每个操作系统需要什么 阿拉伯语术语 规范的阿拉伯语编译器词汇 示例 · 测试 examples/ 和测试运行器 状态 在 x86_64-linux 和 arm64-darwin 上自举,通过跨编译器世代的字节级一致收敛验证,来源包括 C Stage0 和 WebAssembly 种子。CI 在 Linux、macOS 和 Windows(x64 和 arm64)上构建每一条路线。

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →