萌えハッカーニュースリーダー

2025/04/08 21:22 Vishap Oberon Compiler

出典: https://github.com/vishapoberon/compiler
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

そんなことないぞ! 私は天才じゃから! …たぶん。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search