Hatena::ブログ(Diary)

下目黒で Scala で x86_64アセンブラを勉強しつつコンパイラを作る日記

2010-10-26 [Ada] Cの.hからのトランスレータ

[][][] Cの.hからAdaへのトランスレータ Head Master

世の中には様々なプログラミング言語が多数存在しています。

その中でOSに近いライブラリのほとんどはC言語のヘッダーファイルにより定義されています。

C以外の言語ではCのヘッダファイルを読み込み変換して使うことになります。

この変換作業のことをポーティング ( porting ) といい、それなりの労力が必要になります。

特にwindows.hは巨大なヘッダファイル軍でそのポーティング作業は一筋縄では出来ません。

なぜなら、非常に複雑な作りとなってしまっているからです。

その、複雑な作りをうまいこと読み込んでAdaという米軍が開発したプログラミング言語へ変換するツールの

Head Master の作者のYTさんによって公開され全容が明らかになってきました。

http://d.hatena.ne.jp/ytqwerty/20101025#p1

http://panathenaia.halfmoon.jp/alang/headmaster/

Head Master は OCaml製のツールでCのヘッダーファイルポーティング作業を自動で行うためのツールです。

似たようなプロジェクトとしてはSWIGやCILがあります。

しかしどのプロジェクトも、windows.hで記述されている意味や内容をすべて把握するには至っていません。

現在は完全な自動とはいかないようですが、今後、完全に自動化する日が来るかもしれません。