返回

文章详情

Blorp 语言

Hacker News2026年6月1日 07:35

一种低摩擦、高性能的可信代码语言。Blorp 通过示例目标 = [ ("自信", ["纯函数", "显式效果"]), ("速度", ["本地代码", "结构化并发"]), ("易于接近", ["小语法", "直接控制流"]), ("耐用性", ["类型化失败", "安全界限"]), ] 纯函数格式目标(目标: (字符串, 列表[字符串])) -> 字符串: (名称, 特性) = 目标 "${名称}: ${特性.join(", ")}" 函数主(参数: 列表[字符串]): 演讲 = 目标 .映射(格式目标) .连接("\n") 打印(演讲) 特性 Blorp 保持语言表面的直接性,同时使效果、失败和并发更容易推理。 可读的语法 缩进、关键字运算符和方法风格的调用使代码易于浏览。 静态安全 强类型、检查的导入、显式的易错性和穷尽匹配使错误更难隐藏。 纯粹性跟踪 纯函数将确定性逻辑与可以执行 I/O 的代码分离。 值语义 赋值的行为像一个独立的值,而 ARC/COW 则保持共享的高效。 类型缺失和失败 选项、结果、匹配和 ?= 将不确定性放入类型流中。 结构化并发 扫描任务、连接、超时和通道将并发工作限制在一个界限内。 编译时界限 固定维度让编译器证明数组、向量和矩阵的安全索引。 本地性能 Blorp 编译为 C,同时保持性能工作可见。 工具友好设计 稳定格式和显式效果使人类和 AI 编写的代码更易于审查。 性能 Blorp 编译为 C,因此习惯用法的 Blorp 代码旨在运行在手写 C 的范围内。 以下是最近在 M4 MacBook Air 上运行的 Blorp 基准测试快照。这并不是权威的,但大致显示了 Blorp 的定位。 基准 Blorp C Go Python 数值循环 0.1242s 0.1215s (1.0x) 0.1726s (1.4x) 5.1754s (41.7x) fib 0.1979s 0.1970s (1.0x) 0.2600s (1.3x) 7.6289s (38.5x) 字符串 0.1169s 0.1071s (0.9x) 0.1681s (1.4x) 0.1323s (1.1x) 数组总和 0.0011s 0.0005s (0.5x) 0.0045s (4.1x) 0.0957s (87.0x) 数组操作 0.0069s 0.0056s (0.8x) 0.0179s (2.6x) 0.4976s (72.1x) 字典操作 0.1370s - 0.1340s (1.0x) 0.3506s (2.6x) 列表操作 0.1236s - 0.2074s (1.7x) 0.4296s (3.5x) 集合操作 0.2573s - 0.5509s (2.1x) 0.2332s (0.9x) 线程 cpu 映射 0.0150s 0.0110s (0.7x) 0.0191s (1.3x) 0.9889s (65.9x) 通道管道 0.0262s 0.0345s (1.3x) 0.0092s (0.4x) 0.1952s (7.5x) 睡眠分叉 0.0084s 0.0118s (1.4x) 0.0061s (0.7x) 0.0376s (4.5x) 选项 0.0148s - - - simd 0.1302s 0.1071s (0.8x) - - nbody 0.0539s 0.0495s (0.9x) 0.0489s (0.9x) 3.0480s (56.5x) 二叉树 0.1217s 0.1125s (0.9x) 0.1158s (1.0x) 0.6813s (5.6x) fannkuch 0.3254s 0.1819s (0.6x) 0.1493s (0.5x) 2.6348s (8.1x) 光谱范数 0.0160s 0.0106s (0.7x) 0.0140s (0.9x) 0.9081s (56.8x) 曼德尔布罗特 0.0020s 0.0021s (1.0x) 0.0195s (9.8x) 0.0590s (29.5x) knucleotide 0.0231s - 0.0153s (0.7x) 0.0601s (2.6x) 反向互补 0.0003s - 0.0001s (0.3x) 0.0022s (7.3x) 运行详情:在进程中 BENCH 标记,52 个二进制文件预编译,4 个基准线程,Apple clang 21.0.0,Go 1.26.3,Python 3.14.4,Python 并发 3.14.4。比较单元格显示相对于 Blorp 的时间和基准套件报告的因子。破折号表示该基准未报告该运行者。 查看性能工具 技术细节 Blorp 旨在在表面上感觉直接,同时保持编译器的安全性和运行时选择显式。 静态类型 编译器在代码到达 C 后端之前检查导入、调用、匹配穷尽性和易错值。 Hindley-Milner 风格推断 本地名称通常不需要注释;类型从字面值、调用、分支和泛用用法中流动。 值语义 赋值和更新的行为像独立值,而 ARC 和 COW 则保持常见共享的低成本。 Perceus 所有权 编译器使用 Perceus 风格的复制/删除和重用分析降低所有权,然后运行时引用计数保持源语义。 本地输出 类型化程序通过核心 IR 降低为生成的 C,然后 C 编译器生成本地二进制文件。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡