「コンパイラ・スクリプトエンジン」相談室16 (649レス)
上下前次1-新
182(1): 片山博文MZ ◆T6xkBnTXz7B0 2015/02/18(水)16:40 ID:9VF3MRJc(1/2) AAS
C++11の正規表現でCのスキャナーをスマートに書きたい。
しかし、コメントの扱いがややこしく、また、行番号の情報を取得する必要がある。
一行ごとに読み込むべきか、従来どおりトークンに切り分けて読み込むべきか。
全部をいっぺんに読み込んで'\n'でsplitする方法は実行時のメモリーと時間がかかると思う。
どういう戦略にすべきか?
183: 片山博文MZ ◆T6xkBnTXz7B0 2015/02/18(水)17:03 ID:9VF3MRJc(2/2) AAS
改行に特別なトークンを割り当てて、すべてのトークンを読み
込んだ後でトークンに行番号をつけてから改行のトークンを取り除くという
方法についてはどう思いますか?
184: 2015/02/18(水)21:19 ID:po3oOzQK(1) AAS
Cってマクロとかインクルードとか有るん?
185: 片山博文MZ ◆T6xkBnTXz7B0 2015/02/19(木)01:08 ID:XXveEoOV(1) AAS
マクロやインクルードは、プリプロセッサーがやってくれるよ
186: 2015/02/19(木)12:19 ID:b9Ke1XGw(1) AAS
プリプロセッサーの展開後の行番号って要るのかね?
187: 2015/02/19(木)19:51 ID:rp3PUwqb(1) AAS
無かったらエラー表示するとき不便だろ
188: 2015/02/19(木)21:27 ID:wg16DBik(1) AAS
展開後の行番号の方がいらなくね?
プリプロセッサ文てコンパイラ側でも処理するよね?
#line とか
189: 2015/02/19(木)21:31 ID:uOq48O3O(1) AAS
コメントはプリプロセサで置き換えたらいかんのか
190: 2015/02/21(土)01:08 ID:XnZFjwve(1) AAS
SmalltalkのVM上にJavaVMを構築してんだけど、
VMの話もここで良いんだよね。
191(1): 2015/02/21(土)12:59 ID:eVOI8zE3(1) AAS
OK
192(1): 2015/02/21(土)23:58 ID:bst4VCEg(1) AAS
>>182
Cのスキャナって正規表現だけで表現できるんか?(構文解析しないで良いエディタのhilightingとかは大丈夫だけど)
193(1): 2015/02/22(日)01:27 ID:0QFgdJ2i(1) AAS
>>191
了解。
SmalltalkのVM上でDalvik VM用のclassも動かしたいんですが、
いちいちDalvik用のVMまで作るのがメンドイです。
Dalvik用のclass形式からJavaVM用のclass形式に変換するオススメのLibraryを教えて下さい。
Libraryの言語はSmalltalkに書き直しますので何でもいいです。
194: 2015/02/23(月)17:30 ID:FikKUZMK(1/3) AAS
>>192
scannerってlexerの一部。
lexer=scanner+tokenizer
195: 2015/02/23(月)17:38 ID:FikKUZMK(2/3) AAS
>>193
JEBはDalvikのdecompilerだから、コンパイルすればJVMのbytecodeに出来る。
外部リンク:www.pnfsoftware.com
196: 2015/02/23(月)17:41 ID:FikKUZMK(3/3) AAS
javaで書いたDalvikのVM
外部リンク[html]:www.eflow.jp
197(1): 2015/02/23(月)22:14 ID:Fe2dvIpV(1) AAS
C++で完結するって所に惹かれてboost::spiritを試してみたが…、これは死ねる。
198(2): 2015/02/24(火)01:43 ID:f8A7qwV2(1) AAS
共通部分式の除去のやり方がわかんねえ
定数伝播、四則演算も含む組み込み関数の畳み込み、使わない変数の除去、
ループ展開等を同じパスでやってるんだけど
共通部分式の除去とそれをやるのに必要な不変式の判定はまた別でやった方がいいのかな
不変式かどうかはループ最適化でも使えそうなんだけど混乱してきた
199(1): 片山博文MZ ◆T6xkBnTXz7B0 2015/02/24(火)08:04 ID:UGr8Bbp/(1/2) AAS
>>198
ある計算式eについて、eの部分式を互いに参照するエントリーとして再帰的にテーブルに登録する。
登録するときにソートと重複チェックを行えば、テーブルは一意化できる。
テーブルの各エントリーの参照構造は、木構造のノードを成す。
200(1): 2015/02/24(火)11:33 ID:wemgVVUb(1/2) AAS
>>198
式の属性に関する再帰方程式の近似解をニュートン法のように求めること、
これがデータフロー計算解法の本質と理解できてないんじゃない?
ドラゴンブックのavailable, killedの説明の所読んでみれば?
同じパス内でループしながら収束するまで計算するのよ。
201: 2015/02/24(火)11:35 ID:wemgVVUb(2/2) AAS
ドラゴンブックのどの節か書こうとしたけど本が見つからない...
とりあえず、ここのp.10から。
外部リンク[pdf]:dragonbook.stanford.edu
202: 2015/02/24(火)17:44 ID:H95vOz7j(1/2) AAS
>>199
そのテーブルに式を入れるときその式が不変かどうかを判断する部分でわからなくなってくる
>>200
ほとんど読んでないドラゴンブック見たら最適化部分についても書いてるな
これ読むの辛いな
頑張って読んで出直すか
203: 2015/02/24(火)17:53 ID:avE+zAm1(1) AAS
多分ちゃんと読んだ方がかえって早い。
共通部分式A,Bがあって、例えばBの方の除去をやると、
Bの到達性がAの到達性にも付与される。
このことは他の属性に影響を及ぼしうる。
よってもう一度計算をしないとより正確な属性を求められない。
以下ループ。
よって収束するまで繰り返すことになる。
204: 2015/02/24(火)18:04 ID:H95vOz7j(2/2) AAS
変化がなくなるまで最適化処理を繰り返すのはわかった
205: 2015/02/24(火)19:26 ID:wUDy2moe(1) AAS
>>197
コンパイル時間がか?
206: 片山博文MZ ◆T6xkBnTXz7B0 2015/02/24(火)20:45 ID:UGr8Bbp/(2/2) AAS
__declspecとか__attribute__などをパースできないと正確な構造体型のサイズ
を求めることができない。しかしattribute周りの文法がメチャクチャやなあ。
207: 片山博文MZ ◆T6xkBnTXz7B0 2015/03/03(火)01:05 ID:t6l1EelO(1) AAS
次は"typed value"の扱いだな。定数にも型がある。型付きの値を
扱えなければ、正確な定数値を求めることはできない。
208: 2015/03/03(火)04:49 ID:ZU1MaIS8(1) AAS
最適化なんてイラナイよね、何処まで処理系に依存する気なんだよw
209: 2015/03/08(日)14:52 ID:u8r5MR2m(1) AAS
初心者だがHSPって凄いね
自分でHSPみたいなの作ろうとすると途端につまづくw
内部でメッセージハンドルに登録していく言語だと思うんだけど
こんなにwinを感じさせない文法でwinと親和性高く作れるとは
210: 2015/03/08(日)17:15 ID:8c6PRT7L(1) AAS
ランタイムの機能の量で躓くならともかくあの文法でつまづくなら>>1で概要把握して本読めば
211: 2015/03/09(月)14:52 ID:MIZIuI1f(1) AAS
文法とOSに何の関係が?
上下前次1-新書関写板覧索設栞歴
あと 438 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.010s