言語処理系をつくる

8
木村屋 @kimuraya

「ふつうのコンパイラをつくろう」を読んでいる。

2010-11-06 09:35:35
UNAGI𝕏 @unagix

よくわかんないけど。同人誌なんだから、作る過程を思いっきり楽しんでいかないとダメなんじゃないですかね。 RT @kimuraya: 一か月以内に余暇の時間を使って、やれる事をやるしかないか。

2010-11-06 13:16:06
木村屋 @kimuraya

言語処理系の自作について、資料を見たりして、考えをメモしている。

2010-11-06 14:40:50
Masahito IKUTA @cooldaemon

一版と二版持ってますが、悩んだ時に斜め読みするとイロイロ見つかるので助かってます RT @kimuraya ピアソンの「分散システム 原理とパラダイム 第2版」は、自分にはまだ荷が重いかな。読みこなせる自信がない。少なくとも、MINIX本を読みきらないとな。

2010-11-06 14:44:50
木村屋 @kimuraya

コンパイラを自作する場合、徐々に機能を追加していくという方法は取れるかな。例えば、オブジェクトファイルを出力するところまで作っても、それだけでは意味が無いと思う。実行ファイルを出力するところまで作らないと。

2010-11-06 14:47:28
たけしけー @takeshik

@kimuraya さんは私の話を聞いてくれていないようだ (涙 あるいは、よっぽどイレギュラーな生成フローを取りたいか

2010-11-06 14:49:00
木村屋 @kimuraya

@takeshik 以前、リンカの仕事は丸投げすることも可能と書かれていましたね。Twilogで確認しました。何度も、ご指摘をいただく事になって、すみません…

2010-11-06 14:53:34
木村屋 @kimuraya

@unagix 同人誌は趣味ですから、楽しまないと意味がありませんよね。肩の力を抜いて、出来る範囲でやってみます。

2010-11-06 14:54:35
木村屋 @kimuraya

@cooldaemon そうなのですか。斜め読みなら、何とかなりそうですね。

2010-11-06 14:55:11
たけしけー @takeshik

まあ、リンカの仕事を内包してコンパイラに含めてしまうのも最終的な出力で考えればまあ間違いではないけど、なんだかなー。そこ伝統的な仕組みから外れるところじゃなくね?

2010-11-06 14:59:25
あんどちん(安藤敏彦) @andochin

@takeshik コマンドラインだとコンパイラエンジンがコンパイル&リンクまでしてくれるから見えてないんだと思う

2010-11-06 15:01:43
たけしけー @takeshik

@andochin 書籍通り書けば compile - link のフローに落ち着くはずですし、コンパイラ作る以上リンカ部分抱え込むなんていう敢えて劣化構造を持ち込む必要も無いと思うんですけどねえ…

2010-11-06 15:03:19
あんどちん(安藤敏彦) @andochin

そもそもコンパイラだってパーサやコードジェネレータは別々のプログラムで中間ファイルでやりとりしたりするよね

2010-11-06 15:03:26
たけしけー @takeshik

ならコンパイラと一緒にリンカを作ればいいのに…ってのは無粋なの?俺が

2010-11-06 15:04:34
UNAGI𝕏 @unagix

@kimuraya 最初の計画から、すったもんだした経緯をすべてTwitterの自分のPostと共に時系列で並べていったらおもしろいものになるかも!

2010-11-06 15:04:47
あんどちん(安藤敏彦) @andochin

@takeshik もし僕がコンパイラを作るならアセンブラのソース出させてその先は今あるものに任せる。GCCに詳しければRTL出すとこまで作るだけで終わるかもしれない

2010-11-06 15:08:59
あんどちん(安藤敏彦) @andochin

@takeshik 訂正、アセンブラやRTL出すのも面倒臭いからCもしくはJavaやC#などのソースへのトランスファーにする。そうすれば既にある最適化技術を使える

2010-11-06 15:09:52
たけしけー @takeshik

@andochin たしかにそれが一番お手軽な言語の作り方ですよねw

2010-11-06 15:10:39
あんどちん(安藤敏彦) @andochin

@takeshik Register Transfer Language 中間アセンブラ。これから各CPUのアセンブラに変換するというのがgccのやりかただったと記憶している

2010-11-06 15:12:19
木村屋 @kimuraya

コンパイラを作る場合は、オブジェクトファイルの生成はアセンブラに任せられるかな。その後のリンカの処理をどうするかを調べてみよう。

2010-11-06 15:14:59
木村屋 @kimuraya

トランスレータで俺言語を作るのも一つの方法なのかな。でも、その方法は自分の目的にあっているのだろうか。言語処理系の処理の過程を知ることが、言語処理系を自作する動機だったし。どうしたものかな。

2010-11-06 15:47:33
たけしけー @takeshik

@kimuraya だったら尚更ちゃんとコンパイラとリンカをきちんと峻別するなり…と。

2010-11-06 15:48:09
木村屋 @kimuraya

『リンカ・ローダ実践開発テクニック』も参考になるかな。あとで読んでみよう。

2010-11-06 15:51:58
木村屋 @kimuraya

@takeshik リンカについて、よく分かっていないので『リンカ・ローダ実践開発テクニック』を読んでみることにしました。また、変なツイートをしていたら突っ込んで下さい(苦笑

2010-11-06 15:53:52
1 ・・ 7 次へ