Blorp 语言

Lobsters Hottest 工具

摘要

Blorp 是一种新的低摩擦、高性能编程语言,可编译为 C 语言,具有显式效果、类型化失败、结构化并发和纯度追踪等特点。

<p><a href="https://lobste.rs/s/u3a9d0/blorp_language">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/05/31 20:23

# Blorp - 概览 来源:https://blorp-lang.org/ 一个低摩擦、高性能的语言,让你能够信任所写的代码。 Blorp 示例 (https://blorp-lang.org/docs) `` GOALS = [ ("confidence", ["pure functions", "explicit effects"]), ("speed", ["native code", "structured concurrency"]), ("approachability", ["small syntax", "direct control flow"]), ("durability", ["typed failure", "safe bounds"]), ] pure func format_goal(goal: (String, List[String])) -> String: (name, features) = goal "${name}: ${features.join(", ")}" func main(args: List[String]): pitch = GOALS .map(format_goal) .join("\n") print(pitch) `` ## 功能特性 Blorp 保持语言表层直观,同时让副作用、失败和并发更容易推理。 - **可读语法**:缩进、关键字运算符和方法风格调用让代码易于浏览。 - **静态安全**:强类型、检查导入、显式错误可能性和穷尽匹配使错误更难隐藏。 - **纯度追踪**:`pure func` 将确定性逻辑与可执行 I/O 的代码分离。 - **值语义**:赋值如同独立的值,而 ARC/COW 保持共享的高效性。 - **类型化的缺失与失败**:`Option`、`Result`、`match` 和 `?=` 将不确定性融入类型流中。 - **结构化并发**:作用域任务、join、超时和通道保持并发工作有界。 - **编译期边界**:固定尺寸让编译器能证明数组、向量和矩阵的安全索引。 - **原生性能**:Blorp 编译为 C,同时保持性能细节可见。 - **工具友好设计**:稳定的格式化和显式副作用使得人类和 AI 编写的代码更易审查。 ## 性能 Blorp 编译为 C,因此地道的 Blorp 代码性能目标是接近手写 C 的水平。以下是 Blorp 基准测试套件近期的快照,运行于 M4 MacBook Air。虽不权威,但大体展示了 Blorp 的定位。 基准测试 | Blorp | C | Go | Python --- | --- | --- | --- | --- numeric_loop | 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) string | 0.1169s | 0.1071s (0.9x) | 0.1681s (1.4x) | 0.1323s (1.1x) array_sum | 0.0011s | 0.0005s (0.5x) | 0.0045s (4.1x) | 0.0957s (87.0x) array_ops | 0.0069s | 0.0056s (0.8x) | 0.0179s (2.6x) | 0.4976s (72.1x) dict_ops | 0.1370s | - | 0.1340s (1.0x) | 0.3506s (2.6x) list_ops | 0.1236s | - | 0.2074s (1.7x) | 0.4296s (3.5x) set_ops | 0.2573s | - | 0.5509s (2.1x) | 0.2332s (0.9x) threaded_cpu_map | 0.0150s | 0.0110s (0.7x) | 0.0191s (1.3x) | 0.9889s (65.9x) channel_pipeline | 0.0262s | 0.0345s (1.3x) | 0.0092s (0.4x) | 0.1952s (7.5x) sleep_fanout | 0.0084s | 0.0118s (1.4x) | 0.0061s (0.7x) | 0.0376s (4.5x) options | 0.0148s | - | - | - simd | 0.1302s | 0.1071s (0.8x) | - | - nbody | 0.0539s | 0.0495s (0.9x) | 0.0489s (0.9x) | 3.0480s (56.5x) binary_trees | 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) spectral_norm | 0.0160s | 0.0106s (0.7x) | 0.0140s (0.9x) | 0.9081s (56.8x) mandelbrot | 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) reverse_complement | 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 报告的因子。破折号表示该运行器未在该基准测试中报告。参见性能工具 (https://blorp-lang.org/docs/performance-tools) ## 技术细节 Blorp 旨在让表层感觉直接,同时保持编译器的安全性和运行时选择明确。 - **静态类型**:编译器在代码进入 C 后端之前检查导入、调用、`match` 穷尽性和可能失败的值。 - **Hindley-Milner 风格推导**:局部名称通常无需注解;类型从字面量、调用、分支和泛型使用中自然流动。 - **值语义**:赋值和更新如同独立的值,而 `ARC` 和 `COW` 让常见共享保持廉价。 - **Perceus 所有权**:编译器通过 Perceus 风格的 dup/drop 和重用分析来降低所有权,然后运行时引用计数保持源码语义。 - **原生输出**:类型化程序通过 `Core IR` 降至生成的 C,然后 C 编译器产生原生二进制。

相似文章

BLISS

Hacker News Top

BLISS是一种系统编程语言,于1970年左右在卡内基梅隆大学开发,以其无类型设计和优化编译器而闻名。

Blop

Product Hunt

Blop 是一个测试你的应用并自动修复损坏测试的工具。

Boriel BASIC

Hacker News Top

Boriel BASIC 是一款现代开源的 BASIC 编译器 SDK,主要为 ZX Spectrum 设计,提供增强功能、整数类型以及内联汇编支持,适用于复古游戏开发。