Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】A Windows port of Terry Davis' HolyC from TempleOS called SchismC

2025年09月20日に「Reddit /r/programming」が公開したITニュース「A Windows port of Terry Davis' HolyC from TempleOS called SchismC」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

TempleOSの独自プログラミング言語「HolyC」が、AI支援によりWindowsで動作する「SchismC」として移植された。これにより、簡単なHolyCプログラムをWindows実行ファイルとしてコンパイルできる。開発はまだ途中だが、オリジナル言語のユニークな機能やコンセプトに忠実に作られている。

ITニュース解説

今回のニュースは、「SchismC」というプロジェクトについてだ。これは、Terry Davis氏が開発したユニークなオペレーティングシステム(OS)「TempleOS」で使われていた「HolyC」というプログラミング言語を、Windowsで動作するように移植する試みのことである。

まず、TempleOSとTerry Davis氏について説明する。TempleOSは、プログラマーであるTerry Davis氏が一人で作り上げたOSだ。彼は精神疾患を抱えながらも、自身の信仰心と独自の哲学を反映させ、すべてのソースコードを公開するなど、非常に個性的なOSを開発した。HolyCは、このTempleOSの標準プログラミング言語として用いられていた。Terry Davis氏の背景を知る人々にとって、今回のHolyCの移植プロジェクトは特別な意味を持つだろう。

SchismCは、このHolyC言語をWindows上で動作させる「ポート」(移植)を目指している。プログラミング言語やプログラムは、通常、特定のOS環境で動作するように作られている。OSがプログラムとハードウェアの間を取り持つ方法や、実行可能ファイルの形式が異なるため、あるOS用のプログラムを別のOSで動かすには、その違いを吸収する作り変えが必要になる。これが「移植」という作業だ。

このプロジェクトの作者は、実用性や金銭的な目的ではなく、Terry Davis氏という人物の内面をより深く理解するため、HolyCを学び、その一環としてWindowsへの移植を試みたという。これは、プログラミングを通じた個人的な探求であり、挑戦である。

移植作業は非常に困難を伴った。特に、OSの根幹に関わる言語の移植には、Windows特有のプログラム形式(PEフォーマット)や、CPUが直接理解する機械語に近い「アセンブリ言語」に関する深い知識が要求される。作者は当初、手書きでのコーディングを進めたが壁にぶつかり、最終的には「vibe coding」(直感的なコーディング)とAIアシスタンスを組み合わせることで、これらの難題を乗り越えたと語っている。AIがプログラミング開発の強力なツールとして活用されている現代を象徴する出来事と言えるだろう。

Windowsを選んだ理由については、作者が普段から映画脚本の執筆などでWindowsを使用しており、作業の合間にプログラミングと脚本執筆をスムーズに切り替えるためだったという。開発環境の選択が個人の習慣や利便性に影響される具体例だ。

SchismCによって、HolyCのいくつかのユニークな特徴がWindows環境で再現されている。例えば、main()関数を持たずにコードが実行開始される点、5 < x < 50のように直感的に範囲比較ができる点、そして文字列リテラルを直接命令として扱える点などだ。これらはHolyCがTerry Davis氏の独自の世界観を反映した、個性的な言語であることを示している。

記事には、プログラミング学習の定番である「Hello, World!」の例が挙げられている。HolyCでは「I64 main() { "Hello, World!"; return 0; }」のようにシンプルに記述される。SchismCは、このHolyCコードをWindowsで動作する「アセンブリ言語」のコードに変換する。アセンブリ言語は、CPUが理解する機械語とほぼ一対一に対応する低水準言語で、コンピュータの具体的な操作を細かく指示するものだ。

生成されたアセンブリコードを見ると、GetStdHandleWriteConsoleAExitProcessといった命令が含まれていることがわかる。これらは、Windows OSが提供する機能(「API」と呼ぶ)を呼び出すための命令だ。例えば、GetStdHandleは標準出力(画面)のハンドル(識別子)を取得し、WriteConsoleAはそのハンドルを使って画面に文字列を表示する役割を果たす。ExitProcessはプログラムを終了させる命令である。この一連の変換プロセスは、高水準言語の裏で、OSやコンパイラがどれほど複雑な処理を行い、開発者の負担を軽減しているかを示している。

現在、SchismCは開発の途上にあり、簡単なプログラムをWindowsの実行可能ファイルとしてコンパイルできる段階だ。しかし、作者は実用性よりもHolyCのオリジナルへの忠実さを重視している。特に、Windows上でグラフィカルユーザーインターフェース(GUI)を実装することは非常に難しいと感じており、今後の大きな課題となるだろう。

SchismCプロジェクトは、実用的なアプリケーションを開発するためのツールというよりは、プログラミング言語の仕組み、コンパイラの動作、そして異なるOSへの移植といった、コンピュータサイエンスの基礎と奥深さを探求する「実験」として非常に価値がある。システムエンジニアを目指す初心者にとって、このようなプロジェクトは、プログラミング言語がどのようにコンピュータ上で動作し、OSとどのように連携するのかという根本的な理解を深める良い機会となるだろう。また、個人の強い情熱が技術的な困難を乗り越え、複雑なシステムを作り上げる原動力となることを示す例としても、多くの学びがある。

関連コンテンツ

関連IT用語