C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 35 を表示中)
■17908 / )  Re[1]: コンパイラっうもんについて
□投稿者/ よねKEN (3回)-(2008/05/03(Sat) 14:41:07)
> こうしたコンパイラなんぞは、作れるようになるんでしょかね?(?_?)

市販されているレベルのコンパイラを作るのは容易ではないですが、
とりあえずコンパイルと呼べる程度のものなら、そんなに難しいものではないです。

コンパイラ技術は歴史もあるので、Webでも書籍でも基本的な情報は割と得やすいと思います。
Webでの情報収集なら大学の情報系学科の講義資料などが参考になるでしょうね。
後、書籍では私が読んだことのあるものとしては以下の書籍があります。

コンパイラとバーチャルマシン
http://www.amazon.co.jp/%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9%E3%81%A8%E3%83%90%E3%83%BC%E3%83%81%E3%83%A3%E3%83%AB%E3%83%9E%E3%82%B7%E3%83%B3-Text-%E4%BB%8A%E5%9F%8E-%E5%93%B2%E4%BA%8C/dp/4274133087
→Javaを使ってオリジナル言語Chavaとそれ用のバーチャルマシンを作成します。

コンパイラ入門 C#で学ぶ理論と実践
http://www.amazon.co.jp/%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9%E5%85%A5%E9%96%80-%E3%81%A7%E5%AD%A6%E3%81%B6%E7%90%86%E8%AB%96%E3%81%A8%E5%AE%9F%E8%B7%B5-%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E5%AE%9F%E8%B7%B5%E8%AC%9B%E5%BA%A7-%E5%86%A8%E6%B2%A2-%E9%AB%98%E6%98%8E/dp/4797331690
→ C#(ただし非オブジェクト指向な作り方)でPascal言語のサブセットのコンパイラを作成します。
言語仕様の一般的な記述方法であるBNF記法、構文解析に関する部分の解説が充実してます。
コンパイルターゲットはMASMですので、別途、MASMを用意する必要があります。
MSサイトからVC++2005 Expression EditionとMicrosoft Macro Assembler 8.0がどちらも無料でダウンロードできるので、
環境を整えれば、最終的にWindowsネイティブのバイナリまで生成できます。

スモールコンパイラの製作で学ぶプログラムのしくみ
http://www.amazon.co.jp/%E3%82%B9%E3%83%A2%E3%83%BC%E3%83%AB%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9%E3%81%AE%E5%88%B6%E4%BD%9C%E3%81%A7%E5%AD%A6%E3%81%B6%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E3%81%97%E3%81%8F%E3%81%BF-%E7%9F%B3%E7%94%B0-%E7%B6%BE/dp/4774121770
→ i-appliとして動くコンパイラを作っていたりして面白い試みがあります。
本書を通して使用される例え話が激しくわかりにくいと私は思いました。この書籍のレビュー等でも同様の意見が多数見受けられますので、
十分立ち読みしてから判断する必要があるかと思います。


実用レベルでのコンパイラのサンプルとしては、
Mono C#やIronPythonなんかはソースも公開されていますね。(私が.NETばかりやっているので、どちらも.NET向けのものですが)

返信 編集キー/


管理者用

- Child Tree -