04/08/01 06:21
>>807
Lonely Rotary
Lonely Lolita
Lolita and Lonely Rotary
810:デフォルトの名無しさん
04/08/01 12:50
>>807
LR:左から読んで右から導出
LL:左から読んで左から導出
LALR:ルックアヘッド付きLR
811:デフォルトの名無しさん
04/08/01 12:54
【LR】Left-to-right scanning, Right-most derivation in reverse
【SLR】Simple LR
【LALR】LookAhead LR
括弧内は先読みのこと
812:デフォルトの名無しさん
04/08/01 15:47
LALR(3) ぐらい欲しい。
813:デフォルトの名無しさん
04/08/01 15:57
>>812
探せば GLR 使えるパーサジェネレータもあるぞ。
814:デフォルトの名無しさん
04/08/01 16:49
>>812
漏れはむしろ「欲しい例」を出して欲しい。
815:デフォルトの名無しさん
04/08/01 18:10
世の中LALR(1)が圧倒的な主流。
それ以外はただの学問的な研究対象か趣味。
まぁ、炉利趣味と同レベルw
816:デフォルトの名無しさん
04/08/01 18:11
DelphiはLALRじゃないのでは?
817:デフォルトの名無しさん
04/08/01 18:40
>>815
C++ は LALR(1) に収まらないワケだが。
818:デフォルトの名無しさん
04/08/01 21:49
>>817
それは書き方が悪いからでしょ?
あんなもん、書こうとおもえばいくらでも当てはめられる。
(と思う。)
819:デフォルトの名無しさん
04/08/01 21:59
俺はめんどくさいから再起下降でいいよ
820:デフォルトの名無しさん
04/08/01 22:38
俺は再帰降下でいいや
821:デフォルトの名無しさん
04/08/01 22:40
抗菌加工でいいや
822:>>778です
04/08/02 15:41
お礼が遅れましてもうしわけございません。
ありがとうございました。
>>794さんがおっしゃっていた YY_INPUT のサンプルをいろいろ
探したのですが、これの他にもDOS窓から入力された文字列を
変換するなんていうマクロなどありますでしょうか?
823:デフォルトの名無しさん
04/08/02 16:56
>>822
YY_INPUTのサンプルって例えば何?
サンプルとかじゃなくて、実際のflexが生成するYY_INPUTマクロを見た方がいいよ。
さらにlexの実装によっては、どう工夫してもお望みのことができないもの
もあるから、「文字列から入力」っていうのは可搬性の面ではよくない。
とりあえず、flexだったらYY_INPUTを定義し直せばOK
YY_INPUTってのは
YY_INPUT(buffer, result, bufsize)
buffer:文字列を格納するバッファ
result:実際に読み込んだ長さ
bufsize:バッファの大きさ
で、デフォルトではFILE *yyinから読むようになってるはずだから、それを
君が解析した文字列から読む(コピーする)コードにすれば良いね。
そのまま他の環境にコピーしても動かない可能性があるので注意。
824:>>778です
04/08/02 17:55
>>823 さん レスありがとうございます。
確かにYY_INPUTは、FILE* yyinを使って処理していますね。
っということは、scanfなどで入力した文字列をYY_INPUT(buffer, result, bufsize)
のbufferにコピーしてあげるようなコードを書けばよいということでしょうか?
また、違う例として、DBに格納されているデータを取得してきて、
字句変換させるために
FILE* yyinならぬextern char* yyin_charなるものを作成して
まずはそこにDBのデータをコピーし、YY_INPUT内でbufferにyyin_charを
コピーしてあげるような動きでよいのでしょうか?
また、実際にmain関数などから、YY_INPUTを呼ぶには、直接呼んでも
よろしいのでしょうか?
質問攻めでもうしわけございませんが
よろしくお願いします。
825:823
04/08/02 19:18
>>842
おいおい、なんか間違えてるぞ。前半は正しい感じだけど、最後のが…?
質問に答えるのは構わないけど、その前に一つ質問させてくれ。
Q. YY_INPUTマクロとは何でしょうか?
(何をするものか、誰が使うものか、どこから使うものか、yylex()と
YY_INPUTの関係とかに注目。)
これに適切に答えられれば、>>824にあるような質問は無いと思う。
さらにおまけとして…、YY_UNPUTとは何?
(ヒント:flexの生成するlex.yy.cにすべての答えがある。)
826:デフォルトの名無しさん
04/08/02 22:21
結局 >>815は正しいの?
827:デフォルトの名無しさん
04/08/02 22:22
>>800
質問です。
Lex & Yacc (Nutshell) はいかがでしょうか?
これもLRを解説してますか?
828:デフォルトの名無しさん
04/08/02 22:31
>>826
すぐ下で答えが出てるじゃん。
829:800
04/08/02 22:46
>>827
解説してないね。
でも、典型的なシフト還元衝突などの説明と回避方法の解説はある。
ってかこの本もう絶版じゃない? 手に入るの?
830:デフォルトの名無しさん
04/08/03 17:27
>>791
yyinを指定しないと入力が標準入力になるからそうなるのでしょう
831:デフォルトの名無しさん
04/08/03 17:55
yyworld
832:デフォルトの名無しさん
04/08/06 23:12
>>829
一応あるみたいです。
やはり、ドラゴンを理解しないと
shift/reduce & reduce/reduce の衝突を完全回避することは難しいですかね?
833:デフォルトの名無しさん
04/08/06 23:13
在庫だと思われます。↑
834:デフォルトの名無しさん
04/08/09 23:38
注文してしまった。
835:デフォルトの名無しさん
04/08/30 00:46
age!
836:デフォルトの名無しさん
04/08/30 14:29
「コンパイラ構成法」の原田賢一氏の研究室のサイトが見つかりません。
移転したんでしょうか?
どなたか、ブックマークつけてらっしゃる方います?
コンパイラ構成法のソースコードをゲットしたいんですが。
837:デフォルトの名無しさん
04/09/01 10:01
う~ん。名前空間の実装法がわからん。
だれか、参考になるサイトか書籍、知らないか?
クラス定義と同じ方法で良いのかなぁ?
838:デフォルトの名無しさん
04/09/01 10:32
>>837
シンボルテーブルのスタックを作ればいいだけじゃないか?
839:デフォルトの名無しさん
04/09/01 13:55
>>838
>シンボルテーブルのスタックを作ればいいだけじゃないか?
それってディスプレイ・・・・・だよねぇ。
ブロックを開くときに名前を覚えておくようにするんだろうか?
840:デフォルトの名無しさん
04/09/01 19:40
例えばC++には複数の名前空間があってややこしい
キーワード
演算子
プリプロセッサ
型
変数
namespace
これらは関係を持ったりするしね
まあプリプロセッサを除いて基本はみな同じだけど
841:デフォルトの名無しさん
04/09/01 19:42
名前空間は
関数 namespace クラス
だけじゃないのか?
842:デフォルトの名無しさん
04/09/01 19:46
::、using、export、importが絡むとさらに複雑になる
843:デフォルトの名無しさん
04/09/01 19:57
:: using は簡単
export importはどうだろ
844:デフォルトの名無しさん
04/09/01 20:24
>>840
何を持って基本というか知らんが、実装しようと思うと namespace は深いぞ。
ADL と関数テンプレートとか。
845:デフォルトの名無しさん
04/09/03 18:29
所詮 namespace は、バカ避けの機能。
優秀なコンパイラ屋が血反吐を吐きながら実装するものの、
それによって実行速度が向上する訳も無く・・・
そもそも優秀なプログラマならば、最初から namespace など
必要としない確固としたコーディングスタイルを身に着けている。
そしてバカなプログラマは、せっかく実装してもらった機能の
使い方自体が分からない。バカは所詮バカ。
namespace って、一体何の為にあるんだろう・・・
846:デフォルトの名無しさん
04/09/03 18:50
↑ホームラン級のバカ
847:デフォルトの名無しさん
04/09/03 19:24
所詮 型 は、バカ避けの機能。
優秀なコンパイラ屋が血反吐を吐きながら実装するものの、
それによって実行速度が向上する訳も無く・・・
そもそも優秀なプログラマならば、最初から 型 など
必要としない確固としたコーディングスタイルを身に着けている。
そしてバカなプログラマは、せっかく実装してもらった機能の
使い方自体が分からない。バカは所詮バカ。
型 って、一体何の為にあるんだろう・・・
848:デフォルトの名無しさん
04/09/03 20:04
ダウト。残念ながら、型によって実行速度は上がるんだよ。
849:デフォルトの名無しさん
04/09/03 20:15
いくらなんでも型は重要だろう。
850:デフォルトの名無しさん
04/09/03 20:16
>>845
評価尺度が実行速度だけとは……。1960 年代の人間ですかい?
851:デフォルトの名無しさん
04/09/03 21:23
60年代だったら消費メモリも重要だな。
852:デフォルトの名無しさん
04/09/04 01:00
所詮「コンパイラ・スクリプトエンジン」相談室 は、バカ避けのスレ。
優秀なプログラマが血反吐を吐きながら回答するものの、
それによって理解が向上する訳も無く・・・
そもそも優秀なプログラマならば、最初からこのスレ など
必要としない確固とした技術を身に着けている。
そしてバカなプログラマは、せっかく回答してもらった説明の
内容自体が分からない。バカは所詮バカ。
このスレって、一体何の為にあるんだろう・・・
853:デフォルトの名無しさん
04/09/04 01:01
>>852
ワラタ
854:マイク ◆yrBrqfF1Ew
04/09/04 01:22
namespaceは最高だな。
感動もんだ。
855:デフォルトの名無しさん
04/09/04 11:21
>>852
無理してまで回答は僕もしないし、他の人もしてないんじゃない。
コンパイラやスクリプトを作ろうという人口は少ないから過疎なのは仕方が無いが
僕は日ごろから巡回しているし、このスレ向きの質問書けば回答は帰ってくるよ。
もちろん僕もクレクレ君とOO厨房の言語論争的な話題は放置してるけどね。;-P
キミには分らないかもしれないが機能しいてない掲示板ではないよ、
進行が遅いに加えて近頃アホっぽい話題が充満しているだけだ。
856:デフォルトの名無しさん
04/09/04 12:52
>>855
( д ) ゚ ゚
857:デフォルトの名無しさん
04/09/04 16:13
ひさびさにコピペにマジレス見た・・・
858:デフォルトの名無しさん
04/09/04 16:48
型の実装について教えてください。
現在 int のみのコンパイラは作れたのですが
float などを追加しようとすると例えばスクリプト中の変数に型情報を持たせて
実行するときに int か float か if で判断するしか無いのでしょうか?
2つならまだしも double とか char を追加するとなると代入するとき等の型判定で
組み合わせの爆発が起きそうなのですがなにか良い方法はないでしょうか?
速度的に。
859:デフォルトの名無しさん
04/09/04 17:02
テーブル作るか int float を別文法にしてしまうか……
てか、こんな事は自分で考えろ。
860:デフォルトの名無しさん
04/09/04 17:07
>>858
>現在 int のみのコンパイラは作れたのですが
>float などを追加しようとすると例えばスクリプト中の変数に型情報を持たせて
>実行するときに int か float か if で判断するしか無いのでしょうか?
って、そんなのコンパイル出来たって言えないやん。。。
何の為の型なのさ?
861:デフォルトの名無しさん
04/09/04 17:11
変数に型情報があってコンパイラを作っているのなら、
コンパイルの時点で型にあったコードを生成するだけだろ。
実行時じゃなくて。
862:デフォルトの名無しさん
04/09/04 17:12
>>860 ハァ
863:デフォルトの名無しさん
04/09/04 18:27
>>860
バカ避けの機能
864:デフォルトの名無しさん
04/09/04 18:59
>>859-861
おぼろげながら自分の間違いが分かってきました。
どうもです。
もう少し考えてみます。
865:デフォルトの名無しさん
04/09/04 20:09
>>858
実行時に型チェックするかコンパイル時に型チェックするかは、言語の設計に
大きく関わってくるけど、まぁどっちでも良い。
コンパイル時に型チェックしたければ、たとえば Yacc 風に書くと
IDENT '=' experssion:
{
// まず IDENT が変数名であることを確認
// 次に experssion の型が IDENT の型に変換できることを確認
// 型変換して代入するコードを生成
}
;
ってな感じ。型変換判定は素直に実装すると型の数の 2 乗のオーダーで増えるが、
テーブルにでも書いておけば大した手間ではない。ベタに if - else とかで書くと死ぬ。
866:デフォルトの名無しさん
04/09/04 21:46
YACC はバカ避けのソフト。
867:デフォルトの名無しさん
04/09/04 22:46
作ってて楽しけりゃなんだっていい
868:デフォルトの名無しさん
04/09/05 06:46
( ゚д゚)、ペッ
869:デフォルトの名無しさん
04/09/05 15:32
型についてはシンボルテーブルで管理すれば良いでしょ。
シンボル表のエントリに型情報をもたせ、それが基本型を
ポイントすることで、個々のシンボルの型を表現します。
struct や class などの基本型をまとめた型を作るときも
シンボル表にそれらの新しい型のエントリを作って、基本型を
リスト状にポイントしていけばよいです。
870:デフォルトの名無しさん
04/09/05 17:16
所詮 lex は、バカ避けのソフト。
(以下ry
871:デフォルトの名無しさん
04/09/05 17:47
>>855
wrota
872:デフォルトの名無しさん
04/09/05 19:51
>>870-871
意味の無いレスいれるの止めてくんない、近頃こんなレスばっかりで
前後の見通しが悪くてかなわないんだよ、邪魔だから適当な言語死滅スレにでもいってくれ。
873:デフォルトの名無しさん
04/09/05 20:08
その発言は結局荒れるもとになるよ。
そして、大量に無駄な情報のなかから有用なものを抜き出すのが2chの利用法だと思う。
874:デフォルトの名無しさん
04/09/05 20:12
過疎スレでやってくれるなよなとは思う
875:デフォルトの名無しさん
04/09/07 17:20
855=872
876:デフォルトの名無しさん
04/09/13 23:46:35
>>872
お前のレスこそ余計。
877:デフォルトの名無しさん
04/09/13 23:47:49
>>872
wrota
878:デフォルトの名無しさん
04/09/14 18:08:01
876=877
wrota書くのに一分もかかってんじゃねーよ。
879:デフォルトの名無しさん
04/09/14 23:04:15
>>878
!= だが何か?
880:デフォルトの名無しさん
04/09/14 23:09:55
3日後
870 名前:デフォルトの名無しさん 投稿日:あぼーん
あぼーん
871 名前:デフォルトの名無しさん 投稿日:あぼーん
あぼーん
872 名前:デフォルトの名無しさん 投稿日:あぼーん
あぼーん
~略~
879 名前:デフォルトの名無しさん 投稿日:あぼーん
あぼーん
880 名前:デフォルトの名無しさん 投稿日:あぼーん
あぼーん
何のためのスレなんだか
881:デフォルトの名無しさん
04/09/14 23:28:47
なんか恐ろしく自己中なヤツがいるようですが…
882:デフォルトの名無しさん
04/09/15 00:36:49
名前もあぼーんになるはずだが
883:デフォルトの名無しさん
04/09/15 01:04:33
このスレ869までしか表示されないな。
884:デフォルトの名無しさん
04/09/15 22:07:01
まぁ、もしアボーンされるとしても、
>>880 が最初だろw
885:デフォルトの名無しさん
04/09/20 01:53:27
gccの&&label(Labels as Values)みたいな機能を実現するには、
ラベルは相対じゃなくて、絶対アドレスを取得しなきゃならんのだよね。
void *ptr = &&label;
goto *ptr;
label:
の場合は
// void *ptr = &&label;
mov DWORD PTR[ebp-04h], label_EA
// goto *ptr;
mov eax, DWORD PTR[ebp-04h]
jmp eax
label:
こんな感じかな?
でも
なんで
goto ptr;
じゃないんだろう?
ptrと
*ptr
は何を指すのか
はて。。。
886:デフォルトの名無しさん
04/09/20 03:29:47
できたできた。
どうやら型をvoid*にしたのはgccの気まぐれらしい。
ラベルの型なんてないからねえ。
int ptr = &&label;
goto ptr;
これだとラベルと区別つかないからvoid*にしただけか。
gccは変な構文ばっかだな。
887:デフォルトの名無しさん
04/09/29 19:53:22
VC++でflex++/bison++でリンカエラー回避できますか?
888:デフォルトの名無しさん
04/09/30 22:56:07
アフォはスルーされるという典型例だなw
889:デフォルトの名無しさん
04/10/05 23:30:22
C++、Javaで同じスクリプトを動かしたいんですが、
自作するしかないでしょうか。
LuaがJavaに対応していれば一番いいんですが。
890:デフォルトの名無しさん
04/10/06 00:42:29
>>889
Schemeとか、どっちでも使える言語も結構ある。
891:デフォルトの名無しさん
04/10/06 00:57:17
そういう意味ではLISP系探すと強いね。
とりあえずS式が読めればなんでもいいわけだし。
892:デフォルトの名無しさん
04/10/06 10:39:52
>>889
TCLとか
893:デフォルトの名無しさん
04/10/06 12:59:19
>>889
JavaSript というか ECMAScript がいいんじゃない?
簡単だし。
894:デフォルトの名無しさん
04/10/06 18:10:12
みんな自分が使っているのを薦めている予感。
895:デフォルトの名無しさん
04/10/06 21:08:06
bashスクリプトがイイと思うよ。
896:889
04/10/06 21:33:47
どうもです。
その辺りのキーワードを頼りに探してみます。
ありがとうございました。
897:デフォルトの名無しさん
04/10/06 22:50:27
とりあえずECMAScript(の実装)が簡単だという意見が本気でわからん
898:デフォルトの名無しさん
04/10/06 22:53:42
LISPは1000行も書けばそこそこ使えるものができる
Javaだともっと短いかも
899:デフォルトの名無しさん
04/10/06 23:04:05
>>897
>C++、Javaで同じスクリプトを動かしたいんですが、
>自作するしかないでしょうか。
って質問だったので、C++とJava での実装が容易に利用できる ECMAScript を勧めました。
900:デフォルトの名無しさん
04/10/06 23:14:01
ECMA Scriptだと、MozillaのSpiderMonkeyとRhinoが
良さそうだね。
901:デフォルトの名無しさん
04/10/06 23:28:14
Pythonは?
902:デフォルトの名無しさん
04/10/06 23:31:24
>>901
ぴちょん(・∀・)!
903:デフォルトの名無しさん
04/10/08 08:18:15
ネイティブコンパイルする処理系を作成中です
904:デフォルトの名無しさん
04/10/09 09:13:05
完成です
905:デフォルトの名無しさん
04/10/09 14:51:55
じりじり
906:デフォルトの名無しさん
04/10/09 16:05:06
>>904
晒せ
907:デフォルトの名無しさん
04/10/09 22:31:21
処理系のテストってみなさんどうしてますか
構文、演算子ごとに全パターン網羅できてますか?
ある組み合わせで不具合が出る可能性もあるから、
どうがんばっても全部網羅したとはいえませんよね
某スレのD言語なんかろくにテストされてないのがまるわかりですし
ある程度テストパターンの自動作成ができればよいのですが
そういうアイデアで何かありませんか?
908:デフォルトの名無しさん
04/10/09 23:31:27
例えばifが構文のキーワードならif + 1のような並びは構文エラーとなるべきですが、
こういうのはyaccを使った場合も含めてエラーとなることは予測できたとしても
実際にエラーになることの検証まではされていないのが現状だと思います。
これは言語処理系に限った話ではないですが、予測の付かないユーザーの
ランダムな入力に対し、はたして適切な処理をしているのかどうか?を検証する
確立された方法はあるのでしょうか?
test_if_branch() {
int x;
x = 0;
if (x) x = 2;
test_assert(x==0);
x = 1;
if (x) x = 2;
test_assert(x==2);
x = 0;
if (x) x = 2;
else x = 3;
test_assert(x==3);
x = 1;
if (x) x = 2;
else x = 3;
test_assert(x==2);
}
こんなものを延々と記述していくしかないのでしょうか。
909:デフォルトの名無しさん
04/10/10 15:30:32
>>907
全部網羅って C∞ のテストをしたいって事?
910:デフォルトの名無しさん
04/10/10 19:19:42
確立した方式など無いと思うが…
なので、実績の積み上げしか無いと思われ。
911:デフォルトの名無しさん
04/10/10 20:24:50
>>908
行カバレッジが100%になるようなテストセットを作るとか。
912:デフォルトの名無しさん
04/10/11 21:40:00
Bisonでparseした時、エラーの出た行をしらべるにはどうするの?
913:デフォルトの名無しさん
04/10/12 00:36:07
flexからbisonに渡すTokenに行番号の情報を入れといて、エラー発生時に取り出して使う、
でいいんじゃない?
914:912
04/10/12 23:08:03
>>913どうもです、flexのhelpみてたらoptionでありました
915:デフォルトの名無しさん
04/10/13 21:00:24
>>914
それはflexの中だけだろ?
bisonとは微妙にずれる場合も多い。
>>913 が王道かも。
916:デフォルトの名無しさん
04/10/15 20:56:20
DLLの関数呼び出しって、参照が一回挟まると思うんだけど、
ループで何べんも呼ぶと普通の関数呼び出しよりパフォーマンスに影響出る?
自分の処理系では参照をはさまない様に(つまりLoadLibraryと同じ方式)
してるけどいまいち差がわからない。
それよりも配置情報テーブルのサイズ減らした方が得なのかなと思ったり。
917:デフォルトの名無しさん
04/10/15 22:32:51
>>916
間接参照になる分だけ、パフォーマンスは落ちる。でも関数内部が
一行だけとかでない限り、あまり気にしないで良いと思うぞ。
とりあえず計ってみたら?
918:デフォルトの名無しさん
04/10/16 11:20:18
>>917
コンテキスト切り替えとか食らうと凄く影響するけど、
間接参照が一個増えた程度ではパフォーマンスにそれほど影響しないような…
昔、C++ で virtual ありと無しのメンバ関数で速度測ったら
virtual ありの方が速くてびっくりした事もあるし。
919:デフォルトの名無しさん
04/10/16 11:38:42
それはお前の計り方が間違ってただけだろう。
920:デフォルトの名無しさん
04/10/16 11:52:11
>>919
誤差で逆転しただけかもしれんがね。
っつか、測定前から virtualありの方が遅いと決め付けてるなら測定する意味が無いような。
921:デフォルトの名無しさん
04/10/16 11:58:21
>>920
その測定ソース、どんな感じに作ったのか晒してみ。
922:デフォルトの名無しさん
04/10/16 12:14:42
>>921
virtualありの関数を持つクラスとなしの関数を持つクラス作って
ループでn回関数を呼び出す、ループ前とループ後の時間から
かかった時間を割り出す普通のマイクロベンチだったと思うが。
関数の中身は空だったか、軽い計算させてたかは覚えてない。
あとはアセンブラの出力を見て最適化で関数呼び出しが削除されてない事と
virtualありの方は間接参照を介している事を確認した。
923:デフォルトの名無しさん
04/10/16 13:49:08
まぁ、システムをスタティックリンクにしてからだな
924:デフォルトの名無しさん
04/10/16 14:15:49
>>923
それは >>916-922 と関係あるのか?
925:デフォルトの名無しさん
04/10/28 21:26:06
日経ソフトウェアの推薦書籍コーナーで、中田さんの本が2冊あげられていた。
取り上げていた人はどちらもすごい方なので、ちと読んでみようかなという気が沸き起こった。
926:925
04/10/28 21:40:42
それにしても\10000を超えるって、やっぱり高い。
コンパイラの構成と最適化
中田 育男 (著)
URLリンク(www.amazon.co.jp)
927:デフォルトの名無しさん
04/10/28 22:03:22
>>926
ドラゴンブックより良い?
928:デフォルトの名無しさん
04/10/28 22:10:24
>>927
ドラゴンブックよりも内容が新しいらしい。
929:デフォルトの名無しさん
04/10/28 22:19:39
>>927
かなり難解ですよ。
ドラゴンブックとかプログラミング言語処理系を読んで
それでも物足りない人向け。
930:927
04/10/28 22:43:04
読んでみたくなったけど、高いなあ…
931:デフォルトの名無しさん
04/10/28 23:07:51
そもそも「最適化」をタイトルに冠してる時点でかなりのレベルが予想されるわけだが... < 中田本
それにしてもドラゴンブックの改訂版(に当たる本),いつ出るんでしょうね...
932:デフォルトの名無しさん
04/10/28 23:14:58
>>926
ドラゴンブック揃えるより安いじゃん。
933:デフォルトの名無しさん
04/10/29 18:29:03
>>931
もう出たんじゃね?
URLリンク(www.amazon.co.jp)
ペーパーバック版は来年らしい。
URLリンク(www.amazon.co.jp)
934:デフォルトの名無しさん
04/10/30 00:24:51
>>933
「この商品を予約注文する」と表示されたから、まだ出てないのかも…待ちくたびれたよ。
935:デフォルトの名無しさん
04/10/30 08:51:24
>>934
うはwwwwwwwwwwwwwww
昨日見たときはショッピングカートに入れるになってたんだがw
amazonの罠だったか。
936:デフォルトの名無しさん
04/10/31 00:42:43
URLリンク(i.loveruby.net)
これってどうよ?
937:デフォルトの名無しさん
04/10/31 18:50:33
>>932
そろえるって何?
1つしかないのでは?
938:デフォルトの名無しさん
04/10/31 19:00:25
>>937
お前、現物見た事あるのか?
939:デフォルトの名無しさん
04/10/31 19:15:08
>>938
URLリンク(www.amazon.com)
洋書の方は全1巻みたいです。
940:デフォルトの名無しさん
04/10/31 19:56:06
揃えるといったら、グリーンとレッドでは?
941:デフォルトの名無しさん
04/10/31 20:39:14
ポケモンみたい
942:デフォルトの名無しさん
04/10/31 20:39:42
21st Century Compilersが待てない人は↓がオススメ。
Modern Compiler Design / John Wiley & Sons, ltd
Dic Grune / Henri E. Bal / Geriel J. H. Jacobs / Koen G. Langendoen
実装本ではなくアルゴリズム本。
ある程度のコンパイラ実装経験がある人なら買って損はないと思います。
私は「コンパイラ構成法」→「プログラミング言語処理系」→本書、の順で
学んできましたが、頭の中がすっきりまとまって、今の私にちょうど良い
レベルだと思います。アルゴリズムがスードウ・コードで書かれているので
最初はちょっと戸惑いましたが、すぐに慣れるでしょう。
私の英語レベルでも、見開きに知らなかったり忘れていたりする単語が、
ひとつあるかないか、といった程度なので本書を読み進めるのは、それほど
困難ではありません。
ちなみに私の英語遍歴は、「Grammar in Use Basic/Intermediateを一通りやる」→
「Duo 3.0丸暗記」→「TOFELテスト 英単語3800のランク3を暗記中」と
いったところ。それほど高い英語力がなくても大丈夫でしょう。
943:デフォルトの名無しさん
04/10/31 21:07:52
>>942
コンパイラの勉強をする前、した後とでなにか大きく変わったことはありますか?
944:デフォルトの名無しさん
04/10/31 22:18:01
>>942
紹介を少しみたところ、コンパイラの(可能な限りの)自動生成に力点を置いてるようですが、
その辺りどうでしたか?
945:デフォルトの名無しさん
04/10/31 22:18:53
>>942
pseudo codeを「スードウ・コード」と書かれているので戸惑いました。
946:デフォルトの名無しさん
04/10/31 22:25:20
>>943
昔俺が本読んで実際うまくいった最適化と言える物は
せいぜい定数畳み込みと覗き窓ぐらいだったな。
頭悪いと「それはそれ、これはこれ」って言葉の意味が実感できるぜ!
コンパイラの勉強もいいけどCPUやアセンブラにも詳しくないと
速いコードにはならないぜ。
VMを作るときにも困るぜ?
947:デフォルトの名無しさん
04/11/01 21:36:17
>>938
英語音痴w
948:デフォルトの名無しさん
04/11/02 10:51:27
次スレには>>936もリンクに加えておいて下さい
949:デフォルトの名無しさん
04/11/02 13:03:18
>>943
今まで努力するのが面倒で、yaccでやっていましたが、
そんな自分が嫌でコンパイラの勉強を始めました。
その甲斐あって仕事もはかどり、昇進も決まり、彼女も出来ました。
6月には結婚します。これも全てコンパイラの勉強をした成果です。
(27歳・会社員)
950:デフォルトの名無しさん
04/11/02 22:20:28
おれは今まで金無し君だったけど(ry
951:デフォルトの名無しさん
04/11/02 22:22:11
>>950
今ではすっかり能無し君か。
952:デフォルトの名無しさん
04/11/02 23:44:04
コンパイラの勉強をしたら負け(ry
953:デフォルトの名無しさん
04/11/03 09:12:07
コンパマダァ-? (・∀・ )っ/凵⌒☆チンチン
954:デフォルトの名無しさん
04/11/03 12:48:01
最近、パチンコ行っても付きまくりな訳だが、
そういえばコンパイラの勉強し始めてからだったことに気づいた。
955:デフォルトの名無しさん
04/11/03 21:25:51
俺もコンパイラを勉強していて出てきた数字で
ロト6を買ったら2等が当たりました。2000万くらい。
956:デフォルトの名無しさん
04/11/05 18:44:42
じゃあ俺もコンパイラの勉強していたら
株が上がったことにしよう
957:デフォルトの名無しさん
04/11/05 22:11:26
LISP最強
958:sage
04/11/06 05:48:47
スモールコンパイラの制作で学ぶプログラムのしくみ
URLリンク(www.cbook24.com)
959:デフォルトの名無しさん
04/11/06 12:31:17
>>958
おっ、新作ですかね?
この分野では珍しい。
しかも、やさしそう
あと安い。
すべて型破り!w
960:デフォルトの名無しさん
04/11/06 13:42:32
宣伝乙
借金でもできたんですか?
961:959
04/11/06 17:41:07
著者は有名な方ですか?
あと、目次とかはないんでしょうか?
962:デフォルトの名無しさん
04/11/06 18:00:39
>>958
中身もなさそう。
963:ほんたま
04/11/06 20:32:28
おみゃ~らよ、system32フォルダにあるDLLの関数を呼び出すには、インポートセクションにDLL名と関数名を書き込んでいくだけで、呼び出せるんだが、
VC++で自分でつくったDLLの関数を同じ方法で呼び出そうとすると、「DLL何に○○のエントリーポイントが見つかりません」というメッセージが出て呼び出せないんだ…
おみゃ~らよ、自分でつくったDLLとwindows付属のDLLとは、どっか構造が違うのかな?
windows付属のDLLと同じ構造のDLLを自分でつくるにはどうすればいいの?
教えてくだされ~♪
964:デフォルトの名無しさん
04/11/06 20:57:32
マルチにレス不要
965:デフォルトの名無しさん
04/11/06 23:18:33
どうせstdcallつけてないだけなんだろうな
966:デフォルトの名無しさん
04/11/07 22:44:04
>>958
プログラミング言語処理系とか買ったけどチンプンかんぷんだった俺にはちょうどいい
こういう本もっとでてほしいな
安いしな・・・
967:デフォルトの名無しさん
04/11/07 22:46:29
>>966
オレは「UNIX プログラミング環境」が初体験だったが。今はもう流行らんか。
968:デフォルトの名無しさん
04/11/08 01:09:20
>>967
洩れもそれだ!w
但し英語番だけど、
969:デフォルトの名無しさん
04/11/08 19:02:04
>>967
hocのソースにバグがあったと聞いたけど、どこか知ってる?
970:デフォルトの名無しさん
04/11/08 20:01:57
>>969
いろいろあった気がするが、具体的に何だったかは忘れた。
971:ほんたま
04/11/08 23:02:02
おみゃ~ら~、サンプルアップしたぞ~♪ホームページもアップしたぞ~♪宇宙一すげぞ~♪
おみゃ~らよ、なぜ宇宙一すげーかわかるかな?
おみゃ~らよ、おりはな、「Visual C++」で自作したDLLをスリムドカンでつくったプログラムから呼び出すのに成功したんだよ!わかる?
おみゃ~らよ、DLLを呼び出すプログラムを「Visual C++」」でつくるには、Libファイルをリンクに設定したり、ヘッダファイルをインクルードしたりとやるべきことは多いだろ?
おみゃ~らよ、DLLを呼び出すプログラムを「HSP」でつくるにも、やはりDLLの他に「.as」ファイルが必要だよ。
だが、「スリムドカン」の場合、DLLの他には一切何も必要ないんだな~う~ん、これが…自分じわかる?
つまり「スリムドカン」の場合、DLLさえあればDLLを呼び出すプログラムがビルドできるってわけ♪
おみゃ~らよ、おりは宇宙一画期的だと思わないか?
おみゃ~らよ、宇宙一すげ~とわめいたのはそういうことよ♪
おみゃ~らよ、自分じどうじ?
972:デフォルトの名無しさん
04/11/08 23:50:12
>>969
煽りでなくて、
バグでなく仕様じゃないの?
本だし
973:デフォルトの名無しさん
04/11/09 01:48:39
次スレまだ~?
974:デフォルトの名無しさん
04/11/09 17:00:50
>>972
伝聞だけど煽りじゃないよ。
知り合いが「打ちこんで動かしたけどいくつかバグがあった」って。
もちろん打ち間違いの類いじゃなくね。
975:デフォルトの名無しさん
04/11/10 02:14:00
ひょっとして脳内の知り合いですかぁ?
そんで俺らにデバッグさせようってことですかぁ?
976:デフォルトの名無しさん
04/11/10 04:01:03
三銃士で、アトスが友人の身に起こったことだと言って話すけど
ダルタニアンはそれは友人ではなくてアトス自身のことなのではない
かと考える場面がある。
977:デフォルトの名無しさん
04/11/10 10:24:26
懐かしー。
978:デフォルトの名無しさん
04/11/10 11:23:03
俺がhocを動かせなくて困ってるとでも思ったのか?www
ほらソース
URLリンク(www.bsddiary.net)
5段目の段落をよく読め
979:デフォルトの名無しさん
04/11/10 13:56:46
脳内の知り合いじゃないのなら
どこがどうバグってるのか聞いてくれ。
980:デフォルトの名無しさん
04/11/10 14:31:35
わかったよ知り合いじゃないよ
一読者だよ
直接聞けないからここで聞いたんだよ
981:デフォルトの名無しさん
04/11/10 14:42:49
誰だお前は
982:デフォルトの名無しさん
04/11/10 18:01:59
オレだよオレ
983:デフォルトの名無しさん
04/11/10 19:27:26
>>958
が気になる。
984:デフォルトの名無しさん
04/11/10 20:09:33
そろそろ新スレの季節だよ。
985:デフォルトの名無しさん
04/11/10 20:47:19
新テンプラどうしよう
986:デフォルトの名無しさん
04/11/10 22:19:51
LISPスレと統合しよう
つーかきみらもっとLISPを知っときなさい
987:デフォルトの名無しさん
04/11/10 22:47:27
Mathematicaマンセー
988:デフォルトの名無しさん
04/11/10 22:47:40
LISP?はぁ?
負け組言語は不要w
989:デフォルトの名無しさん
04/11/10 23:08:54
スレ立てるよ
990:スレ立てられませんでした(テンプレ1)
04/11/10 23:11:46
yaccやlexの使い方やら言語仕様やらの話題。
前スレ
1 URLリンク(pc.2ch.net)
2 スレリンク(tech板) (dat落ち)
3 スレリンク(tech板) (前スレ)
関連リンクは多分 >>2-8 あたり
991:(テンプレ2)
04/11/10 23:12:21
コンパイラ等を扱ったドキュメント
色々なツールの紹介
URLリンク(catalog.compilertools.net)
コンパイラ関連のリンク集
URLリンク(www.ulis.ac.jp)
スクリプティング言語資料室(仮) (リンク)
URLリンク(www.kt.rim.or.jp)
Compiler Construction
URLリンク(rananim.ie.u-ryukyu.ac.jp)
Compiler Construction (1997)
URLリンク(rananim.ie.u-ryukyu.ac.jp)
情報システム工学実験 III コンパイラ・コンパイラ
URLリンク(math.cs.kitami-it.ac.jp)
OS/Programming 簡単な C コンパイラ
URLリンク(www.csg.is.titech.ac.jp)
正規表現
URLリンク(hp.vector.co.jp)
コンパイラ研究・開発情報の一集積所
URLリンク(compilers.cs.uec.ac.jp)
Links and Selected Readings
URLリンク(www.gnu.org)
992:Intelの資料リンク切れになってる(テンプレ3)
04/11/10 23:13:36
Lex(Flex) Yacc(Bison) 構文解析
UNIX板
yacc & lex
スレリンク(unix板)
Lex and YACC primer/HOWTO (邦訳)
URLリンク(www.linux.or.jp)
Turbo Pascal Lex/Yacc
URLリンク(www.musikwissenschaft.uni-mainz.de)
Jim Roskind's LALR(1) C++ Grammar
URLリンク(www.empathy.com)
Flexと Bisonを同時に使う
URLリンク(guppy.eng.kagawa-u.ac.jp)
KITE_ASM (yacc,lex)
URLリンク(www.arch.cs.kumamoto-u.ac.jp)
URLリンク(www.arch.cs.kumamoto-u.ac.jp)
Cygwin
URLリンク(www.cygwin.com)
GNU utilities for Win32
URLリンク(unxutils.sourceforge.net)
993:(4)
04/11/10 23:15:40
その他のパーサジェネレータ等
ANTLR(非yaccのパーサジェネレータ)
URLリンク(www.antlr.org)
JavaCC(Java Compiler Compiler)
URLリンク(javacc.dev.java.net)
URLリンク(village.infoweb.ne.jp)
URLリンク(www.asahi-net.or.jp)
CUP & JLEX or CUP & JFlex
CUP URLリンク(www.cs.princeton.edu)
JLEX URLリンク(www.cs.princeton.edu)
JFlex URLリンク(www.jflex.de)
SableCC
URLリンク(www.sablecc.org)
¬<><∪∪ (notavacc)LALR(1)
URLリンク(ne.cs.uec.ac.jp)
JavaCCはLL(k)だけど、上のはANTLR以外はLALR(1)
でもANTLRはC++なんかにも対応。
boost::spirit(C++のテンプレートでEBNFの構文を模倣)
URLリンク(spirit.sourceforge.net)
URLリンク(boost.cppll.jp)(マニュアル日本語化プロジェクト)
URLリンク(www.fides.dti.ne.jp)
994:(5)
04/11/10 23:17:53
ガベコレ
GC FAQ -- draft
URLリンク(www.iecc.com)
A garbage collector for C and C++
URLリンク(www.hpl.hp.com)
一般教養としての Garbage Collection
URLリンク(www.is.s.u-tokyo.ac.jp)
Garbage Collection : Algorithms for Automatic Dynamic Memory Management
URLリンク(www.amazon.com)
995:(6)
04/11/10 23:21:42
参考書籍
●コンパイラ 原理・技法・ツール 1&2
URLリンク(www.amazon.co.jp)
URLリンク(www.amazon.co.jp)
通称ドラゴンブック。バイブル。
●コンパイラ構成法 原田 賢一
URLリンク(www.amazon.co.jp)
URLリンク(www.hara.cs.keio.ac.jp) (ソース、正誤表のダウンロード)
●プログラミング言語処理系 岩波講座 ソフトウェア科学〈5〉 佐々 政孝
URLリンク(www.amazon.co.jp)
一冊で済ませたい人へ。
●コンパイラの構成と最適化 中田 育男
URLリンク(www.amazon.co.jp)
最適化がメイン。
●コンパイラの仕組み 渡邊 坦
URLリンク(www.amazon.co.jp)
薄い奴(185p)を読みたい人に。
●21st Century Compilers (Alfred V. Aho, Sethi, Ravi Sethi, Jeffrey D. Ullman, Monica Lam)
ペーパーバック版: URLリンク(www.amazon.co.jp)
ハードカバー版: URLリンク(www.amazon.co.jp)
●スモールコンパイラの制作で学ぶプログラムのしくみ
URLリンク(www.cbook24.com)
996:デフォルトの名無しさん
04/11/10 23:26:12
では立ててみるか。
997:(7)
04/11/10 23:26:28
処理系,スクリプト
kikyou.info (吉里吉里というゲームのスクリプト)
URLリンク(kikyou.info)
tiny C コンパイラ (C)
URLリンク(www.watalab.cs.uec.ac.jp)
6809用 Micro C コンパイラ
URLリンク(www.axe-inc.co.jp)
Portable Object Compiler (Obj-C >> C のトランスレータ?)
URLリンク(users.pandora.be)
自作コンパイラの部屋(PL/1, Pascal等)
URLリンク(www.tokumaru.org)
『Rubyソースコード完全解説』サポートページ
URLリンク(i.loveruby.net)
『やさしい Lisp の作り方』と『やさしい Java インタプリタ の作り方』見つけた。
Java と C# で実装。
URLリンク(www.okisoft.co.jp)
URLリンク(www.okisoft.co.jp)
URLリンク(www.okisoft.co.jp)
URLリンク(www.okisoft.co.jp)
MSによるPEフォーマット仕様書(日本語)
URLリンク(www.interq.or.jp)
998:デフォルトの名無しさん
04/11/10 23:36:47
連続投稿規制のため、テンプレ(7)は貼れなかった。
誰か頼みます。
999:デフォルトの名無しさん
04/11/10 23:37:55
新スレッド
「コンパイラ・スクリプトエンジン」相談室4
スレリンク(tech板)
1000:デフォルトの名無しさん
04/11/10 23:40:47
ふと思ったのですが、新スレたちました。
1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。