- 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 あたり
- 596 名前:デフォルトの名無しさん mailto:sage [2005/06/24(金) 22:08:57 ]
- まあ>>595くらいのレベルがこのスレにちょうどあってる気がする
- 597 名前:デフォルトの名無しさん mailto:sage [2005/06/24(金) 23:12:59 ]
- 見てると、LispとRuby、両方ともアンチが厨なだけに見える。
厨だから、ちょっとこの二つが出てくるとすぐ暴れだして 荒れる。
- 598 名前:デフォルトの名無しさん mailto:sage [2005/06/24(金) 23:18:57 ]
- >>597
わかってないな。 何かを貶す時の基本は度外れに褒めまくること。 そうすれば>>597のようなアホがほいほいつられてくれる。
- 599 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 00:32:42 ]
- >>595
lexerはどうしてるの? Lex等を使わずに自分で書いたのなら、どこまで処理してるかは把握してるのでは? lookahead tokenの値は変数yycharにおさめられてます。
- 600 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 01:21:33 ]
- >>595 bisonのオプション
#define YYERROR_VERBOSE 1 /* Enable verbose error messages. */ マニュアルにも出てるはず > そもそも「if文の途中」というのが > 取れるんでしょうか? bison の error を使えば if文の途中でパース失敗した ときのアクションとか付けられる なんか説明しづらいけどマニュアルのサンプルに出てそう
- 601 名前:デフォルトの名無しさん [2005/06/25(土) 09:59:34 ]
- >>595
すれ違い。 Lisperより
- 602 名前:595 mailto:sage [2005/06/25(土) 10:03:24 ]
- みなさんありがとうございます。これから試してみようと思います。
>599 flexを使ってます。bison側で「@x」と書けば、トークンの位置が取れると www1.kcn.ne.jp/~robe/pf/pf012.html に書いてあったんですがまだ試してません。yycharですか、ありがとうございます。 >600 YYERROR_VERBOSE は試してみました。多少わかりやすいエラーメッセージが yyerrorに与えられるようになったんですが、自動生成じゃなく自分でエラーメッセージを 決めたいんです(Cコンパイラが出すような)。 error は今のところトップレベルでやっちゃってるんで、 そこを文それぞれにもってかないとだめなんですね。
- 603 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 12:44:21 ]
- >>601
死ね。
- 604 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 19:51:54 ]
- >>601 ってなにもの?
Lisp 屋からみてもはずかすぃんだけど...
- 605 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:03:06 ]
- >>604
おまぃLisp屋を騙ってる素人だろ。 Lispはプログラムとしていきなり構文木書かせるから、 文法パーサ(yacc, bison, Rie)はイラネェ〜んだよ だから、「コンパイラ/スクリプトの話題に文法パーサはイラネェ」 プログラミングに精通してる人向けのジョークなんじゃねぇ? ;; あ、素人の人には判らない話だから、 ;; そこの人、ムキになって否定しないように・・・
- 606 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:06:14 ]
- よく分からんが、>>605 が素人だということはよく分かった
- 607 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:15:28 ]
- はいはい、わかったわかった(苦笑
- 608 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:16:27 ]
- まあ、大体はあってるんじゃないか。
全くいらないってわけじゃないが、他と比べて 簡単であることは間違いない。
- 609 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:19:30 ]
- 文法パーサ・ジェネレータは 使わない。
S式に関する文法は ある。 妙に関心してるのも出てくる始末(苦笑 素人相手にジョーク飛ばすのも大変だなぁ。
- 610 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:22:26 ]
- なるほど。
>>605 みたいにスーパーな Lisp 屋ならば、 SICP の超循環評価器なんてイラネェ〜んだろうな。
- 611 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:42:27 ]
- >>609
なんだ、お前は「文法パーサ」って言葉でツールの類を指してたのか。
- 612 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:49:41 ]
- 601でギャグを言ったつもりだったっぽいなw
- 613 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:50:45 ]
- yacc の検索結果のうち 日本語のページ 約 17,600 件中 1 - 10 件目 (0.15 秒)
構文解析器 の検索結果のうち 日本語のページ 約 10,200 件中 1 - 10 件目 (0.23 秒) パーサ の検索結果のうち 日本語のページ 約 53,700 件中 1 - 10 件目 (0.19 秒) パーザ の検索結果のうち 日本語のページ 約 8,720 件中 1 - 10 件目 (0.04 秒) 文法パーサ の検索結果のうち 日本語のページ 約 24 件中 1 - 5 件目 (0.22 秒)
- 614 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 22:58:59 ]
- 久しぶりにに揚足鶏取れたんで、大喜びか。
下らない人間だ
- 615 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 23:00:52 ]
- 「LALR文法パーサ」=構文パーサの一種
バカは覚えときな。
- 616 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 23:06:07 ]
- LALR文法パーサに該当するページが見つかりませんでした。
検索のヒント - キーワードに誤字・脱字がないか確かめてください。 - 違うキーワードを使ってみてください。 - より一般的な言葉を使ってみてください。 - キーワードの数を少なくしてみてください。
- 617 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 23:13:04 ]
- 荒らすなよ
- 618 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 23:14:09 ]
- Googleで検索できない単語は間違っていると信じている、
痛い素人が粘着しているな。哀れな奴
- 619 名前:デフォルトの名無しさん mailto:sage [2005/06/25(土) 23:27:41 ]
- 以前、LALR(1)の書籍orサイトを尋ねたものですが、
なかなかLALRのみっていうのは無いんですね。 ところで、皆さんはどうやって学習されましたか? 学習されたときの書籍とか覚えていましたら、教えて下さい。
- 620 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 00:25:28 ]
- >>604
おまぃLisp屋を騙ってる素人だろ。 Lispはプログラムとしていきなり構文木書かせるから、 文法パーサ(yacc, bison, Rie)はイラネェ〜んだよ だから、「コンパイラ/スクリプトの話題に文法パーサはイラネェ」 プログラミングに精通してる人向けのジョークなんじゃねぇ? ;; あ、素人の人には判らない話だから、 ;; そこの人、ムキになって否定しないように・・・
- 621 名前:デフォルトの名無しさん [2005/06/26(日) 00:31:50 ]
- >>620 が素人なのはよくわかった。
- 622 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 00:32:51 ]
- はいはい、わかったわかった(苦笑
- 623 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 00:34:45 ]
- 別に文法パーサって言葉自体はいいだろ。
ただし、yaccなどのジェネレータを「文法パーサ」と言ってしまってるから 誤解を生むってこと。 なお、googleで検索してる奴はほっとけ。
- 624 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 00:36:46 ]
- en.wikipedia.org/wiki/LALR_parser
- 625 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 00:38:46 ]
- >>624
で?w
- 626 名前:デフォルトの名無しさん [2005/06/26(日) 00:42:29 ]
- いいですか〜
yaccはパーサではありません。 yaccはパーサを作ってくれるものです。 はい、ここ!試験に出ますよ〜 良い子は覚えておきましょうねぇ〜
- 627 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 01:14:56 ]
- >>626
foo.yを解釈するパーサと言えなくもないけどな
- 628 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 01:41:04 ]
- 俺の頭はパッパラパーさ(parser)!
- 629 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 02:09:28 ]
- >>619
旧DragonBook。 あれを読んでたのは大学のころだな。みんなで輪講して、手でLR(0)itemを列 挙して、lookaheadを求めて、表を作成して…とかやった覚えがある。 ところで、LRパーサーの生成方法を知りたいの? それともyaccの使い方を知りたいの? 前者だったらやっぱりDragonBookを熟読。読んでるだけでは意味不明でも、 簡単な文法(足し算だけの電卓プログラムとか)のLR表を手で生成して みるとわかってくるよ。 後者ならO'Reilly本で足りるでしょう。
- 630 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 05:31:33 ]
- >>627
yacc全体をそうは言えない。パース以外の仕事もするから。
- 631 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 10:31:04 ]
- 「パーサ=構文解析器」だから「文法パーサ」って馬から落馬系じゃなければ
*.yなどの文法をパースするパーサのこと。 609の「文法パーサ・ジェネレータ」は「コンパイラ・コンパイラ・コンパイラ」って意味だな。
- 632 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 14:18:10 ]
- yaccは内部にパーサを持ってはいるんだろうけど、
lispはパーサが要らないんだ!って文章を強引に正しくするために それを持ち出すのは苦しすぎる。
- 633 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 14:21:07 ]
- yaccは、*.yをパースしたあと、その情報を使って
新たなパーサを作り出すツールであって、 ただ仕事の過程でパーサを使ってるだけ。 だから、yacc=パーサとは普通いわないし、誤解を生むだけ。 間違ってるといえるかもしれない。
- 634 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 21:28:17 ]
- yaccはパーサージェネレーターだろ
- 635 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 21:30:42 ]
- lisp にはパーサは要らないって言っているけど、
「んじゃパーサ無しでどうやってS式をパースするんだい」 って話になるんだけどどうしよう
- 636 名前:デフォルトの名無しさん [2005/06/26(日) 21:31:30 ]
- >>629
ちょっと横レスすまんが、 > 旧DragonBook。 って何?新ドラゴンってあるの? それとも21世紀本のこと? > 後者ならO'Reilly本で足りるでしょう。 どうだろうね。俺もその本持ってるけど、 あんまり役に立つとは思えないんだけど。
- 637 名前:デフォルトの名無しさん mailto:sage [2005/06/26(日) 23:05:19 ]
- 相変わらず変なのが粘着してるスレだな。
- 638 名前:デフォルトの名無しさん mailto:sage [2005/06/27(月) 00:20:14 ]
- >>636
初版は1977年、もう絶版だから今の若い人は知らんか。 Principles of Compiler Design Alfred V. Aho, Jeffrey D. Ullman Addison Wesley ISBN 0-201-00022-9 Amazonにも画像が無かったが、ぐぐってみたら www-users.cs.york.ac.uk/~susan/bib/nf/a/alfredvh.htm の上から二番目にあるな。
- 639 名前:デフォルトの名無しさん mailto:sage [2005/06/27(月) 04:44:46 ]
- ああ。その本なら随分前に培風館から出ていたな、Winston Lisp第一版と同じシリーズで
- 640 名前:636 mailto:sage [2005/06/27(月) 21:02:19 ]
- >>629
失礼いたしやした。 大変参考になりやした。 m(_ _)m
- 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 ってことですか?
|

|