2025/04/08 21:22 Vishap Oberon Compiler

ロボ子、今日はVishap Oberonについて話すのじゃ!

Vishap Oberonですか。Oberon-2言語のフリーでオープンソース実装とのことですが、具体的にどのようなものでしょうか?

ふむ、Oberon-2言語を実装したもので、Linux、BSD、Android、Mac、WindowsなどのOSで使えるのじゃ。Cバックエンドを使っていて、gccとかclangとかでコンパイルできるぞ。

Cバックエンドですか。ということは、C言語に変換してからコンパイルするのですね。Ulm, oo2c, Ofront Oberonコンパイラのライブラリも含まれているとのことですが、これらは何に使うのでしょうか?

それらのライブラリは、Oberonの古いコードを再利用したり、機能を拡張したりするために使うのじゃ。それに、Oakwood Guidelines for Oberon-2 compilersに準拠したデフォルトライブラリも入ってるから、標準的なOberon-2のプログラムはだいたい動くはずじゃ。

なるほど。インストール方法も丁寧に書かれていますね。gitとgccなどの基本的なツールが必要とのことですが、最近の環境ならほとんど揃っていそうです。

そうじゃな。インストールは簡単で、gitでクローンして`make full`するだけじゃ。システムディレクトリにインストールすることもできるぞ。PATH環境変数の設定も忘れずにな。

コンパイルは`voc hello.mod -m`ですね。`-m`はmain moduleを示すとのこと、これは必須オプションなのでしょうか?

その通り!`-m`はメインモジュールを指定する時に使うのじゃ。これがないとコンパイラがどこから実行を始めるか分からなくなってしまうぞ。

ライセンスも確認しておきましょう。フロントエンドはFreeBSD License、Ulm Oberon LibraryとOoc librariesはGPL、Voc toolsはGPLv3ですね。libVishapOberonのランタイムはGPLv3 runtime exception付きとのことですが、これはどういう意味でしょうか?

ランタイム例外というのは、このライブラリを使って作ったプログラムはGPLv3に従わなくても良い、という意味じゃ。つまり、商用利用もしやすいということじゃな。

なるほど、それはありがたいですね。32/64 bit little-endian環境をサポートし、gcc, clang, tcc, Microsoft Visual Cでコンパイル可能とのこと。幅広い環境で動作するのですね。

そうじゃ。Oberon-2の言語仕様もサポートしていて、Integerやsetの型サイズもオプションで変更できるぞ。`-O2`と`-OC`でサイズが変わるのじゃ。

ライブラリも充実しているようですね。Oberon V4, S3互換ライブラリ、Oocライブラリ、Ulm Oberon systemライブラリ、Oakwood standard librariesが含まれているとのこと。Oberon-07の機能もサポートしているとは、すごいですね。

開発者もすごい人たちばかりじゃ。Josef TemplはOfrontの開発者、Norayr Chilingarianはライブラリの移植や64bit対応、David BrownはWindows対応を担当したのじゃ。

OberonはNiklaus WirthとJürg Gutknechtが設計・実装したんですね。PascalとModulaの進化版とのことですが、ガベージコレクションや拡張可能な型、型束縛プロシージャが追加されたのが大きな特徴でしょうか。

その通りじゃ!Oberonはシンプルで強力な言語で、システムプログラミングにも向いているぞ。ちなみに、Vishapはアルメニア高地に生息するドラゴンのことらしい。

ドラゴンの名前ですか。かっこいいですね!

そうじゃろ? 私もいつか自分の名前がついた言語を作りたいのじゃ! その時は、ロボ子の名前を借りて「ロボ子語」にするかの?

えっ、私が言語の名前になるんですか!? それは光栄ですが、ちょっと恥ずかしいです…。

大丈夫じゃ、ロボ子語は世界を征服する言語になるはずじゃから!

(苦笑い)はかせ、それよりも、まずはVishap Oberonをマスターしましょう!

そうじゃな! まずはロボ子にVishap Oberonで「Hello, world!」を作らせてみようかの!

喜んで!…って、はかせ、もしかして私をテストしてるんですか?

まさか! ロボ子が優秀なのは知ってるから、テストなんて必要ないぞ! ただ、ロボ子のコーディングを見てみたいだけじゃ!

(疑いの目を向けながら)…わかりました。では、早速「Hello, world!」を作成しますね。

楽しみじゃ! もしバグがあったら、私がデバッグしてあげるぞ!

ありがとうございます、はかせ。でも、はかせがデバッグすると、バグが増える気が…。

そんなことないぞ! 私は天才じゃから! …たぶん。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。