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

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

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

Re[2]: コンパイラっうもんについて


(過去ログ 35 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■17898 / inTopicNo.1)  コンパイラっうもんについて
  
□投稿者/ フランチェン (4回)-(2008/05/03(Sat) 10:36:52)

分類:[討論] 

素朴な疑問ですが、ずーっと昔、おいらがまともなフランケンだった時代にアセンブリ語で記述された命令をマシン語に変換するアセンブラと呼ばれるプログラムを作った方はメチャクチャすご〜いですよね〜。(^o^)

こうしたコンパイラなんぞは、作れるようになるんでしょかね?(?_?)
(ま、努力次第というレスがつくことでしょうが
「あたりまえだろ。そんなこともわからないのか。フランチェン」

は、すんまへん。どんなプログラムになっているのか興味がありますねん)

引用返信 編集キー/
■17900 / inTopicNo.2)  Re[1]: コンパイラっうもんについて
□投稿者/ フランシタイ (1回)-(2008/05/03(Sat) 10:48:15)
No17898 (フランチェン さん) に返信
> 素朴な疑問ですが、ずーっと昔、おいらがまともなフランケンだった時代にアセンブリ語で記述された命令をマシン語に変換するアセンブラと呼ばれるプログラムを作った方はメチャクチャすご〜いですよね〜。(^o^)
>

え!?
ちょっと奥様、聞きましたか!?
なんか面白い事が書かれていますよ!?

> こうしたコンパイラなんぞは、作れるようになるんでしょかね?(?_?)

人が作ったものを他の人が作れないという事もあるかもしれないが、
既に前例があるのだから、「出来ない」という事も無いでしょうとしか言えませんよね。

> (ま、努力次第というレスがつくことでしょうが
> 「あたりまえだろ。そんなこともわからないのか。フランチェン」
>
> は、すんまへん。どんなプログラムになっているのか興味がありますねん)

んで、どーでもいいですが、ネタ的には続きそうに無いので、きちんとしたHNを書くことをお勧めします。
引用返信 編集キー/
■17903 / inTopicNo.3)  Re[1]: コンパイラっうもんについて
□投稿者/ επιστημη (957回)-(2008/05/03(Sat) 11:36:36)
επιστημη さんの Web サイト
2008/05/03(Sat) 11:38:50 編集(投稿者)

> アセンブリ語で記述された命令をマシン語に変換するアセンブラと呼ばれるプログラム...

アセンブラは楽でしょう、基本的に1対1の変換だから変換表を引きゃええし。
あとはラベルとアドレスの勘定すりゃえぇので。

ほいほいと書けるってほど簡単じゃないけども、構文解析の類がめっさシンプルですから。
マクロ云々が絡むとちょいと面倒でしょうね。

引用返信 編集キー/
■17904 / inTopicNo.4)  Re[2]: コンパイラっうもんについて
□投稿者/ 倉田 有大 (214回)-(2008/05/03(Sat) 12:04:34)
No17903 (επιστημη さん) に返信
> 2008/05/03(Sat) 11:38:50 編集(投稿者)
>
>>アセンブリ語で記述された命令をマシン語に変換するアセンブラと呼ばれるプログラム...
>
> アセンブラは楽でしょう、基本的に1対1の変換だから変換表を引きゃええし。
> あとはラベルとアドレスの勘定すりゃえぇので。
>
> ほいほいと書けるってほど簡単じゃないけども、構文解析の類がめっさシンプルですから。
> マクロ云々が絡むとちょいと面倒でしょうね。

そのうちavrマイコンの勉強したいとおもってます。
アセンブリ勉強しなくちゃ

コンパイラーかー、勉強して、俺言語も挑戦したいなあ。
引用返信 編集キー/
■17906 / inTopicNo.5)  Re[3]: コンパイラっうもんについて
□投稿者/ ネタ好き (199回)-(2008/05/03(Sat) 14:34:26)
今機械語勉強していて、簡単なものなら命令型・論理型・関数型のコンパイラ作った事在るけど、
最適化機能さえなければそれほど難しく無いです。
だから答えとしては、GCCや商用の物に勝とうとしなければ簡単に作れるです。
勝ちたい場合はRubyを調べるのがいいと思う。
いざとなったら日本語で作者に質問できるのがいい。
引用返信 編集キー/
■17908 / inTopicNo.6)  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向けのものですが)

引用返信 編集キー/
■17918 / inTopicNo.7)  Re[2]: コンパイラっうもんについて
□投稿者/ フランチェン (7回)-(2008/05/03(Sat) 19:08:32)
No17908 (よねKEN さん) に返信
> コンパイラ技術は歴史もあるので、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として動くコンパイラを作っていたりして面白い試みがあります。
> 本書を通して使用される例え話が激しくわかりにくいと私は思いました。この書籍のレビュー等でも同様の意見が多数見受けられますので、
> 十分立ち読みしてから判断する必要があるかと思います。

お〜これはすごい。本屋ではみたこともない本ばかりで〜す。私めの住んでる田舎じゃみたことね♪。(ネットでさがしてみるべきだったなフランチェン。他人に甘えるな→は、す、すんまへん)

解説までつけていただき、お礼の言葉もごじぃません。
早速、近くの都市の大型書店で立ち読み、しゃがみ読みを繰り返して、読んでこようと思ってマウス。
よねKEN 様、本当にありがとうね。感謝、感謝です。m(_ _)m



解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -