- 1 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 20:49:02 ]
- プログラミング言語処理系の開発に興味のある人達のスレッドです。
字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,SSA変換, CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン, SIMD命令生成,VLIW向けクラスタリング,スクラッチメモリ向け最適化,リンク時最適化, JIT,動的バイナリ変換等の各種最適化,それにVM,GC,低消費電力化などなど。 意味論に関する話題も歓迎です。 過去スレ 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/ 6 pc8.2ch.net/test/read.cgi/tech/1115335709/ 7 pc8.2ch.net/test/read.cgi/tech/1129287390/ 8 pc8.2ch.net/test/read.cgi/tech/1131273918/ 9 pc8.2ch.net/test/read.cgi/tech/1135082582/ 10 pc8.2ch.net/test/read.cgi/tech/1146844753/ 11 pc11.2ch.net/test/read.cgi/tech/1160879890/ 12 pc11.2ch.net/test/read.cgi/tech/1188688416/ 関連リンクは多分 >>2-10 あたり
- 456 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 10:49:33 ]
- AND, OR, UNION等は再帰で定義するから木で表す。
- 457 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 11:25:21 ]
- >>455
その構文のインスタンスはツリーに出来る。 その構文そのものは再帰があってDAGになる。
- 458 名前:デフォルトの名無しさん [2009/09/17(木) 02:22:52 ]
- デザインパターンを駆使してコンパイラを自作しています。
・字句解析=Chain Of Responsibility ・構文解析=Interpreter のように作っていてうまくいっているのですが、 意味解析はどのパターンを使えばいいでしょうか? どこかのサイトでVisitorを使うとか見たような気がするのですが。
- 459 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 08:28:50 ]
- >>458
先に仕様があってそれから設計を施していくわけで、 手段と目的を混同しちゃいかん。 誰も君のコンパイラの設計がどうなってるのかなんて知らんだろ。
- 460 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 09:34:27 ]
- つか, 関数型言語なら別の選択あるだろうけど,
手続き型言語の場合, パーサジェネレータ使った方が 早い処理系ができるだろうに………
- 461 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 10:02:39 ]
- >>460
それは文法によるだろう。 言語処理系の書きやすさを第一に考えて言語を設計した場合、 手書きの再帰下降パーサでも十二分な速度が出ることはD言語などで実証されている。
- 462 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 10:08:28 ]
- Interpreterで構文解析っておかしいだろ
どういう設計なのか知らんがVisitorとInterpreterは相互変換できるからどっちかに統一するべき
- 463 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 12:13:30 ]
- 性能はむしろ手書きのパーサのほうが出る。
手書きパーサが不利で、パーサジェネレータが有利なのは以下のような点。 ・構文規則とアクションがすっきり分離させて記述できる ・LL(1) に収まらない文法を記述するためのテクニックに煩わされない ・規則をあれこれ変更するのが簡単 あと現代的なテクニックをかじりたいならパーサコンビネータライブラリとか使ってみたら?
- 464 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 17:32:14 ]
- Scalaの勉強していてパーサコンビネータを触っていたんだけど、
電卓の次に思い浮かぶ使い道がコンパイラとかインタプリタになってしまう。 その間ぐらいで、手ごろな練習のネタって無いものかなぁ?
- 465 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 18:49:33 ]
- >>464
発想の出発点を見直せば、その人なりのネタは見つけられると思うけどね。 自分だと、最近はRubyでツール作りする機会が多いから、そのコマンド引数 (サブコマンドやオプション指定の組み合わせ)を解釈するのにRaccを使うことがある。 他にも差分記述のある知識表現にPrologのDCGで簡単なDSL(ドメイン固有言語)を作ってみたり、 同じ発想で差分記述のできるテストデータ記述言語をRaccで記述したり。 極端な例だと、Webアプリのプロトタイプ開発で、画面遷移を制御するためにyaccを使い、 画面(フォーム)定義言語もyaccで実装するというマニアックな設計をしたことも。 要は「パーサ」イコール「言語処理系」という思い込みを捨て、単なる再帰的な データ構造の処理に適した「道具」にすぎないと考えれるのがいいのではないかと思う。
- 466 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 18:52:17 ]
- >>465
オレだったらそういう用途の処理用データはXMLやらYAMLやらで定義ちゃうだろうな。
- 467 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 19:15:33 ]
- >>465
おまえUNIX板のyacc&lexスレの>>120だろ
- 468 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 20:08:43 ]
- >>464
・ ラムダ式の使える関数電卓 ・ 文字列がメールアドレスとして正しいかチェックするプログラム(コメントのネストにも対応) ・ 装飾をネストできる独自Wiki ・ テンプレートエンジン
- 469 名前:465 mailto:sage [2009/09/17(木) 20:21:28 ]
- >>466
最初は同じ事を考えていたんだ。でも、自分一人で作る/使うぶんにはいいんだけど、 他のメンバが使う/使わせることを考えると、エラー処理(構文検査)も考えなけりゃならない。 XMLならDTDやRELAX-NG、YAMLならKawflyみたいなスキーマ定義が必要になる。 そこまでするくらいなら、汎用パーザを使うのがいいんじゃないかと、最終的に判断した。 パーザで適切な構文木さえ構築してしまえば、あとはVisitorパターンを駆使することで、 XMLでもYAMLでも(Latexでも....)出力形式の切り替えは簡単な処理で実現できるからね。 >>467 あたり
- 470 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 21:00:25 ]
- >>465
なるほど、使い道としては面白いですね。ちょうど今、コマンドライン解析のあたりやってるし。 でも、勉強としてやってるんで、これが正解ってのがあるほうがいいです。 仕様も自分で考えるんだと、パースしやすいような仕様にしてしまうんで。 >>468 メールアドレスって、foo@examples.comだけじゃなく、"foo" <foo@examples.com>, …のほうですよね。 それはやりがいがありそうなネタですね。
- 471 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 21:10:01 ]
- >>470
・PCRE(Perl 5 Compatible Regular Expression Library)の正規表現のパーズ。 ・POSIX shellの文法のパーズ。
- 472 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 23:33:28 ]
- >>462
Interpreterパターンって構文解析の為のパターンじゃないの?
- 473 名前:デフォルトの名無しさん mailto:sage [2009/09/17(木) 23:39:58 ]
- InterpreterはASTのノードに自分自身と子の評価を行う処理を直接埋め込むことで
ASTをそのまま実行するパターンだよ あらかじめ構文解析を行ってASTを作っておく必要がある
- 474 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 03:37:23 ]
- ja.wikipedia.org/wiki/%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3_%28%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%29
ウィキペディアには Interpreter パターン = 構文解析のために、文法規則を反映するクラス構造を作る。 って書いてあるんだけど。
- 475 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 04:51:05 ]
- デザインパターンとか大層なもんじゃないでしょ
- 476 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 05:27:58 ]
- Interpreterパターンが構文解析のために利用されるのは正しい表現だと思われ。
あらかじめ構文規則に沿ってオブジェクトを配置する必要があるのは事実だけど、 それは構文解析とは別の話しだし、(yaccみたいな)パーザジェネレータも同じだから。(>>473) 最近はデザインパターンから入る若者が多いから、ごっちゃにして考えやすいけどね。 まあ、デーザインパターンなんて大層なもんじゃないという意見に同意するよ。(>>775)
- 477 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 06:03:46 ]
- >>462=473=476?
君はたぶんいろいろと間違って理解してるからGOF本をしっかり読みなおした方がいいよ 確かにデザインパターンは大層なものじゃないとは思うが、間違った理解は周りの人を 混乱させてむしろ害悪だから
- 478 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 06:12:44 ]
- >>477
具体的にドゾー
- 479 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 06:44:13 ]
- >>478
>VisitorとInterpreterは相互変換できる できない VisitorとInterpreterでは全く目的が異なる >InterpreterはASTのノードに自分自身と子の評価を行う処理を直接埋め込むことで >ASTをそのまま実行するパターンだよ 処理を直接埋め込むこと、そのまま実行することは必須ではない (GOF本「実装」欄の2.を参照) >あらかじめ構文解析を行ってASTを作っておく必要がある ASTの生成方法までは定義されていないが、Interpreterパターンと言った場合、 (ASTを生成する)Clientオブジェクトもパターンの構成要素に含めて考える方が一般的 (GOF本「構成要素」欄と「実装」欄の1.を参照)
- 480 名前:476,478 mailto:sage [2009/09/19(土) 07:03:29 ]
- >>477
自分は>>462,473じゃないヨ >>479 まったく、その通りだね ところで、GOF本のアレをInterpreterパターンと呼ぶのはどう思うかな?>>all 自分にはインタプリタという言葉のニュアンスから違和感があるんだけど と、スレらしい話題に戻してみる
- 481 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 13:20:31 ]
- 逆。Parsingにinterpreter patternってのは単純な場合のみ。
ASTインスタンスの生成を行うのは、interpreter patternの仕事だけど、 (ASTインスタンス生成は解釈の特殊な形態の一つ) parsingそのものはInterpreter patternの仕事じゃない。 単純な例だと一体化しているので、混同しているケースが結構多い。 日本語版wikipediaの記述がその例。(これは古い英語版を元にしている) GoFより > The pattern doesn't address parsing. When the grammar is very complex, > other techniques (such as a parser) are more appropriate.
- 482 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 18:12:25 ]
- GOFの神格化進んでいるんだね。怖いね。
- 483 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 18:24:39 ]
- 必要以上に貶めている人がいるから
訂正してくれてるだけでしょ?
- 484 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 20:17:37 ]
- ヤレヤレ
- 485 名前:デフォルトの名無しさん [2009/09/23(水) 08:13:49 ]
- 形式言語と正規表現って別物ですか?
同じものですか?
- 486 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 08:33:39 ]
- >>485
正規表現は形式言語の一種である、という解釈でだいたい合っていると思う。 C言語はプログラミング言語の一種である、と同じ解釈ね。 あと、そういう言い方をするなら、正規表現ではなく正規言語だろうね。
- 487 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 08:48:28 ]
- 正規表現と正規言語は別のものだが?
- 488 名前:デフォルトの名無しさん [2009/09/23(水) 09:02:34 ]
- 正規表現と正規言語と正規文法はどういう関係ですか?
コンパイラの理論の基になっているのは生成文法なんですか? もし、チョムスキーが生成文法を発表しなかった世界があったら その世界で使われているコンパイラはどんな物だと思いますか? COBOLとFORTRUNとlispですか?
- 489 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 09:11:11 ]
- ちったあ自分で調べろ
- 490 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 10:16:49 ]
- 古い変な本しか手に入らないか
周囲に変なことを吹き込む人がいるか 釣りか なんにせよ調べる気はあるまい
- 491 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 10:20:38 ]
- それにしてもチョムスキーのこんな持ち上げ方って久々に見たw
- 492 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 10:22:29 ]
- 調べる=知ってる人に聞く
じゃないの? 本やネットってゴミ情報が多すぎて 知りたい情報にたどりつくまで 手間と時間がかかりすぎるからさ 知ってる人にズバリ答えてもらうのが一番なのよ
- 493 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 10:36:03 ]
- チョムスキー理論の理解こそが自然言語処理実現の第一歩だぁー!!と
必死になって文献を読みあさっていた、過去の自分を思い出すw
- 494 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 11:51:45 ]
- 文字列が長すぎて
strlen()が'\0'にたどりつくまで 手間と時間がかかりすぎる って話を思い出した
- 495 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 15:01:14 ]
- こんなこと如きで他人に苦労させるなカス >488
自分で勉強するつもりが無いのならこんなスレ覗くなボケ ttp://www.bing.com/search?q=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE%E3%81%A8%E6%AD%A3%E8%A6%8F%E8%A8%80%E8%AA%9E%E3%81%A8%E6%AD%A3%E8%A6%8F%E6%96%87%E6%B3%95&FORM=ADDLVD&src= ttp://www.google.co.jp/search?q=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE%E3%81%A8%E6%AD%A3%E8%A6%8F%E8%A8%80%E8%AA%9E%E3%81%A8%E6%AD%A3%E8%A6%8F%E6%96%87%E6%B3%95&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 496 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 15:05:34 ]
- と思ったが、最後のは少し興味あるな。
チョムスキーが発表しなくても、同様の概念(TMとか再帰とか翻訳とか形式体系とか)はあるから 結局は同じようなものに落ち着くような気がする。
- 497 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 15:43:24 ]
- BNF自体はチョムスキーの発明でもないしな
- 498 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 15:56:41 ]
- インド人だっけ?凄いよね。
- 499 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 16:02:39 ]
- 誰がインド人?
- 500 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 16:06:52 ]
- っ ttp://ja.wikipedia.org/wiki/%E3%83%91%E3%83%BC%E3%83%8B%E3%83%8B
- 501 名前:デフォルトの名無しさん [2009/09/23(水) 17:21:39 ]
- 大体が↓のような感じで構文解析までが行われると思うのですが、
ソースコード → 字句解析 → トークンリスト → 構文解析 → 構文木 トークンリストはトークンクラスのリストと表せますが、 構文木はどのような形になると思いますか?
- 502 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 17:36:26 ]
- 構文要素クラスの木構造
- 503 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 17:38:26 ]
- 開始記号クラスかな
- 504 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 17:45:32 ]
- このあいだまでは「パニーニ」と表記してた気がするが、最近は「パーニニ」なのか。
昔インド人の先生に尋ねたら俺の耳にはパニニーと聞こえたが。 てかBNFはバッカス(と、本人はあまり乗り気でないようだがナウア)の功績だろ一応はやっぱ。
- 505 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 20:01:10 ]
- インド人の発音は独特だから
- 506 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 00:29:14 ]
- 日本人の発音の方がはるかに独特です
- 507 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 00:35:57 ]
- かもしれぬ
インド人と言っても様々だ が、日本人がインド人の発音を聴き取るのは慣れないと無理 驚くというか途方に暮れるぞ
- 508 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 01:41:42 ]
- 詳しく!
- 509 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 02:38:16 ]
- >>507
そこでインド人を右へ
- 510 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 05:56:31 ]
- なるほど。たしかみてみよう
- 511 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 14:00:01 ]
- 確かめた結果、
ザンギュラのスーパーウリアッ上 でした
- 512 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 14:23:33 ]
- ダトル・オブ・ぷよぷよ
- 513 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 20:00:42 ]
- ゆとり教育は嘆かわしい。
中学生の息子の机に数学のノートが開いていた。 なんと、数式にビックリマークを付けて遊んでいた。 出てくる数字はほとんどが1桁の整数のかけ算。 しかも答が間違ってる。 小学校の九九の復習にもなってない。 本当に嘆かわしい...。
- 514 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 20:16:35 ]
- >>513
ゆとり教育でなければ九九ができるようになるはずだという発想がすでにおかしい 人任せにしてないで、自分で教えてあげたら? 多分、どっかでつまずいてそのままになってるんだと思うよ。
- 515 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 20:22:54 ]
- >>514
ネタにマジレス、カコワルイ。 ここは息子インタプリタが自然数の階乗をパースして計算していると考えるんだ。
- 516 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 21:06:42 ]
- ネタだと気付かないところがすでにおかしい
- 517 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 22:11:00 ]
- 不思議なインド人に対抗するには
九九じゃなくて二五六二五六やらせるべき
- 518 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 22:30:37 ]
- >>513を読んで想像すべきだった状況の例
3!×5!=720
- 519 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 22:40:00 ]
- >>513って親がゆとり世代だった、ってオチ?
- 520 名前:デフォルトの名無しさん mailto:sage [2009/09/25(金) 22:40:49 ]
- 階乗は習ってねーや
- 521 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 00:53:30 ]
- 「ジョークを解説するのはカエルを解剖するのと似ている。
解剖されたカエルには誰も興味を示さないし、カエルは死ぬ」
- 522 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 01:15:17 ]
- なんかえらく主観的な格言だなぁ
説得力のある文体に騙されそうになるけど
- 523 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 01:25:10 ]
- 解剖したカエルは、フランス人スタッフがおいしく頂きました。
- 524 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 08:36:52 ]
- 最初からコンテキストもなにもなしにジョークを投下するやつが悪い
- 525 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 23:45:56 ]
- antlrworksで正規表現の
[0-9]{1,16} ってどうやって書けばいいの?
- 526 名前:デフォルトの名無しさん [2009/09/27(日) 04:32:51 ]
- 日本ではコンパイラの研究ってあんまはやってないの?
有名な研究室ってどこ?
- 527 名前:デフォルトの名無しさん mailto:sage [2009/09/27(日) 09:31:33 ]
- >>526
コンパイラ site:ac.jp で検索してみるとか。
- 528 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 23:19:37 ]
- タイガーブックの最新版ってどうよ?
今月末に出るけど
- 529 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 20:43:42 ]
- どうよ?だと?
自分で買ってきて報告しろやヴぉけ
- 530 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 22:48:49 ]
- 無駄無駄
どうよ?厨はいつだって人から貰うだけ
- 531 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 00:06:04 ]
- 俺の上腕二頭筋どうよ?
- 532 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 00:14:32 ]
- すごく・・・ぷよぷよです・・・
- 533 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 05:55:58 ]
- タイガーブックがついに邦訳されて今月末に出版されるよ
- 534 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 07:23:00 ]
- 無駄無駄
されるよ?厨はいつだって人から貰うだけ
- 535 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 12:42:47 ]
- preccsより腐ってない
フリーのプロトコルコンパイラ知りませんか?
- 536 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 14:04:03 ]
- 尻いりませんか?だと?
いいのかい?ホイホイ突いちまって
- 537 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 14:39:57 ]
- >>535
preccsのドコが腐っていると感じたのかな? 自分は初見だったのでググってみて、CSPというかOccamの実装という印象を持った。 そのうえで、予想される「腐って」いそうな点をあげてみる。(実際には触っていないヨ) ・コンパイラの実装がバグだらけ ・マルチスレッディングに対応していない ・デバッグが難しい ・プロトコル記述(状態遷移)が直感的ではない ・メッセージ処理機能が不十分 ・プロトコル定義の網羅性に欠ける あと、このスレよりもネットワークプログラミングスレ向きな話題かも。 このスレだと「自分の好みに合ったコンパイラを作れ!」なレスが中心になってしまう気がする。
- 538 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 04:03:23 ]
- 実質パーサの話題に終始してるがな
コンパイラですらない インタプリタでもない
- 539 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 10:59:49 ]
- じゃ、話題の提供ヨロシク
- 540 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 13:04:03 ]
- Pythonでコマンドを作って、
自作のスクリプトでそのコマンドを呼び出すという仕組みで処理系を構築してる。 すでにある程度動いてるんだが、 現状手動で作成してるコマンドの一覧をPythonのプログラム側からどうやって吐き出そうかなと考えているところ。 sed/awkあたりで簡単に切り貼りできるような形式を用意できるといいかなぁ。 できればコマンドのマニュアルも一緒に生成できるといいんだが。 現在固定になってるコマンド一覧は実際にはXMLファイルで、 コンパイラがデシリアライズの形で一括で読み込める仕組みにしている。 XMLを手作業で編集するのはしんどいので、シリアライズで書き出す簡単なプログラムを用意して、それを毎回手で編集してる。
- 541 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 13:38:45 ]
- >>540
JavaDocみたいに定型のコメントを書くのはどうですか?
- 542 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 14:02:58 ]
- pydoc
- 543 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 12:51:07 ]
- 実装には命令型言語より関数型言語の方が向いているのかな
Pugsが出てからずいぶん経つのにPerl6まだ出ない
- 544 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 13:45:27 ]
- >>543
そんな漠然としたレベルの話だと、好みでとしかいいようがないんじゃ。 ただ、Haskellの論理的な記述能力は空恐ろしいものがあるな。 例えばYAMLパーサのリファレンス実装はHaskell製だ。 HTMLの仕様書用意されてはいるが仕様の詳細までは網羅されておらず、参考程度にしかならない。 で、ソースコードみてみたら、ほとんどBNF式そのまんま。 これをネイティブで解釈するんかHaskellは……。
- 545 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 13:51:06 ]
- 再帰下降パーザを書くのに関数型言語は合ってると思う
パーザ以外の部分は知らん
- 546 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 22:35:37 ]
- Haskellは新しく演算子をユーザ定義できるからな。
優先順位を付けて。それが例えinfixでも。 出来る奴が書いたコードの記述力は破壊的。 Parser Combinatorの発明は、奴等ならではだろう。
- 547 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 22:44:43 ]
- >>546
> Haskellは新しく演算子をユーザ定義できるからな。 > 優先順位を付けて。それが例えinfixでも。 それPrologでもできるよ。何十年も前から
- 548 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 23:00:45 ]
- PrologのDCGはBNFそのものだしな。
単純にパーザ記述の容易さを比較するならPrologに軍配があがる。
- 549 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 01:01:43 ]
- 間を取ってLISPだな
そのままLISPの処理系速度で実行できるし
- 550 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 06:15:44 ]
- RubyとHaskellがベスト
- 551 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 07:25:05 ]
- noop
- 552 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 07:28:15 ]
- Ocamlが至高
ほかは糞
- 553 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 08:38:22 ]
- Ocamlなぁ。
こんどはOcamlでスクリプティングやってみるかなぁ。 静的型付言語の割りにコンパイラが賢いので 人間はあまり型を気にする必要がないというところがよさげだな。
- 554 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 10:28:43 ]
- >>548
DCGはいいものだったけど、 元になっているPrologが独自すぎて流行らなかったな。 一時はちょっとややこしい構文解析はDCGの独壇場だったのに。
- 555 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 13:25:28 ]
- >>554
スレ違いになるけど、Prologがブームだった頃「PrologはAI言語である」みたいな解釈の 説明が多かったため、AIブームの終焉と一緒にPrologへの関心も冷めてしまったように 感じてる。Prologなんて記号処理言語の一つで、「道具」にしかすぎないはずなのに。 DCGが自然言語研究の中から生まれたのは事実だけど、パーザ記述向けの「道具」として、 今でも有効に活用できるものだと思う。固定観念さえ捨てることができれば....。 とりあえず、Prologによるコンパイラ開発に興味を持った人向けに書籍を紹介する。 ・Prologの技芸, L.Sterling&E.Sharpiro著, 共立出版 Prolog中級者向けの内容で、全体で557ページ、DCGには12ページ、コンパイラ(構文解析/ コード生成/アセンブラ)に関しては24ページが割り当てられている。
- 556 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 13:50:43 ]
- 昔、Prologで簡単なBASICインタプリタをちょこちょこっと作る話が
載ってるウェブページあったなぁ。
|

|