[表示 : 全て 最新50 1-99 2chのread.cgiへ]
Update time : 12/16 01:36 / Filesize : 9 KB / Number-of Response : 36
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

パーサーとか構文解析とかその他もろもろ



1 名前:デフォルトの名無しさん [2010/01/08(金) 23:32:50 ]
最近仕事でチョいとしたパーサーを何度も作るはめになりました。
パーサー技術、実装、ちょっとした技、そのたいろいろ教えてください。

じゃ

20 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 07:53:01 ]
「コンパイラ・スクリプトエンジン」相談室14
pc12.2ch.net/test/read.cgi/tech/1258431145/l50

21 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 13:29:12 ]
wikipediaからのリンク失敗する男の人って

ja.wikipedia.org/wiki/%E5%86%8D%E5%B8%B0%E4%B8%8B%E9%99%8D%E6%A7%8B%E6%96%87%E8%A7%A3%E6%9E%90

22 名前:デフォルトの名無しさん mailto:sage [2010/01/09(土) 13:38:14 ]
てか >>20 のスレでやれよ。
ここまでレス付いちゃうと即死では dat 落ちしないかな。
重複で削除依頼するか。

23 名前:デフォルトの名無しさん [2010/01/09(土) 18:44:30 ]
>>19
spiritはやめたほうが良い。
理由は単純にビルドが重いから。

24 名前:デフォルトの名無しさん mailto:sage [2010/01/11(月) 18:48:25 ]
>>20 コンパイラ スクリプトエンジンとはべつものだろ、ばかかおまえらwwwwww

25 名前:デフォルトの名無しさん [2010/01/11(月) 22:32:05 ]
とりあえずパーサを書くには
1.パーサジェネレータなり自分で書くなりして、コードを抽象構文木に変換する
2.その抽象構文木を処理したりバイトコードに変換する
という行程を踏めばいいのはわかった。

で、どこにも聞けないんで聞くんだが…
抽象構文木?AST?ってなに?データ型なの?

26 名前:デフォルトの名無しさん mailto:sage [2010/01/12(火) 10:07:48 ]
データ型として定義もできる。
とにかくコードを特定の言語で処理できる抽象構文木にさえできれば
後はその言語でその抽象構文木を操作するプログラムを書けばいいだけ

27 名前:デフォルトの名無しさん [2010/01/13(水) 01:04:52 ]
antlrがもっともお勧め、LRパーサーはもはや遺物

28 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 12:02:12 ]
最近はやってるなANTLR
LALR(1)とLL(k)って実用性としてはどう違うんだ
PerlとかC++はLALR(1)でパースできないと聞いたが



29 名前:デフォルトの名無しさん mailto:sage [2010/01/13(水) 16:47:20 ]
このスレはパーサーとか構文解析のスレです

抽象構文木をどう扱うかの話はスレ違いですので、>>20 のスレでやってください

30 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 08:15:10 ]
いやです。ASTの話題はパーサーの中心的な話題です

31 名前:デフォルトの名無しさん mailto:sage [2010/01/14(木) 12:58:44 ]
関数型言語だとパーサって作りやすいんだよね?
なんか、このページ
diaspar.jp/node/236
に手入力でASTを作成して処理ってコードがいくつかあるけれど、
これの見た目でLispみたいな、Scalaのとこだと
Add(Number(5), Sub(Number(7), Number(9)))
が抽象構文木ってことでいいんだろうか…


32 名前:デフォルトの名無しさん [2010/01/14(木) 22:19:43 ]
>>31 そうですぼくもそれが抽象構文木だと思ってます。

でですよ、自分で勝手に決めた文法から、こういう抽象構文木をぱぱって作ってくれるパーサー
をあっという間に作ってくれるパーサージェネレーターがほしいんですよ。

yacc/lexとか、javaCCとかまじいらつくんで、もっといいのないんですか?

たんにASTと作りたいだけなのに、どんだけ頭つかわして、コードかかせてんだよ!ってかんじですねw

33 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 00:15:21 ]
>>31
だってLispは抽象構文木をそのままプログラミング言語に
したものだし

34 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 05:02:05 ]
>>31
関数型言語は、型名(クラス名)、コンストラクタ名、印字表現名が一致しているのが伝統的で、後者二つにはディホォールト実装がある。だからプロトタイプ実装に強い。

ただ、デバッガサポート、エラー処理やろうとすると、ディフォールト実装のままではどうにもならない。


35 名前:デフォルトの名無しさん mailto:sage [2010/01/15(金) 08:32:14 ]
>>31
パターンマッチ最強だなw






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<9KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef