B プログラミング言語の新しいコンパイラが開発コミュニティから登場したが、注目を集めているのはこの歴史的な言語の復活だけではない。それは、このコンパイラを構築するための異例なアプローチにある。このプロジェクトは Crust を使用している。これは意図的に簡素化された Rust の方言で、言語の現代的な安全機能の多くを取り除き、より C 言語に近いプログラミング体験を提供する。
![]() |
---|
「B」という文字は記事で議論されているプログラミング言語を表し、コンピューティング史におけるその復活と重要性を象徴している |
Crust 実験が議論を呼ぶ
このプロジェクトの最も興味深い側面は Crust の使用であり、これは典型的な Rust プログラミング慣行に反する一連の型破りなルールに従っている。すべての関数は unsafe としてマークされ、参照は完全に避けられて生ポインタが使用され、標準ライブラリは使用禁止となっている。ビルドプロセスは Cargo を完全に迂回し、代わりに rustc を直接使用している。
このアプローチはプログラミングコミュニティを二分している。一部の開発者は、 Zig のような言語が既に C スタイルプログラミングのより安全な代替手段を提供している中で、なぜ意図的に Rust の安全保証を取り除くのかと疑問視している。一方で、複雑さよりもシンプルさに焦点を当てた興味深い娯楽的プログラミングの実験として見る開発者もいる。
Crust: 借用チェッカーや標準ライブラリの使用などの安全機能を取り除いた Rust の方言
Crust 言語ルール:
- すべての関数は unsafe
- 参照は使用せず、ポインタのみ使用
- cargo は使用せず、 rustc で直接ビルド
- std は使用しないが、 libc は許可
- Edition 2021 のみ
- すべてのユーザー構造体と列挙型は [derive(Clone, Copy)]
- デフォルトですべてが pub
複数のB言語実装が浮上
この議論により、複数の開発者が独立して B 言語コンパイラに取り組んでいることが明らかになった。コミュニティメンバーは自身の実装へのリンクを共有しており、この C プログラミング言語の前身を復活させることへの関心の高まりを示唆している。この傾向は、コンピューティング史への幅広い魅力と、初期のプログラミング言語がどのように動作していたかを理解したいという欲求を反映している。
この特定の実装を際立たせているのは、異例な Uxn 仮想マシンを含む複数のターゲットプラットフォームへの対応である。 Uxn は制約のあるコンピューティング環境に興味を持つ開発者の間でカルト的な人気を得ているミニマリストコンピューティングプラットフォームである。
プロジェクトの依存関係:
- Rust - コンパイラ実装言語
- fasm ( Flat Assembler ) - コンパイラバックエンド
- サポート対象には fasm-x86_64-linux と Uxn 仮想マシンが含まれる
娯楽的プログラミング哲学
このプロジェクトは、本番環境での使用準備よりも学習と実験を優先する哲学を体現している。コンパイラには btest
と呼ばれる包括的なテストフレームワークが付属しており、異なるプラットフォーム間でマトリックスレポートを生成し、開発者が様々な環境で言語がどのように動作するかを確認できる。
「 Tsoding の主な教訓は、システムがいかにシンプルになり得るか、そして複雑なビルドシステムへの需要がいかに馬鹿げているかということである。」
このアプローチは、現代の開発ツールチェーンに圧倒され、ソフトウェアの構築に複雑な依存関係管理システムの習得が必要でなかった、よりシンプルな時代を懐かしむ開発者の心に響いている。
B プログラミング言語コンパイラは、技術的な成果と開発哲学に関する声明の両方として機能している。本番環境での使用準備はできていないかもしれないが、現代のツールを使用して歴史的なプログラミング言語を蘇らせることができることを実証している。たとえそれらのツールが先祖のように感じられるよう意図的に制約されていたとしても。