「コンパイラ・スクリプトエンジン」相談室16 (649レス)
1-

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に何の関係が?
212: 2015/03/09(月)16:12 ID:J8WIpDef(1) AAS
いただきジャンガリアンに辛酸をなめさせられたのだろうよ
213: 2015/03/09(月)17:25 ID:VM1FVYaf(1) AAS
うーん初心者だから言い方わかんないんだけど
コマンドプロンプトのスクリプトってコマンドに従って単に実行していくだけだよね
でもwinだと実行されるのは素直に考えるとメッセージが来たとき
cでウインアプリつくるときはメッセージ毎に処理を書くけど上から順に読むスクリプトは
それはできないわけだからどう整合性取るのかなってことで悩んでた

結局メッセージ毎にリストがあってコマンドを読んだらそのリストに関数ポインタ名で追加、
メッセージ毎に呼ばれる関数はその種別のリストを上から順に実行していく
こんな感じで作ったけどこれでいいのかな
214: 2015/03/12(木)21:28 ID:BlO2EFmA(1) AAS
そりゃ文法じゃなくて実行モデルだな。
イベント駆動ってことでしょ。
215: 2015/04/13(月)21:09 ID:qtTodoaL(1) AAS
「Cのコンパイラなら何日かかけて作っても良いが、C++は、一人で
作るのは嫌だ。文法をきちんとカバーするのに日数がかかりすぎるから」
と言われたよ。
216
(1): 2015/04/22(水)02:22 ID:eOWj6Ffd(1/3) AAS
javaに近い構文の言語をつくろうとしてるんだけど、
ようやくchar配列に変換したソースから関数の外側を構文解析できた。

山括弧<>、文字列リテラル、コメントに気をつけつつ、
なんとか関数の中を無視してクラス・変数・関数の名前や型名を取得して
関数の中身にとりかかるところ。

関数の中身は丸括弧()が難関になりそう。
AAAA bbbb = ((HHHH)cccc.dddd.eeee(ffff.gggg(), jjjj)).iiii();
bbbb.kkkk = -10/(8-3)-9/-3
217
(1): 2015/04/22(水)20:33 ID:rBARkljm(1) AAS
>>216
まるで違う言語に見えてしまうのだが。
218: 2015/04/22(水)21:30 ID:eOWj6Ffd(2/3) AAS
>>217
最初はクラス名、メンバ変数、メンバ関数を全部調べてからじゃないと
関数の中身に取り掛かれないと思ってた。

でもクラス名・変数名・関数名に区別は不要で、記号をヒントに階層を分解して、
それから型名の存在の有無・整合性を調べるという風にフェーズを分けれそう。

でも()が演算の優先順位、型キャスト、メソッド...どれに使われているのか
区別できるかは不安。for文とかは最初に予約語が入るからやりやすそうだけど。

Person person = ((Factory)group.cache.getFactory(provider.getResource(), url)).create();
person.id = -10/(8-3)-9/-3;
219
(1): 2015/04/22(水)22:59 ID:LKLiXgla(1) AAS
いまいち分からないけど、識別子の次にあったら関数呼び出しで
それ以外は式とかでいけないの
220: 2015/04/22(水)23:28 ID:eOWj6Ffd(3/3) AAS
いけるか分からない。とりあえずやってみるってところ
221: 2015/04/23(木)08:14 ID:+O6VWDUu(1) AAS
>>219
構文次第
てか、普通識別子に続くカッコを見て初めて関数/メソッドってわかるわけだし
222: 2015/04/27(月)01:02 ID:RiYFohCl(1/2) AAS
メソッドの中が上手くいかんというか何から始めたら良いのか分からん
コンパイル速度が遅くなるけど、分解フェーズを何層にも分けて
何度もループで調べていけば良いのかな
1-
あと 427 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.010s