- 1 名前:デフォルトの名無しさん mailto:sage [2005/05/06(金) 08:28:29 ]
- プログラミング言語処理系の開発に興味のある人達のスレッドです。
字句解析・構文解析から,データフロー解析,ループ並列化,タスク並列化,SSA変換, CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン等各種最適化, それにVM,GC,JIT,リンク時最適化,動的バイナリ変換などなど。 意味論に関する話題も歓迎です。 前スレ 1 pc.2ch.net/tech/kako/981/981672957.html 2 pc2.2ch.net/test/read.cgi/tech/1021136715/ 3 pc5.2ch.net/test/read.cgi/tech/1070089173/ 4 pc5.2ch.net/test/read.cgi/tech/1100097050/ 5 pc8.2ch.net/test/read.cgi/tech/1106129164/ (前スレ) 関連リンクは多分 >>2-10 あたり
- 641 名前:デフォルトの名無しさん mailto:sage [2005/06/28(火) 21:23:10 ]
- 素人です。
相乗り質問で恐縮ですが、LALR(1) の1って先読みトークンの数ですよね? このことは、YACCにシフトされているシンボルの数の最大値が1ということにはつながらないのですか?
- 642 名前:デフォルトの名無しさん mailto:sage [2005/06/28(火) 21:26:35 ]
- 素人です。
>>641 知りません。
- 643 名前:デフォルトの名無しさん mailto:sage [2005/06/28(火) 21:27:41 ]
- っていうかマジレスすると
>YACCにシフトされているシンボルの数の最大値が1 は合っているんだっけ?
- 644 名前:デフォルトの名無しさん [2005/06/28(火) 22:19:16 ]
- ヒロシです。
分からんとです。
- 645 名前:デフォルトの名無しさん [2005/06/29(水) 00:10:28 ]
- >>641
そうです。 LR(k)、LL(k)のkは、高々k個の先読みでパースできる文法(のクラス)を表しています。
- 646 名前:619 mailto:sage [2005/06/29(水) 06:55:18 ]
- >>629
> 旧DragonBook。 > あれを読んでたのは大学のころだな。みんなで輪講して、手でLR(0)itemを列 > 挙して、lookaheadを求めて、表を作成して…とかやった覚えがある。 情報ありがとうございます。 でも、もう手に入らないんですね。 > ところで、LRパーサーの生成方法を知りたいの? > それともyaccの使い方を知りたいの? | > 後者ならO'Reilly本で足りるでしょう。 パーサー自体の生成方法までは、とても考えが及びません。 目的としては、後者です。だとすると、 やはり、O'Reillyの本が定番なんですかね。 入手して、若い頃のようにじっくり勉強してみたいと思います。 (^^; ありがとうございました。
- 647 名前:デフォルトの名無しさん mailto:sage [2005/06/29(水) 07:47:49 ]
- >>646
O'ReillyってLALRの説明まではしてなかったような。 とりあえず使いたいならO'Reillyでいいけど、 yaccを使いこなしたいなら、LALRをきちんと勉強したほうがいい。 コンフリクトしたらシフト優先とか、 自分で変な書式の式を追加するときに、%left とかがどう動くのかとかは LALRを知らないと理解できない。
- 648 名前:デフォルトの名無しさん mailto:sage [2005/06/29(水) 08:05:26 ]
- >>641
LALR(n)だと、 「シフトするトークンは1つだけど、n個先読みしてからシフトするか還元するか決める」 という考え方と 「最大n個シフトしてみて、ダメだったらシフトしなかったことにして還元する」 という考え方ができそう。
- 649 名前:デフォルトの名無しさん mailto:sage [2005/06/29(水) 12:40:16 ]
- LALR(k): k-token LookAhead, Left-to-right parse, Rightmost-derivation,
LL(1): Left-to-right and Left-most Parsing
- 650 名前:デフォルトの名無しさん mailto:sage [2005/07/01(金) 21:58:05 ]
- >>647
で、貴方のお勧めは?
- 651 名前:デフォルトの名無しさん [2005/07/02(土) 21:06:34 ]
- りん(ry
- 652 名前:デフォルトの名無しさん mailto:sage [2005/07/02(土) 21:52:02 ]
- …………… く ず れ す ……………
- 653 名前:デフォルトの名無しさん [2005/07/04(月) 19:03:27 ]
- >>652
恐らく lisper w
- 654 名前:デフォルトの名無しさん mailto:sage [2005/07/04(月) 20:28:29 ]
- ↑間違いなくアンチLISPer w
- 655 名前:デフォルトの名無しさん mailto:sage [2005/07/04(月) 21:55:27 ]
- …………… き ち が い ね ん ち ぁ く ち う 。 よ う ち ゅ う い ……………
- 656 名前:デフォルトの名無しさん [2005/07/05(火) 00:54:08 ]
- >>655
お前が一番の粘着だw
- 657 名前:デフォルトの名無しさん [2005/07/06(水) 21:55:12 ]
- VC++でlexファイル(lex.yy.c)をコンパイルすることはできますか?
Windows版のflexとbisonは見つけたんですが、よく考えたら gccで-ll(flexなら-lfl)オプションを付けないとコンパイルすることができない・・・ そもそも、gccがlflで何を取り込んでいるのかがわからず。 windowsでflex&bisonを使っているひとがいれば、教えていただけないでしょうか。
- 658 名前:デフォルトの名無しさん mailto:sage [2005/07/06(水) 21:58:34 ]
- >>657
lfl は付けなくても平気。中に入っているのは確か main 関数だけだった筈だから
- 659 名前:デフォルトの名無しさん [2005/07/07(木) 12:19:19 ]
- >>657 >>658
yywrap()も入ってるよ。 以下の関数定義をどっかに入れれば大丈夫。 int yywrap(void) { return 1; }
- 660 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 18:00:12 ]
- PHPやPerlでは、変数を $var のように表します。
「$」と「var」のあいだにはスペースを入れることができません。 ということは、字句解析でトークンに分解するときに、「$」と「var」の2つに分解するのではなく、 「$var」というひとつのトークンとして認識しているのでしょうか。 (字句解析が「$」と「var」の2つに分解すると、間にスペースを入れられると思うから。) 「$var」を認識するのに、字句解析で1つのトークンとして認識するのがいいのか、それとも 2つに分解して構文解析時に「$var」であると認識するのがいいのか、迷ってます。
- 661 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 18:26:38 ]
- >>660
1トークンでいいと思うが。2トークンにするメリットが特に見当たらんし。
- 662 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 20:03:51 ]
- 1トークンと考える方が不自然。
2トークンでしょう。(Perl/PHPのソース確認してないけど) 理由: 1. Perlの場合、変数名の前に異なるプリフィクスを使う場合がある。 例)配列宣言 @array、 配列参照 $array[index] 連想配列宣言 %assoc、連想配列参照 $assoc{key} 左側(配列コンテキスト)と、右側(スカラーコンテキスト)を、異なるトークンと認識したら、 変数名管理上、トークンからプリフィクス(@, %, $)を外した名前を切り出す必要があり、 トークンの扱いとして不自然。 2.プリフィクス(@, %, $)と、識別子(var, array, assoc)の間に空白を許すか否かは、 単なる構文定義上の問題であり、2トークンで空白を許さない定義が可能。 いじょ
- 663 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 20:23:45 ]
- PHPに@や%ないじゃん
- 664 名前:660 mailto:sage [2005/07/09(土) 20:27:10 ]
- >>661
ありがとうございます。そんな気はするんですが、いまいち確信がなくて。 >>662 1.の場合でも、プリフィックスと変数名は別々に渡しませんか? 今はトークンを取得する関数gettoken()と、文字列を取得する関数getvalue()を用意していて、次のようにしています。 入力 gettoken() getvalue() ------------------------------ 'foo' STRING "foo" 100 INTEGER "100" 3.14 DOUBLE "3.14" x NAME "x" $var VAR_SCALAR "var" @var VAR_ARRAY "var" %var VAR_ASSOC "var" (最後の2つはつけくわえてみました。) 特に不自然ではないと思うのですが、どうでしょう。自信もないですが。 2. について、「2トークンで空白を許さない」ためのうまい方法がよくわかりません。 よろしければ教えてください。
- 665 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 20:34:41 ]
- 空白もトークンとして切り出せ
- 666 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 21:59:11 ]
- >>665
空白をトークンにするぐらいなら、プリフィクス込みでトークン切り出して、 プリフィクスを取り除いたシンボル名でシンボルテーブル検索した方が 楽だと思うけどなぁ。 まぁ、どっちでも動けば構わんので、あとは趣味の問題だが。
- 667 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 22:27:32 ]
- >>663
PHPにも $hoge = 1; $varname = "hoge"; echo $$varname; // => 1 とかあるけどな!
- 668 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 23:13:32 ]
- Perlで$$は、ポインターの値参照だったっけ
- 669 名前:デフォルトの名無しさん mailto:sage [2005/07/09(土) 23:38:16 ]
- ああ、そうか。
Perl5 だと参照使えるから ${$foo->{'a'}} なんてのもアリなんだな。それだと 確かに字句解析レベルではプリフィクスとシンボル名を分けた方が無難だ。
- 670 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 00:40:01 ]
- >>665
ええっー、空白をトークンとするんですか。 構文解析がかなり面倒になるんですけど。 >>669 「$」のあとに英数字が続けば変数名、それ以外なら「$」であるというのじゃだめでしょうか。
- 671 名前:デフォルトの名無しさん [2005/07/10(日) 00:44:50 ]
- >>664
了解。1トークンで充分だと思う。 Perlの
- 672 名前:671 mailto:sage [2005/07/10(日) 00:46:02 ]
- >>664
了解。1トークンで充分だと思う。 Perlの $って、Cのポインタ演算子みたいな扱いするから、誤解した。
- 673 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 00:47:00 ]
- >>670
そもそも「Perl5 のようなスカラー・配列・ハッシュ、さらにその参照を任意に 組み合わせてデータ構造を作れるような言語にするのか?」ってトコロから 考える必要があるかと。 単に $foo, @foo, %foo, $$foo ぐらいで済む程度の文法なら 670 の案や 1トークン方式で良し。Perl5 フルコンパチにしたければ変数関係だけで {}, [] の のネストが発生するので、ネストは正規言語では処理できない ことを考えると、ある程度は構文解析に逃がした方が楽そう。
- 674 名前:デフォルトの名無しさん [2005/07/10(日) 21:13:41 ]
- いずれにせよ、スレ違い
Li(ry)
- 675 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 21:17:02 ]
- LISPなら字句解析も構文解析も要らないのに。
- 676 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 21:24:23 ]
- すまん。素でわかんないんだが、「LISP は字句解析が要らない」ってのは
1.0 ってのが出てきたとき、それがシンボルか数値かリストかどうかを判断しなくても良いってことなのか? あと、「LISP は構文解析が要らない」ってのは、カッコの対応が取れて無くても気にしないってことなのか?
- 677 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 21:27:15 ]
- >>675-676 ネタ決定
- 678 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 21:56:58 ]
- 字句解析がいらない
→入力をreadするとS式が出てくる 構文解析がいらない →S式をevalすると結果が出てくる
- 679 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 22:00:33 ]
- それは要らないんじゃなくて、組み込みになってるだけじゃないの
自分で一から作るなら、どっちも必要でしょ
- 680 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 22:15:01 ]
- 自分で一から作るつもりならLISP必要ないよ
- 681 名前:676 mailto:sage [2005/07/10(日) 22:25:03 ]
- なんかよく分かった。そりゃ必要ないよな LISP 側で全部用意してもらえてるんだし
- 682 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 22:32:57 ]
- あえてLISPを使う意味は中間形式としてS式で処理できるからじゃないかと
S式に優位性を感じないなら必要ない
- 683 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 22:34:15 ]
- 昔prologスレで見た流れだ。
prologインタプリタをprologで書ける人とCで書ける人ではどちらが優れているか?
- 684 名前:デフォルトの名無しさん mailto:sage [2005/07/10(日) 22:44:38 ]
- >>678
つまんねぇネタ。
- 685 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 01:56:10 ]
- ネタに見えるのか。
- 686 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 03:28:22 ]
- >>685
お前が言わんと欲する所が、あまりに陳腐過ぎて、 細かい説明するのが面倒つうこと。
- 687 名前:デフォルトの名無しさん [2005/07/11(月) 06:30:49 ]
- Lisper は他でやってくれ
- 688 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 11:37:21 ]
- そのLIPSぐらいしか話題ないってことなんじゃないの。
- 689 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 16:37:20 ]
- >>688
燃料投下(>>674)までの流れを見た上で言ってるのか?
- 690 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 18:35:40 ]
- 燃料に見えるのか。
- 691 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 18:55:26 ]
- 688はキヤノン社員
- 692 名前:デフォルトの名無しさん [2005/07/11(月) 19:22:03 ]
- ここはLisp擦れ
- 693 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 19:49:05 ]
- 内部イテレータのある言語を設計してみたいと思ってるんですが、
Ruby以外に内部イテレータを持ってる言語って何がありますか? Rubyの内部イテレータではなく、一般に内部イテレータとは 匿名関数と本質的にどの点で違うものなんでしょうか。
- 694 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 20:15:01 ]
- 「Rubyの内部イテレータ」について説明してくれたら答えられるかも。
- 695 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 21:29:03 ]
- >>693
>Ruby以外に内部イテレータを持ってる言語って何がありますか? このスレでさんざん出てきてるLISPというやヴぁい言語のインライン関数が元ネタ。 Rubyで内部イテレータとわざわざ限定してるのは対象データの コンテナを抽象化して取り出すことを目的にしてるからじゃないかと。 >一般に内部イテレータとは匿名関数と本質的にどの点で違うものなんでしょうか。 質問の意図が不明だけど、まず役割が違うでしょ。 内部イテレータに匿名関数(ブロック)を渡してぶん回すんだし。 匿名関数側は取り出す要素の構造以外知らなくていいし、 内部イテレータはぶん回すコンテナの構造以外知らなくていい。 外部イテレータとの違いはここにある。
- 696 名前:デフォルトの名無しさん [2005/07/11(月) 22:43:27 ]
- つまり、Ruby>Lisp ってことですか?
- 697 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 22:54:58 ]
- mapとどう違うんだ?
- 698 名前:デフォルトの名無しさん mailto:sage [2005/07/11(月) 23:07:43 ]
- mapが何か関係あるのか?
- 699 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 00:25:21 ]
- ここはLispとRubyの話は禁止
どうしてもやりたいのなら別スレ立ててそっちでやってください
- 700 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 00:25:38 ]
- >>693
Smalltalkにはブロックという概念があり、これがちょうどRubyの内部イテレータ(ブロック)に相当します。 Lispのmapとも似ていますが、どちらかというとSmalltalkのほうに似ているんじゃないでしょうか。 Smalltalkとの違いは、Rubyでは基本的にメソッド1つにつき1つのブロックしか渡せませんが、Smalltalkは複数のブロックを渡すことができることです。 なおRubyでは、昔は本当にイテレータとしてのみ使われていましたが、今は他の用途にもよく使われるため、現在ではブロックと呼ばれることが多いようです。 また「内部イテレータ」というのは使われ方の名称であって、機能としては「クロージャ」というのがプログラミング言語一般の用語です。 (「クロージャ」という機能を「内部イテレータ」として使うということ)
- 701 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 01:06:35 ]
- 実装的にはイテレータとしてのみブロックを渡す場合は、
真面目にクロージャを作る場合よりも省略できる部分が、 結構あるんだよね。 あと、内部イテレータと外部イテレータにはそれぞれ、 長所と短所がある。簡便なのは内部イテレータだが、 複雑なイテレーションの場合は外部イテレータのほう が良い場合もある。 個人的なオススメはクロージャが扱えるオブジェクト 指向言語なら外部イテレータを基本に設計して、内部 イテレータはライブラリで用意する、というやり方。
- 702 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 02:56:11 ]
- >実装的にはイテレータとしてのみブロックを渡す場合は、
>真面目にクロージャを作る場合よりも省略できる部分が、 >結構あるんだよね。 詳細きぼんぬ
- 703 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 03:01:01 ]
- >>702
環境をスタックからヒープに移すタイミングの問題。
- 704 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 04:07:52 ]
- 特殊用途向けに制限掛かったクロージャ?
- 705 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 07:33:41 ]
- >>693
構文に関して言えば、 内部イテレータに特化した構文(だったものも含む)を持ってる言語は 俺の知ってる限りでRubyとSmalltalkだけかな。 他になんかあったっけ?
- 706 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 09:26:54 ]
- >>705
SmalltalkのCollection関係の aCollection do:[each: 一件ごとの処理]. とかは言語組込みの構文じゃなくてクラスライブラリの命名ルールだよ。
- 707 名前:デフォルトの名無しさん [2005/07/12(火) 21:43:33 ]
- つまり Ruby が最高言語ということでファイナルアンサ?
- 708 名前:デフォルトの名無しさん mailto:sage [2005/07/12(火) 21:54:55 ]
- ここの連中はRubyとLISPの名前を出せばほいほい釣れるよ。
- 709 名前:デフォルトの名無しさん mailto:sage [2005/07/13(水) 08:56:12 ]
- あたしのために喧嘩なんてしないでッ
- 710 名前:デフォルトの名無しさん mailto:sage [2005/07/14(木) 20:44:00 ]
- .,Å
.r-‐i'''''''''''i''''‐-、 o| o! .o i o !o .|\__|`‐´`‐/|__/| |_, ─''''''''''''─ ,、 / 、-' u -、 / U 0 \ / / i | ● ,,. .,, ● | __ . ! (_人__) ノ /´ ̄ `!. 丶_ u U ノ | `にこ匸'_ノ . '-、、,,,,,,_______,,,,,,、、-' ノ u { _.. -―| :{ ,/ / \ . / l | __ / ̄ ̄`>'´ ノ' ´ {、 \ / |/ {'´ `ヽ. " ̄\ U `ヽ. __,,.. -‐丶 u ヽ | / ヾ、.. } u' 〉、 } `ー''´ /´ ̄ `ヽ '" ̄\ ! :} )「` ノ、 ノ l\"´_,,ニ=-― <´ ヽ{ ノ( `、 | l 、_,/j `ー一''" }, ノ , '''''"" \ ヽ ⌒ヾ v | ヽ _ / } {. { l ┌n‐く ヽ/ ``\ ノ `¨´ `¨¨¨¨´ ̄`{ 0 `'^┴'ー┘|ヾ }、 u' ` --‐r'′ キングヤッタス!!
- 711 名前:デフォルトの名無しさん [2005/07/14(木) 22:08:03 ]
- >>709
リンゴタン?
- 712 名前:デフォルトの名無しさん [2005/07/15(金) 22:18:25 ]
-
LALR age
- 713 名前:デフォルトの名無しさん [2005/07/16(土) 18:07:28 ]
- 現在確認されている厨
・RUBY厨 ・LISP厨 ・りんご厨 ・LALR厨
- 714 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 18:13:11 ]
- 上から3番目のは、昔かたぎのFlash職人(元Macromedia Director職人)か?
- 715 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 18:22:18 ]
- >>713
LALRもダメでつか
- 716 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 19:13:12 ]
- りんごってVIPのことだろ
- 717 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 21:10:41 ]
- ここで暴れてる荒らしは、荒らしな上にアンチLISPにアンチRubyに
アンチLALRか。 救いようがねぇなw
- 718 名前:デフォルトの名無しさん mailto:sage [2005/07/16(土) 21:13:59 ]
- 志村坂上
- 719 名前:デフォルトの名無しさん [2005/07/18(月) 15:40:14 ]
- すいません超初心者なんで的外れなことを覚悟で質問します。
bison/flexではいたコードってVCでコンパイルできますか??
- 720 名前:デフォルトの名無しさん mailto:sage [2005/07/18(月) 15:50:45 ]
- >>719
やってみればいいじゃん
- 721 名前:デフォルトの名無しさん mailto:sage [2005/07/18(月) 16:57:29 ]
- ってゆーかRUBY最強
- 722 名前:デフォルトの名無しさん mailto:sage [2005/07/18(月) 17:30:55 ]
- >>708
- 723 名前:659 [2005/07/22(金) 02:50:23 ]
- >>719
>>657-659 読め。 bison/flexで吐いたコードをVC++でコンパイルした経験は、俺はある。
- 724 名前:723 [2005/07/23(土) 23:01:08 ]
- >>723
ありがとうございます。よく読んでいませんでした。 とりあえず原田賢一著 コンパイラ構成法という本を購入しました。 これから勉強します。
- 725 名前:719 mailto:sage [2005/07/23(土) 23:01:49 ]
- すいません719です
- 726 名前:デフォルトの名無しさん mailto:sage [2005/07/25(月) 02:13:48 ]
- LexやYACC等のツールを使わないとコンパイラ作れない奴なんざ
雑魚だろマジで。
- 727 名前:デフォルトの名無しさん mailto:sage [2005/07/25(月) 02:15:53 ]
- >>726
字句解析とか構文解析とか、単純なんだから別に自動生成でいいやん。 ていうか、こういうツールだって、どういうことやってるのか理解できない人には使えないと思うよ。
- 728 名前:デフォルトの名無しさん mailto:sage [2005/07/25(月) 14:06:30 ]
- >>726
rubyの作者を雑魚あつかいですか?
- 729 名前:デフォルトの名無しさん mailto:sage [2005/07/25(月) 15:05:00 ]
- >>726のようなことを言う奴はコンパイラのバックエンドをろくに書けない奴に多い。
たぶんフロントエンドだけがやっとで挫折したんだろう。
- 730 名前:デフォルトの名無しさん mailto:sage [2005/07/26(火) 10:08:34 ]
- LexやYACC等のツールを使わないとコンパイラ作れない奴が雑魚なら、
LexやYACC等のツールを使わずにコンパイラを作る奴はフジツボ。 LexやYACC等のツールを使えない奴はプランクトン。
- 731 名前:デフォルトの名無しさん mailto:sage [2005/07/26(火) 12:20:11 ]
- ここは酸っぱい葡萄が多いインターネットですね。
- 732 名前:デフォルトの名無しさん mailto:sage [2005/07/26(火) 20:48:40 ]
- イソップ童話キタ━━━━━(゚∀゚)━━━━━ !!!!
- 733 名前:デフォルトの名無しさん mailto:sage [2005/07/26(火) 21:15:44 ]
- 言語鍛冶が覆面で議論するスレはここですか?
- 734 名前:デフォルトの名無しさん [2005/07/29(金) 11:04:33 ]
- JavaScriptのコンパイラコンパイラが欲しいんだけれど、調べた限りではないみたいなので、
これを機会に時間のあるときに作ってみようと思ったのだけれど、 コンパイラコンパイラ実装の参考文献で良書はありますか?英文和文問いません。
- 735 名前:デフォルトの名無しさん mailto:sage [2005/07/29(金) 22:56:38 ]
- ネタとしてスルー。
- 736 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 01:54:03 ]
- JavaScriptでかかれたコンパイラコンパイラ?(まさか〜)
でも文脈からだとJavaScriptの構文を理解するbisonコードくさいんだけどさ。
- 737 名前:デフォルトの名無しさん [2005/07/30(土) 02:03:01 ]
- コンパイラコンパイラが生成するコードがJavaScriptのものなんじゃないの?
- 738 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 02:04:06 ]
- Mozillaのソースとか・・・・・・・・
- 739 名前:734 mailto:sage [2005/07/30(土) 02:13:44 ]
- >>737
そう、そういう意味です。 JavaScriptで出来たコンパイラコンパイラなんてあれば面白いけれど…
- 740 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 06:12:34 ]
- >>734>>734
- 741 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 06:52:32 ]
- ドライバだけJavaScriptなら簡単なんじゃん?
- 742 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 07:54:28 ]
- CからJavaScriptに変換するトランスレーター作れよ
- 743 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 17:52:12 ]
- >>734
LALRパーサージェネレータでよければ、kmyaccでサポートしてます。 www005.upp.so-net.ne.jp/kmori/kmyacc/index.html こうした方がいいという意見も歓迎。 JavaScriptで書いたデモの例 www005.upp.so-net.ne.jp/kmori/kmyacc/calcdemo.html
- 744 名前:734 mailto:sage [2005/07/30(土) 19:50:44 ]
- >>742
それは良いアイデアですね。 JavaScriptの言語的機能は制限されるのが残念ですが、 とにかく使いたいだけならそれは良さそうです。 >>743 おお、これはそのまま使えますね!ありがとうございます。 早速使ってみます。助かりました。
- 745 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 21:10:39 ]
- >>744
使うにあたってはプロトタイプを手直しした方がいいでしょうね。 ところで、JavaScriptでは入力を得る手段が限られていると思うのですが、 どんな対象をパースするのか、さしつかえなければ教えてもらえませんか?
- 746 名前:734 mailto:sage [2005/07/30(土) 23:40:21 ]
- >>745
助言ありがとうございます。 JavaScript ObfuscatorをJavaScriptで書こうかと思っていました。
- 747 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 23:57:26 ]
- >>746
ようするにスクリプトを読まれたく無いと。 ただそれだけ?
- 748 名前:734 mailto:sage [2005/07/31(日) 00:11:31 ]
- >>747
そういうわけじゃないですよ。どちらかといえば趣味です。 その時は手動で構文解析を作りましたけれど、 チェスの掲示板に棋譜を読み込むためにPGNファイルのフォーマットをパースするなど、 JavaScriptでコンパイラコンパイラが作れればいいなーと思うことは稀にありました。
- 749 名前:デフォルトの名無しさん [2005/08/03(水) 12:01:25 ]
- ちょっと趣旨が変わってしまいますが…
状態遷移を扱うのに適するエンジンってありませんか? やりたいことは、入力を受け付けて、新しい状態を出力するモジュールです。 その状態遷移ルールは何らかの自作エディタでペトリネットやUMLの アクティビティ図のように記述しておきます。 単にゴリ押しで、定義データに各遷移ルールを記述しておき、制御モジュールで パターンマッチングで次の状態を探すだけでも可能ですが、トークンのJoinとか 考えると、いろいろ内部情報を保持する必要があります。 普通のスクリプトやゲームのシナリオなんか参考になる気もしますが、今回の場合、 有限状態機械に特化したもので十分です。 また、状態遷移図の定義の変更は頻繁に行われます。 もし、美しいアーキテクチャがあるなら、ゴリ押しのエンジンを作り直したいと 思っているのですが、オブジェクト指向で機械の内部状態とか定義方式を美しく 表現している設計って、どこかにないでしょうか?
- 750 名前:デフォルトの名無しさん mailto:sage [2005/08/03(水) 13:04:20 ]
- >>749
>オブジェクト指向で 限定しない方が良いよ。OO に限定するとステートパターンしか出てこないから
- 751 名前:デフォルトの名無しさん mailto:sage [2005/08/03(水) 13:10:40 ]
- 状態遷移を美しく表現する設計は興味があるな。
世の中ではどんな形なんだろう
- 752 名前:デフォルトの名無しさん [2005/08/03(水) 21:01:28 ]
- オブジェクト1つが、1つの有限状態機械だと思ってる。
UMLでもステートチャート図あるし 状態遷移をオブジェクト指向で表そうとするのは適切でないような気がするけど
- 753 名前:デフォルトの名無しさん [2005/08/03(水) 22:18:27 ]
- う〜ん、でも、オブジェクトを入出力とするエンジンって有り得ないですかねぇ。
事前の状態遷移定義に従って、オブジェクトAがエンジンによってBに変えられるような。 別にオブジェクト指向に拘る訳じゃないですが、オブジェクト指向を例にとると、 1つのオブジェクトが、エンジンに渡されると、2つのオブジェクトに分岐したり、 その逆に2つのオブジェクトが揃ったら、1つのオブジェクトに合流したり… さらに、その合流待ちの状態が無限って訳にはいかないだろうから、生存時間が決まってたり。 こういうのって、昔から学術的には扱われてると思うのですが、 実際に実装するとなると、どういう定義記述方法にして、どんな内部状態を持たせるのかなぁと。 もしかして、何か美しい設計が、すでにあるのかと思った次第です。 今なら、定義はXMLになるのかなぁ…
- 754 名前:デフォルトの名無しさん mailto:sage [2005/08/03(水) 22:40:13 ]
- >>753
まさか…oさん?
- 755 名前:デフォルトの名無しさん mailto:sage [2005/08/04(木) 00:07:42 ]
- CodeProject に XML を利用したステート・マシンのサンプルがあったような気が・・・
気のせいだったかも
- 756 名前:デフォルトの名無しさん mailto:sage [2005/08/04(木) 05:06:54 ]
- 要求に合うかどうか判らないけど、
Object指向でPush-down automatonならFinate State Machine。 尚、定義ファイルのパースは別途必要です。
- 757 名前:デフォルトの名無しさん [2005/08/04(木) 16:54:55 ]
- >>754 いいえ違います。
>>755 www.codeproject.com/csharp/xmlfsm.asp キャ━━━(*´∀`*)━━━ !!!!! と思いましたが、よく見ると、これ、現状のコードとスタート地点同じ気がします… この先、アクティビティ図とか、ペトリネットレベルまで拡張していくと、 ごちゃごちゃしてきて、もっと美しい設計無いのかと思った次第です。 だから、この先にある、汎用性のあるものが知りたいと… 我侭で申し訳ありません。 >>756 有限状態オートマトンの汎用エンジンに、興味あります。 Radiumさんの過去ログに記述ありました。月末の2日分です。 www.radiumsoftware.com/0401.html このEventStudioというものが、なんか実現してるっぽいです。 www.eventhelix.com/EventStudio/ 少し詳しく読んでみたいと思います。
- 758 名前:デフォルトの名無しさん mailto:sage [2005/08/05(金) 23:48:44 ]
- boost::fsm...
- 759 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 22:01:29 ]
- >>750
StatePatternで何か不都合があるのか?
- 760 名前:デフォルトの名無しさん [2005/08/07(日) 00:27:31 ]
- www.eventhelix.com/RealtimeMantra/HierarchicalStateMachine.htm
これは、どの辺がいいの?解説求む。
- 761 名前:デフォルトの名無しさん [2005/08/17(水) 09:13:09 ]
- Windows上で、JITで生成したnative codeを、
DLL形式でファイルに保存して実行するのではなくて、 メモリに保存して実行する方法を教えてください。
- 762 名前:デフォルトの名無しさん mailto:sage [2005/08/18(木) 02:30:07 ]
- 誰かC++の関数スタックを活かしながらSchemeの継続を実装する方法を教えてください。
……できそうにないのはわかっているけど、あきらめるのはちょっとくやしい……
- 763 名前:デフォルトの名無しさん mailto:sage [2005/08/18(木) 03:50:57 ]
- >>762
大域脱出のみに使われるような継続であることがSchemeのプログラム を解析して証明できる場合なら、setjmp/longjmpでいけるんじゃね? Schemeコンパイラ関連の文献読むと、色々ヒントが書いてあるよ。
- 764 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 00:42:56 ]
- やっぱり脱出方向だけにしてsetjmp/longjmpぐらいしかないか……
真面目に継続使いたかったら(自前でstack作ったりして)継続を管理するしかないのかな。 ……Commandパターン使って少しでも手を抜くとするか……
- 765 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 03:04:24 ]
- >>764
SchemeをCPSでCにコンパイルする方式。 home.pipeline.com/~hbaker1/CheneyMTA.html C関数はreturnしないので、スタックはヒープとして使う。 いっぱいになったらcopying GC。
- 766 名前:デフォルトの名無しさん [2005/08/19(金) 23:28:22 ]
- 自作言語に正規表現libをなんとかして融合しようと思ってるんだけど
リテラルとして組み込むと内部で正規表現objectと文字列リテラルの切り分け みたいなのが別途必要っぽいし、ライブラリとして組み込むと呼び出し手順が 複雑になって結局使われないんじゃないかとか色々考えても良さげな方法が みつからなかった。 つーかrubyみたくperlの真似して/〜/にすると//という1行コメントと勘違いする かもしんないし、/はそもそも割り算に使ってるし。 独創的な構文にしすぎてメンテする俺自身忘却するようなの作っても それはそれで意味ないし別に/〜/でもいいけどよ、出現位置によってトークンの 意味が変わるのって言語として変な気がするんだけどおまえらどうですか?
- 767 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 23:53:09 ]
- 馬鹿の考え休むに似たり
- 768 名前:デフォルトの名無しさん mailto:sage [2005/08/19(金) 23:54:27 ]
- 正規表現を捨てて、MLのようなパターンマッチ構文導入がトレンド(大嘘)
- 769 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 01:38:30 ]
- >>766
個人的には Perl6 のパターンマッチングが好きだ。
- 770 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 01:57:23 ]
- コメントが//なら
|〜|にする。
- 771 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 07:53:05 ]
- とりあえずm4みたいにリテラルの前後変更できるようにしてさっさと組んじゃえば。
- 772 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 09:12:02 ]
- >>766
独自の記号から作ってもいいんじゃない? 「この言語で開発するときのフォント」って感じで フォントと文字コードの定義から言語にしちゃうの。 そうすれば、紛らわしい記号に悩むことないし、 今まで2文字使っていた演算子も1文字ですむし 区別もはっきりするし、いいことずくめ 昔と違ってPCの性能はあまるぐらいなんだし フォントぐらい共有しない独自のだって大丈夫だよ
- 773 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 12:57:10 ]
- orz〜orz
にしようよ
- 774 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 13:07:40 ]
- >>772
APLって知ってる? 独自記号の演算子だらけの言語。 MLやBBSなんかにコードをコピペできないとかいろいろ不便すぎて、 結局普通の文字コードの範囲で表現するほうがいいというのが結論。 例えばこのスレにもコードを貼れないよ。
- 775 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 15:41:01 ]
- >>774
そっか、そういうのがあるのかぁ。 でもその結論が出た時点とも今は違うんじゃない? あ、Unicodeのワイド文字なら使ってもよさそう。 HTMLのエンコードみたいに&lt;とかで内部表現しとくとか。
- 776 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 15:51:47 ]
- 1. ワイド文字を持ったフォントを使ってるとは限らん
2. コペ時に表現が変わったら読みづらくてかなわん。 昔のSmalltalk(Squeakは今でも)はフォントがいじくられてて、 代入記号に←を使っていたが、コペると_になってダサダサだった。
- 777 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 16:15:04 ]
- 日本人なら積極的に漢字を使おうぜ。
『置換「 」を「 」に。』 これでどうだ! なんかひまわりの二番煎じっぽい気もする。 関係ないけど、'コペる'って斬新だな。 どこか間の抜けた響きで気に入った。
- 778 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 16:31:39 ]
- コペる21
- 779 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 20:11:25 ]
- 最近、変数名、関数名、クラス名とかに漢字遣ったほうがわかりやすい気がしてきた。
- 780 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 20:26:16 ]
- 補完やってくれるなら。
IMEのネックがあるかぎり漢字は受け付けないなあ。 名前考えるの面倒とは思うけど。
- 781 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 00:09:23 ]
- >>766
使うひとのことを考えて、できればリテラルで。 JavaやPHPのようにライブラリとしてしまうと、正規表現を文字列で指定しなきゃならん。 そうなるとエスケープがすごく面倒で、使う人にとってよくない。 リテラルとして言語仕様に組み込めば、おまえがしんどいだけで、使う人はハッピー。 構文はPerlやRubyをまねしたほうがよい。 使ってもらうことを考えたら、よほどの利点がない限りは他の言語と同じにしたほうが、使う人にとって敷居が低い。 おまえの独自言語のウリは正規表現にあるわけじゃないだろ、きっと。 ウリになる部分は独創的にしてかまわんが、ウリにならない部分はオーソドックスにしとけ。 コンテキストによって記号の意味が変わるのは、確かに悩ましいところだが、お前が苦労すればいいだけのこと。 使う人に苦労をさせるな。勉強しろ。 それでも「昔の仕様をひきづって変なコードになるのはイクナイ!」と思うなら、そうだな、「@/rexp/」とか「./rexp/」にでもしとけ。 まあRubyはPerlをまねただけで、Perlはsedをまねただけで、sedはviやedをまねただけで、edは割り算記号なんかなかったから問題なかっただけなんだけどな。よく考えたらそんな昔の仕様を今でもひきずるのはおかしい気がしてきた。
- 782 名前:デフォルトの名無しさん mailto:処理系の名前はあえて伏せるよsage [2005/08/21(日) 00:18:13 ]
- >>781
同意。 例えば正規表現リテラルが #/rexp/ の言語処理系も実際あるわけだし。 このくらいだと違和感なく使える。
- 783 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 12:05:31 ]
- スラッシュの代わりに別の文字を使えるようにするのも忘れるなよ〜
これ便利だから
- 784 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 23:38:39 ]
- 主な括弧の場合は対応する閉じ括弧で終われるようにね
- 785 名前:デフォルトの名無しさん mailto:sage [2005/08/21(日) 23:44:59 ]
- >>765
これを実装したSchemeコンパイラは公開されてるんでしょうか?
- 786 名前:デフォルトの名無しさん mailto:sage [2005/08/22(月) 01:43:41 ]
- >>766
プリプロセッサで関数呼び出しに置き換えちゃうとか
- 787 名前:デフォルトの名無しさん mailto:sage [2005/08/22(月) 02:52:36 ]
- プリプロセッサだと実際の行番号がわからんという不具合を抱えることになる
まあやり方次第かもしれないけど
- 788 名前:デフォルトの名無しさん mailto:sage [2005/08/25(木) 03:42:41 ]
- >>785
Baker本人はもちろん実装してるんでしょ。 ほかにこんなのもあるようです。 Chiken Scheme Compiler www.call-with-current-continuation.org/ しかしすごいドメイン名。
- 789 名前:デフォルトの名無しさん mailto:sage [2005/08/25(木) 12:04:31 ]
- あるかどうかじゃなくて公開されているかどうかでは?
- 790 名前:デフォルトの名無しさん mailto:sage [2005/08/25(木) 23:53:57 ]
- >>789
リンク先見てから言ってくれ。
- 791 名前:デフォルトの名無しさん mailto:sage [2005/08/26(金) 01:39:26 ]
- リンク先を見ろという前にchikenが785の質問に合致するかどうかを説明すべきでは?
- 792 名前:デフォルトの名無しさん mailto:sage [2005/08/26(金) 05:00:15 ]
- この話の流れで実は合致しないというオチだったらびっくりだな。
- 793 名前:デフォルトの名無しさん mailto:sage [2005/08/26(金) 08:19:29 ]
- >>791
いたれりつくせりを要求してんな
- 794 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 22:12:59 ]
- おまいら日経ソフトウェアがきましたよ
software.nikkeibp.co.jp/software/backno/2005/0510indexc.html
- 795 名前:デフォルトの名無しさん [2005/08/31(水) 22:38:04 ]
- >Part4 Javaで作るオリジナル言語
> 〜やさしいLispインタプリタの作り方 オワタw
- 796 名前:デフォルトの名無しさん mailto:sage [2005/08/31(水) 22:50:42 ]
- JavaでLISPなんて泥臭い部分全部端折ってるじゃん
- 797 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 00:02:08 ]
- testや最適化という一番泥臭い部分が残ってます。
- 798 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 01:26:34 ]
- test?はよくわからんが、最適化なんて枝葉だからどうでもいい
- 799 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 01:35:23 ]
- >>798
世の中のコンパイラ屋さんが泣いています
- 800 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 12:22:04 ]
- lispでtestって無茶簡単なような
- 801 名前:デフォルトの名無しさん mailto:sage [2005/09/01(木) 16:18:08 ]
- >>799
いや、雑誌の件はインタプリタだから(w 正直java製のLISPインタプリタでタイトルに「簡単」とか書いてあると、 読まずに中身が解ってしまう気がするのは俺だけじゃないと思う。 バイトコードにコンパイルするとかならもの凄くおもしろそうなのに。
- 802 名前:デフォルトの名無しさん mailto:sage [2005/09/02(金) 08:14:28 ]
- >>801
コンパイルは雑誌記事ではちと荷が重くないかい? 特集で3回くらい組まないと、紙面ではあるていどちゃんと説明できないだろうし。
- 803 名前:801 mailto:sage [2005/09/02(金) 14:23:52 ]
- >>802
確かに、雑誌では重いのは大変よくわかります、はい802氏の言うとおりです。 でもLISP(Schmeの方がより良いと思いますが)のネイティブ(バイトコード含む)へのコンパイルと最適化って 書籍では見かけた事が無いのですよ(国内しか調べてません、英語文献があれば教えてくれると嬉しい) で、結局皆どこを見に行くかと言うとACMとか、各大学の論文とかなんですよ。 情報工学出じゃないと検索すら泣ける結果が多いから、日本語で書籍で出せば結構なインパクトあると思うのですがね。 中田先生の書籍は関数型言語より手続き型言語の物だけだしorz
- 804 名前:802 mailto:sage [2005/09/02(金) 17:25:05 ]
- >>801
コンパイラについて体系立った形で書籍として提供されれば、漏れも買うな。 しかし、話の流れは雑誌だし。 Lispのコンパイラについては、昔々にKCL(古っ)のソース読んだりして独学したけど、 あれは出力がCだし。 最近の処理系では、 dmoz.org/Computers/Programming/Languages/Lisp/Scheme/Implementations/ なかんじなのだろうか。いくつかコンパイラもあるようだから、ソース読んでみるかね。
- 805 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 14:23:24 ]
- >>803を読む限り、Lispに特化した最適化や高度な最適化というより、
関数型言語のコンパイルと最適化の基本を知りたがってるように感じた。 もしそうならLispに限ることないんじゃないかな。 多分mincamlとか見るといいと思う。 min-caml.sourceforge.net/
- 806 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 15:57:02 ]
- >>805
そこでAppel先生ですよ
- 807 名前:デフォルトの名無しさん [2005/09/03(土) 23:50:18 ]
- オイオイ、好い加減LISPの話はよせ。
おまえらつられすぎw リンゴタソ、ハァハァ
- 808 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 23:53:42 ]
- >オイオイ、好い加減LISPの話はよせ。
なんで? きみが嫌いなだけか? 理由でも書いてくれると話が広がるんだが。
- 809 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 00:41:31 ]
- もともとは日経プログラミングの記事の話題なんだっけ
- 810 名前:デフォルトの名無しさん [2005/09/04(日) 01:01:50 ]
- 質問です。
デザインパターンのInterpreterパターンはLL(1)文法しか 記述出来ないのでしょうか? LALR(1)文法をInterpreterパターンで実装することは可能でしょうか?
- 811 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 13:20:17 ]
- >>808
だから807は広げたくないんだろw
- 812 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 18:47:46 ]
- 807=811
コテハン名乗ってくれ 透明化するから
- 813 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 19:11:24 ]
- つNG word: w
- 814 名前:デフォルトの名無しさん [2005/09/04(日) 19:41:39 ]
- ついでに、LALRも金句らすい
- 815 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 19:52:42 ]
- >>810
可能だよ。 Interpreter パターンの LL(1) 解析部を LALR(1) に改造すれば良い。 再帰下降方にする事だって出来る。 しかも Interpreter パターンであることに変わりは無い。
- 816 名前:デフォルトの名無しさん [2005/09/04(日) 21:25:29 ]
- Interpreter パターンと Visitor パターンを混ぜて
どうこうするのって妙にわかりにくいというかしっくりこないと いうか オブジェクト指向の中に無理やり詰め込んでるような気がするのは 俺だけだろうか??
- 817 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 21:29:56 ]
- つ[pc8.2ch.net/test/read.cgi/tech/1119158274/l50]
……っていうかお前マルチやんか
- 818 名前:デフォルトの名無しさん [2005/09/04(日) 21:56:59 ]
- つりんごタソ
- 819 名前:デフォルトの名無しさん mailto:sage [2005/09/04(日) 22:08:26 ]
- >>815
ありがとうございます。 まずはLL(1)で簡単なものを作ってみて その後LALRに変えていこうかと思います。
- 820 名前:デフォルトの名無しさん [2005/09/08(木) 20:45:28 ]
- アフォ?
なんで、llからlalrにかえんのw
- 821 名前:デフォルトの名無しさん mailto:sage [2005/09/08(木) 20:58:17 ]
- 出来ないことを出来るようにするため
- 822 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 01:41:01 ]
- >>820
馬鹿かお前?
- 823 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 05:41:33 ]
- 理由を書かないお前が馬鹿なのは明白ですw
- 824 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 11:24:47 ]
- 本人じゃないから本当のところはわかんないけど、
LLでは扱えない構文を導入するのかもしれないし、 単に勉強のためなのかもしれない。 そんなことも思いつかずにアフォ呼ばわりするお前の成績は不可。
- 825 名前:デフォルトの名無しさん mailto:sage [2005/09/09(金) 12:51:03 ]
- 要するに、何も特定できないのに横からしゃしゃり出てきて
煽ってるだけってことですね。みっともないw
- 826 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 00:27:02 ]
- つーか普通にLLだと左再帰の問題があるだろ?
- 827 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 00:34:45 ]
- 粘着にレスするのいいかげんやめようよ……
- 828 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 08:59:05 ]
- そうだな。以降>>827は放置で。
- 829 名前:デフォルトの名無しさん mailto:sage [2005/09/10(土) 09:35:36 ]
- C++の名前空間ぽくしようと思ったけど
面倒くさすぎてやめた やぱモジュール形式かな
- 830 名前:名無しさん@そうだ選挙に行こう [2005/09/10(土) 20:27:29 ]
- >>829
ひとりごとは、他でやってくれ。
- 831 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/10(土) 21:14:14 ]
- 敵幹部「名前空間にひきずりこめ〜」
宇宙刑事「うわ〜」
- 832 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/10(土) 22:24:33 ]
- >>831
何その間抜け時空
- 833 名前:名無しさん@そうだ選挙に行こう mailto:sage [2005/09/11(日) 01:05:32 ]
- よーしスーパーササニシキだ
- 834 名前:デフォルトの名無しさん [2005/09/12(月) 00:11:02 ]
- 質問です。文法がLR(1)かどうかというのを、状態遷移図を完全に書かずに判断できますか?
たとえば、 S→V$ V→(L) | x L→V | V;L という文法があった場合、直感的にはLR(1)文法であると思われますが、理由が説明できません。 証明のためにLR(1)項集合の状態遷移を全部書くと結構な量になりそうです。 すべての状態遷移を書かずに証明する方法は無いものでしょうか。
- 835 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 09:39:12 ]
- >状態遷移を書かずに
ここを楽にしたいならyaccにでも食わせたら? 正確にはLR(1)じゃないけど
- 836 名前:デフォルトの名無しさん [2005/09/12(月) 22:56:28 ]
- >>835
天才w うまいやり方ですね。 LISP房には思いつかんでしょうなw
- 837 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 23:03:10 ]
- またLISPを目の敵にした馬鹿出現ですか?
- 838 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 23:05:29 ]
- だーかーらー
そうやって脊椎反射するから、わいてくるんだってば いい加減スルーしようよ
- 839 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 23:05:48 ]
- NGワード:w
- 840 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 23:07:29 ]
- 毎日いるみたいだな
LISP下手に導入して失業したか
- 841 名前:デフォルトの名無しさん mailto:sage [2005/09/12(月) 23:08:59 ]
- 834ですが、誓って836ではありません。
やっぱり正確なLR(1)であるかどうかを判断するには、 実際に状態遷移を書いてみるのが正攻法なのですね。 怪しそうなところだけ手でチェックして、見つからなければ… 自分でチェックプログラムを作るのがよさそうですね。 ありがとうございました
- 842 名前:デフォルトの名無しさん mailto:sage [2005/09/13(火) 02:45:54 ]
- 形式数学なら、大学のソフトウェア資材に証明チェッカとかいう
くだらないソフトあるはずだからそれでしらべてみ。 あとは普通に1階述語論理でかけるべ?
- 843 名前:デフォルトの名無しさん [2005/09/13(火) 16:17:21 ]
- つ834==836
- 844 名前:デフォルトの名無しさん mailto:sage [2005/09/15(木) 16:32:08 ]
- ttp://mono.kmc.gr.jp/~oxy/hiki.cgi?rtype
- 845 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 00:44:06 ]
- ↑ブラクラ
- 846 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 02:07:56 ]
- >>845
少なくともそういうデマ系の嘘はやってはいけない事だと思うがどうよ。
- 847 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 02:16:36 ]
- URLだけ貼り付けるのも悪質
- 848 名前:デフォルトの名無しさん [2005/09/16(金) 11:07:58 ]
- >>846
そんな無駄口たたくなら、お前が説明した文書でもかいたらどうだ?
- 849 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 11:38:40 ]
- なにこの小学生レベルの居直りw
- 850 名前:デフォルトの名無しさん mailto:sage [2005/09/16(金) 12:10:03 ]
- なんだとコラ
小学生に失礼だ!
- 851 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 00:21:04 ]
- ↑クソスレ
- 852 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 00:23:50 ]
- はいはいろりすろりす
- 853 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 01:24:13 ]
- ←ブラクラ
- 854 名前:デフォルトの名無しさん [2005/09/17(土) 01:32:57 ]
- おまえらつられすぎw
まるでLIS(ry
- 855 名前:デフォルトの名無しさん [2005/09/17(土) 03:19:13 ]
- Targetを指定したディレクトリに作成できません
SRC=/topdir/src /topdir/obj/hoge.o : $(SRC)/hoge.c cc -g -c $(SRC)/hoge.c makeするとカレントディレクトリにhoge.oが作成されてしまします。 /topdir/obj/配下にhoge.oを作成したい場合どおすればよいのか アドバイスお願いします。
- 856 名前:デフォルトの名無しさん [2005/09/17(土) 03:19:45 ]
- Targetを指定したディレクトリに作成できません
SRC=/topdir/src /topdir/obj/hoge.o : $(SRC)/hoge.c cc -g -c $(SRC)/hoge.c makeするとカレントディレクトリにhoge.oが作成されてしまします。 /topdir/obj/配下にhoge.oを作成したい場合どおすればよいのか アドバイスお願いします。
- 857 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 03:48:09 ]
- コンパイル後にmvで移動させちゃえば?
つか、なんでここで聞く?
- 858 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 04:05:40 ]
- /topdir/obj/をカレントにしてください
/topdir/obj/にシムリンク貼ってください /topdir/obj/配下にお届けください 呼んでる-g -cの意味を教えてくれたらお礼に教えます
- 859 名前:デフォルトの名無しさん [2005/09/17(土) 14:40:38 ]
- おまえ、Lis*erか?
gcc -o で指定しる!
- 860 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 15:03:29 ]
- 池沼がわいてるな
- 861 名前:デフォルトの名無しさん [2005/09/17(土) 21:57:48 ]
- 下向き構文解析を手でがりがり書くときに、
シンボルテーブルに追加する変数のスコープって どうやって管理してる? Cライクなヤツを勉強がてら作ってるんだけど 俺は宣言された変数とかをそれが宣言された関数名とネストのレベルで テーブル検索できるようにしたけど・・・ あと、シンボルテーブルってグローバルに一個持っておく感じでも よいの?
- 862 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 23:32:48 ]
- >>861
変数表(グルーバル) -> 変数表(スコープA) -> 変数表(スコープB) こんな感じでスタックを使うのはどうだろう?
- 863 名前:デフォルトの名無しさん mailto:sage [2005/09/17(土) 23:35:44 ]
- グルーバルって寝ぼけているなorz
グローバルです。
- 864 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 00:22:47 ]
- グローバルのみハッシュ表みたいなのでO(1)で管理すれば効率よくなるはず。
名前空間あるとやっかいだけど。
- 865 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 03:19:52 ]
- ちっと前Cっぽいの実装したけど全部のブロックにIDつけると楽だったよ。
[0]void f[1](int a)[2]{ for(;;)[3]{...}; while(1)[4]{...}} int main[5](int argc, char** argv)[6]{ ... } わかりづらいけどこんな感じね([n]がID)。 で、記号表を同名登録可能にして、登録のときは名前=>ID,情報として、 検索のときはHITした集合から可視スコープのIDで絞り込む。 可視スコープはスタックで管理してね(上の例ではwhileの中なら[4,2,1,0]、 whileから出たら[2,1,0])。 あと、まっとうな言語なら記号表は1個でいいと思うよ。 Cは構造体とかが別ネームスペースだから複数あったほうが実装しやすいけど。
- 866 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 06:15:58 ]
- class Table {
Table(Table parent); Object get(String ident) { 自分が持ってなければ親を検索 } } // 再帰的下向き構文解析 void statement(Table t) { varDecl(t)かblock(t)かexpr(t)か……を呼び出す } void varDecl(Table t) { tに登録 } void block(Table t) { t = new Table(t); ブロックの終わりまでstatement(t)を呼び出す } :
- 867 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 06:26:34 ]
- >>865
(名前,ID)=>情報 ではなくて? 構文解析終わったブロックの情報を捨てないんだとすると、 最後のほうでは、i を検索すると大量にヒットする予感。
- 868 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 14:22:28 ]
- Cで開発された、Cのコンパイラのソースで、サンプル的なものってあります?
- 869 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 14:25:40 ]
- >>868
手当たり次第のスレで聞きまくってるな
- 870 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 14:31:17 ]
- >>869
いや、初めてここで聞いてるんだが
- 871 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 14:37:35 ]
- >>868
gcc
- 872 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 15:35:14 ]
- gccはいいサンプルですね。
- 873 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 16:00:28 ]
- gcc 肥大化しすぎて わけわかめ
- 874 名前:デフォルトの名無しさん mailto:sage [2005/09/18(日) 16:14:36 ]
- 読むとこなんてすぐわかるだろうが
何のためのモジュール化だっちゅーの
- 875 名前:865 mailto:sage [2005/09/19(月) 00:12:52 ]
- >>867
確かにそっちの方がずっと効率いいですね。 今度からそうしますわ
- 876 名前:デフォルトの名無しさん mailto:sage [2005/09/23(金) 10:02:46 ]
- _i―-..、
_.. ---- ..,,/i,.ゝ''、 `''、 ._ ,..r冖''″ .匸、 .ljニ;;-..,.l, ,''| .|ヽ/ ゙''ヒ|、\`''ミ.l、 匸 コ i ''、 .l.l .l.l\.ヽ ゙.lL l゙ .!ッ″ ''li,゙''i、ll, .''n llli 丿!ヽ.ヽ..l .l゙''‐ ! / / !.i l.、 ll,.l.l! !,,-,,./|,/ ,lヽ / ..'','', '', |│ l ! |、 ''li'',i、 !. .;;'''''';;;;`ll l, ゙/゙''ミ/、 !l、 ! :| l ! | lヽ,,''ミ゙=... | `,;;;;′. ! l ,! .! ゙l │ ! .liリ.レ. ゙lii|" 、'';;;l | .|" │ .| l,| Compileマダー? .| .l |.| .}.l''v゛"'''' / '''' .,! .| .! ,! l,! _ ,,. l! |l゙ !│.l ~ −'' /] ! ,!. .il .!′ ./゙r''" .゛ .`l" ヽ..l リ .''l, .l ! /-、、 ._ ;;二八 .l ! /.| .l †丶 /」川!; .ハ.、i ||.「 l l, ll, U ! .`゙''ニ;;アレ゛ ,, ー.l,! .l/ .l゙ / 彡ヾミ;.,|.!゙` !,.ゞ゙⌒巛|| i;.} .l. .lく.lLミ''''ー''゙,゙..ー゙ネ.!ー'' ̄´゛ l / †ヽ. 彡''ミ;.|. `l l. ̄. ̄ l,l''゙l.〃 ヽ l.゙l/''l广''"゛ C/C .iゞ ~\\ ''ミ;`ヽlケcYc"ノヽ{゙ \ .l, / \\..''ミ;,;;lΛ_ .人 __,}"| `''、,ヽ ノ| \\/;,,/〔/ i .l ,,,, . i.l `''ゝ .○'' /二''lミ.''く、 .゛.ゝ . i‐゙/゙''.;;;;;ゝ''゙''゙テ〜.! . ゙‐''l′ .|''⌒''''/┘ `--.'' `- -.′
- 877 名前:デフォルトの名無しさん [2005/09/29(木) 01:00:47 ]
- 並列化コンパイラを作ることになりました。
コンパイラについては全くわかりません。 >>5にあるような本を読んで勉強しようと思います。 どのほんがおすすめですか?
- 878 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 01:06:07 ]
- >>877
大学の授業か?したから2冊目以外全部読んでみれば?
- 879 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 01:06:18 ]
- なんで突発的に並列化コンパイラ作りたくなる奴が多いんだろうか。
- 880 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 02:27:40 ]
- >>878
並列だと院か卒論だと思うが卒論にしては遅いので院か?
- 881 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 08:47:57 ]
- 院にもなって>>877はありえないと思うがどうか
- 882 名前:877 [2005/09/29(木) 12:38:48 ]
- 卒論です。
- 883 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 12:48:49 ]
- こっそりで良いから、どこの大学のどの研究室か言ってみ?
- 884 名前:sage [2005/09/29(木) 13:59:47 ]
- いえません
- 885 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 16:14:13 ]
- 今の時期卒論で並列ってきつくね?
俺だったら泣きそう。
- 886 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 16:17:49 ]
- もう間に合わないだろう。
そっとしておいてやれ。
- 887 名前:デフォルトの名無しさん mailto:sage [2005/09/29(木) 17:17:11 ]
- 学部時代ちゃんと勉強してきたやつなら、まだ3ヶ月もあるから
卒論レベルの並列Cコンパイラ程度は書けるだろうし、 実際似たようなことしたやつは何人もいる。 また、卒研を冬学期になってから始める大学も多い。 だが、>>877のような書き込みしてるやつには無理だろうな。
- 888 名前:デフォルトの名無しさん mailto:sage [2005/09/30(金) 16:40:37 ]
- てか、車輪の再発明みたいなことしても・・意味なくねぇ?
- 889 名前:デフォルトの名無しさん mailto:sage [2005/09/30(金) 16:48:38 ]
- >>888
さすがに作るだけじゃなくて、なにかあるんじゃない?
- 890 名前:デフォルトの名無しさん mailto:sage [2005/09/30(金) 19:47:58 ]
- 卒論という事以上のなにかが?
- 891 名前:デフォルトの名無しさん mailto:sage [2005/09/30(金) 19:57:04 ]
- おまいら学部生の卒論に夢持ちすぎ…
- 892 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 00:34:54 ]
- 血や肉となりゃいいんでないの?
- 893 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 01:34:11 ]
- 大学に行ってコンパイラ作りを学んで
将来はマイクロソフトか日立・富士通などに 入って世界に通用するエースコンパイラーに なりたいと思ってます。 そうなるにはどれくらいの実力が必要でしょうか。 何の資料も見ずに鼻歌交じりでCコンパイラを 書けるくらいでないとだめでしょうか。
- 894 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 01:35:18 ]
- とりあえず、某ランドが出てこなかったのは致命的
- 895 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 01:40:58 ]
- >>893
とりあえず>>1-6あたりの事が知識として持っているか
- 896 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 06:04:12 ]
- >>893
まずは学力上げて良い大学いけるようにしろ。
- 897 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 09:08:11 ]
- むしろコンパイラになりたいらしい
- 898 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 09:12:20 ]
- >>893
あんた素人じゃないだろw
- 899 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 12:04:42 ]
- Cコンパイラは鼻歌交じりに書いたけど
無職です
- 900 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 15:28:41 ]
- 8bit時代にCコンパイラをアセンブラで書いたけど
フリーターです
- 901 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 17:00:06 ]
- OpenMP仕様に基づいて自動並列化するコンパイラは書いたけど
ニートです
- 902 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 17:26:58 ]
- 真実が混じってそうでマジコワスww
- 903 名前:デフォルトの名無しさん mailto:sage [2005/10/01(土) 17:35:02 ]
- ちなみにわたくしは茶色の長髪ですが、包茎です。
- 904 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 00:53:14 ]
- すいません、ちょっと教えて欲しいのですがJavaScriptでセッションに値を格納したり
セッションから値を取ってくると言った事はできるのでしょうか? ググッてもサーブレットやphp、JSPなどがヒットしてJavaScriptで出来るかどうかがよくわかりません。 例えばこんな感じです <script>var a ="あ";</script> この変数aをセッションに格納したいのですが
- 905 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 01:00:06 ]
- >>904
なぜここでその質問したのか聞かせてもらおうか
- 906 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 01:10:16 ]
- なぜといわれてもjavascriptで板を検索しても該当スレがないので
スクリプトという文字がスレタイに入ってるこのスレを除いてみると javascriptについての話題がいくつかあったので質問させてもらったのですが
- 907 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 01:12:44 ]
- 凄い論理だ。マジレスすると、クッキー使って何とかするべし。
- 908 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 01:21:27 ]
- クッキー?・・・・・・要は使えないってことですか・・・
- 909 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 01:22:29 ]
- >>906
多分。スレ内javascriptで検索して幾つか引っかかったから良くも見ずに質問したんだろうが。 ここはプログラミング全般の質問やらをする場所じゃなくて、コンパイラやスクリプトを作る為の情報を交換するスレだよ。
- 910 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 01:39:02 ]
- ついでに言うと、サーブレット・PHP・JSP とも、サーバ側で処理されるが、
JavaScript はクライアント側で処理されてる。つまり根本的に仕組みが異なる。
- 911 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 06:45:43 ]
- >>908
JavaScript に cookie を読み書きする API がある。 スレ違いもいいとこなのでこの話はこれで終わりで。
- 912 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 09:54:07 ]
- つか板違いだなWebProg板池
- 913 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 11:01:12 ]
- >>906
小学生じゃないんだから、そんなアホな理屈が通るとでも思っているのか
- 914 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 11:18:46 ]
- サーバサイドJavaScriptってのもあったような気はするけどな。
>>904 がその話をしとるとは思えんし、JavaScriptがどこで動くかも 知らんような奴に満足にWebアプリが書けるとも思えんな。 >>909 >コンパイラやスクリプトを作る為の情報を交換するスレだよ。 だからボクはスクリプトを作ろうとしているのに! とか思ってそうな悪寒。 ここはJavaScriptなどのプログラミング言語で何かを作るための相談室じゃなく、 JavaScriptなどのようなプログラミング言語の処理系を作るための相談室だよ。
- 915 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 17:20:13 ]
- なんだこのスレ・・・・www
クッキーなんて間抜けなことほざいてるから軽く流したんだが それに輪をかけて偉そうな住人には思わず苦笑しちまったよwww
- 916 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 17:50:34 ]
- >>915
まあその中でも君のレスが一番偉そうだけどな
- 917 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 18:08:11 ]
- >>916
よくある質問者の逆切れだよ。スルーしる
- 918 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 19:29:34 ]
- >>917
JSPスレでも馬鹿さらしてた池沼だった。
- 919 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 19:35:37 ]
- 自演乙w
- 920 名前:う゛ぉいど mailto:sage [2005/10/02(日) 22:21:38 ]
- と言うことにしたいのですね。
- 921 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 22:23:45 ]
- うん。
- 922 名前:デフォルトの名無しさん [2005/10/02(日) 23:29:01 ]
- # りんごタンの本は初心者にはお勧め!
# ただし、あまり深く突っ込まないことw ところで、中田先生の本だけど、最適化がメインってなってるけど、 そうとも思えないんだけどなぁ。コンパイラ全般についてうまく書かれて内科医?
- 923 名前:デフォルトの名無しさん mailto:sage [2005/10/03(月) 08:49:48 ]
- >>922
Yes。 目次はこんな感じ。 www.k.hosei.ac.jp/~nakata/aCompiler/CompilerIndex.html
- 924 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 22:32:39 ]
- BNF記法って似てるんだけど色々な書き方があって悩む。
これぞスタンダードっていう書き方はどれですか?
- 925 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 22:50:39 ]
- BNFのスタンダードはとっても簡単。::=と|と<>しかない。
- 926 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 22:54:19 ]
- >>924
つ[RFC 2234]
- 927 名前:う゛ぉいど mailto:sage [2005/10/05(水) 23:51:51 ]
- >>926
だがおのおの拡張したBNFはそれなりに便利だと言う罠があるのであるよ。 ようするに自分の言語仕様を記述しやすいように皆が改変するからいかんのである(w
- 928 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 23:52:33 ]
- やべ、昔ちゃちゃ入れた時の名前が記憶されてるでやんの(がーんw
- 929 名前:sage [2005/10/06(木) 00:35:34 ]
- >>922
次スレでは、テンプレ変更した方がいいな。
- 930 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 00:40:10 ]
- 相談室ということで、相談させてください。
実は、何処のコンパイラを使うかで妻と喧嘩してしまって、 もう何年も夫婦生活がありません。 フェ○もしてもらってません。どうすればいいですか?
- 931 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 00:44:29 ]
- >>930
離婚して古の言い伝えどおりに 「女房と畳は」以下略
- 932 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 01:38:02 ]
- >>930
君にはこっちの方が役に立つかも pc8.2ch.net/test/read.cgi/tech/1111363360/
- 933 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 10:24:28 ]
- >>876
リンゴたんに中田氏 ハァハァ
- 934 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 13:52:50 ]
- gccとnasmでコンパイルしたものをくっつけて一つにして実行したいんですが
makefileにどう書けばいいですか?
- 935 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 13:57:08 ]
- >>934
pc7.2ch.net/pcqa/
- 936 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 21:00:15 ]
- 四則演算の算術式を処理するコンパイラのサンプル的なものはありますか?
ちなみに、言語はCです。
- 937 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 21:09:57 ]
- ありません
- 938 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 21:14:48 ]
- 最近、学校の宿題の丸投げと思われる
レベルの低い質問が多くて萎えるな。 なんかこう、とんでもないコンパイラを作ってる 大物からの高度な質問はないもんかな。
- 939 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 21:22:12 ]
- がんばれ。いいだしっぺ。
- 940 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 22:15:53 ]
- 大物はこんな場所に(ry
- 941 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 22:34:01 ]
- >>936
スクリプトでよければこの辺とかどうよ? ttp://kmaebashi.com/
- 942 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 23:01:05 ]
- >>923
日本語で読めるコンパイラ系の技術書で、これ以上のものってありますか?
- 943 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 23:04:16 ]
- りんご畑
- 944 名前:デフォルトの名無しさん mailto:sage [2005/10/07(金) 04:41:57 ]
- ありません
- 945 名前:デフォルトの名無しさん [2005/10/07(金) 18:10:18 ]
- >>940
ワロタw
- 946 名前:デフォルトの名無しさん [2005/10/07(金) 21:23:19 ]
- なんか、何だかんだといっても、
隠れ?リンゴファンは結構いるみたいだなw
- 947 名前:デフォルトの名無しさん mailto:sage [2005/10/07(金) 21:37:53 ]
- >>946
そりゃAppleマニアは][以降結構いるわけであるからして(違
- 948 名前:デフォルトの名無しさん [2005/10/08(土) 18:03:49 ]
- それに比べ、Rub(ry
- 949 名前:デフォルトの名無しさん [2005/10/08(土) 20:05:37 ]
- 新しい言語は新しいパラダイムの中で産まれる。
古い言語=抵抗勢力 みたいなもの。
- 950 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 20:35:27 ]
- Lingoは古い言語だろ。
- 951 名前:デフォルトの名無しさん [2005/10/08(土) 22:02:12 ]
- りんごタソに、ルビーの宝石をプレゼントしたい。
- 952 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 22:03:02 ]
- >>950
関係ないけど、ビンボーとかいう言語なかった? ちょっと思い出した。
- 953 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 22:24:29 ]
- limbo じゃなくて?
- 954 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 23:56:37 ]
- あっと、それだったかなぁ?
Plan9とかいうOSに乗ってたような気がする。
- 955 名前:デフォルトの名無しさん [2005/10/09(日) 07:24:08 ]
- limbo -> Inferno
Alef -> Plan 9 でも、使ったことない・・・ いや、それ以前にわざわざ使う必要のあるOSなのか? それも、デスクトップOSとして・・・
- 956 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 20:26:53 ]
- >>955
TNX ビンボーでなくリンボーか、しかもos も違ってた、 ひとの記憶なんてあてにならんな。すまそ>>ALL
- 957 名前:デフォルトの名無しさん [2005/10/10(月) 23:59:34 ]
- 中田先生の書籍なんだけど、テンプレにかいてあるやつの他に
あと 2 冊、本屋にあったんだけど? テンプレの本が、あとの二冊を含むようなイメージでいいのですか? (時期的にも、あとだし、量的にも多いし。。。)
- 958 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 08:30:09 ]
- 中田先生の本を読んだだけの初心者ですが、質問させてください。
JavaCCでECMAScriptの文法を仕様書にしたがって書いたのですが、 そのままでは多数のエラーが出て使えませんでした。 左再帰に関しては中田先生の本にも書いてあったので回避出来たのですが、 "Choice conflict involving two expansions at ..." などのエラーの回避の仕方がわかりません。 ConflictについてはJavaCCでLOOKAHEADを使って回避しましたが、 本当にそれで正しく回避できているかどうかの自信はありません。 質問はそのエラーについてではなく、一般的な文法の書き方についてです。 実際に文法を書く人が知っておくべき常識は一体どこで身につければよいでしょうか? 和文英文問いませんので、何か参考資料があれば是非教えてください。よろしくお願いします。
- 959 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 08:44:56 ]
- >>942
日本語の本だとトップは中田本かドラゴンブックかだと思う。 >>957 いいよ。
- 960 名前:957 [2005/10/11(火) 18:32:27 ]
- >>959
ありがとうございます。 テンプレの本を購入&読破して なんとか、技術を身に着けたいと思います。
- 961 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 20:09:41 ]
- >>958
conflictは文法が曖昧だということを意味するので、 エラーメッセージから文法のどの部分が曖昧なのかを調べ、 それを書き換えて曖昧さを除けばいいわけですが。 そもそも、LL文法とLR文法の違いは理解していますか?
- 962 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 20:22:01 ]
- >>961
それは理解している、と思っています。少なくとも本に書いてあるレベルでは。 ただ、左再帰みたいに曖昧さはこうやれば毎回確実に解消できる、 もしくはある程度パターンが決まっていて普通はそのどれかに変換できる、 というようなものがあるのではないかと思ったのです。 一応コンフリクトの部分は自分で解析してまず問題ないと思う形に書き直しましたが、 書き直した形が書き直す前の形と確実に一致している自信がなく、 すべてのパターンのテストの方法もいまいちわかっていないので質問しました
- 963 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 20:49:14 ]
- >>962
つ 書き直す前と後で受理する入力列が等しいことを構造帰納法で証明
- 964 名前:デフォルトの名無しさん [2005/10/12(水) 21:42:40 ]
- りんごたんは何の仕事してるの?
コンパイラのプロ?
- 965 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 22:21:23 ]
- りんごたん、りんごたんてよく出てくるけど、なんのこと?
- 966 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 22:34:37 ]
- >>965
ttp://apple.jpn.ch/
- 967 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 23:26:46 ]
- >>965
中田先生のお弟子さんが書いたコンパイラ本の中でたとえ話が全部りんご農家で語られているからです。
- 968 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 23:34:28 ]
- あーつまんね
- 969 名前:デフォルトの名無しさん [2005/10/12(水) 23:55:30 ]
- いろんな意見があると思うけど、普通の本やに並んでるというのは
凄いとおもうよ。ある意味、中田先生でもできなかったこと。
- 970 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 23:58:31 ]
- 中田氏とりんごの話したい奴は別スレ立ててくれ
うざい
- 971 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 00:42:33 ]
- >>967
それか。俺もそれ買ったわw
- 972 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 01:48:45 ]
- >>969
中田先生の本は学術書に入るから普通の本屋においてあるはずもないでしょうに(w
- 973 名前:972 mailto:sage [2005/10/13(木) 01:49:53 ]
- おいてあたらその本屋尊敬すると思う(というか専門店かと瞬間思うに違いない
- 974 名前:デフォルトの名無しさん [2005/10/13(木) 13:52:35 ]
- 専門家の皆さんに質問です!
浮動小数点定数を正規表現とCF文法で表すとどうなりますか?
- 975 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 15:14:54 ]
- >>974
宿題は! 自分で解こうね?
- 976 名前:デフォルトの名無しさん [2005/10/13(木) 19:00:36 ]
- 大物はこんなところに(ry
- 977 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 21:10:46 ]
- Rubyだと、中田本とか約にたたないの?
- 978 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 22:45:39 ]
- Rubyは機能を優先しすぎて破綻してて最適化どころじゃないからな
- 979 名前:デフォルトの名無しさん mailto:sage [2005/10/14(金) 08:15:50 ]
- じじい避けには丁度いいw
- 980 名前:デフォルトの名無しさん [2005/10/14(金) 19:23:52 ]
- いまからは最適化なんて過去の話題になるんだろうなぁ。。。
- 981 名前:デフォルトの名無しさん mailto:sage [2005/10/14(金) 19:59:36 ]
- 980を超えたので、新スレッドを立てました。
「コンパイラ・スクリプトエンジン」相談室7 pc8.2ch.net/test/read.cgi/tech/1129287390/ です。
- 982 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 00:14:33 ]
- まあ、その、なんだ
埋めようか
- 983 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 01:51:29 ]
- 埋め
- 984 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 02:15:56 ]
- 梅は〜、咲いたか〜、桜ぁ〜はまだかいな。
- 985 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 02:36:33 ]
- 無駄に埋めるな
980超えれば時間がくれば自動的に落ちる
- 986 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 06:32:15 ]
- >>985
それはしらなかったが、そうだとしても無駄に埋めると何か逆効果があるの?
- 987 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 06:37:31 ]
- 1000まで行かないと外部の有力な過去ログサイトに収集されない
- 988 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 08:15:17 ]
- >>987
どこ?それ。
- 989 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 09:42:09 ]
- うめ
- 990 名前:デフォルトの名無しさん [2005/10/15(土) 18:38:57 ]
- りんご
- 991 名前:デフォルトの名無しさん [2005/10/15(土) 19:04:44 ]
- 1000ならビルゲイツの財産は俺のもの
- 992 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 19:51:06 ]
- たけ
- 993 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 20:05:11 ]
- じま
- 994 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 21:53:00 ]
- かん
- 995 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 22:13:07 ]
- チャンカン
- 996 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 22:18:33 ]
- 次の人>>986に答えて
↓
- 997 名前:デフォルトの名無しさん mailto:sage [2005/10/16(日) 01:17:30 ]
- おまいらの貴重な人生を無駄にしている
- 998 名前:デフォルトの名無しさん mailto:sage [2005/10/16(日) 01:32:43 ]
- てst
- 999 名前:デフォルトの名無しさん mailto:sage [2005/10/16(日) 01:33:04 ]
- てst
- 1000 名前:デフォルトの名無しさん mailto:sage [2005/10/16(日) 01:33:58 ]
-
- 1001 名前:1001 [Over 1000 Thread]
- このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
|

|