「コンパイラ・スクリプトエンジン」相談室16 (649レス)
「コンパイラ・スクリプトエンジン」相談室16 http://mevius.5ch.net/test/read.cgi/tech/1405822579/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
202: デフォルトの名無しさん [sage] 2015/02/24(火) 17:44:49.00 ID:H95vOz7j >>199 そのテーブルに式を入れるときその式が不変かどうかを判断する部分でわからなくなってくる >>200 ほとんど読んでないドラゴンブック見たら最適化部分についても書いてるな これ読むの辛いな 頑張って読んで出直すか http://mevius.5ch.net/test/read.cgi/tech/1405822579/202
203: デフォルトの名無しさん [] 2015/02/24(火) 17:53:23.22 ID:avE+zAm1 多分ちゃんと読んだ方がかえって早い。 共通部分式A,Bがあって、例えばBの方の除去をやると、 Bの到達性がAの到達性にも付与される。 このことは他の属性に影響を及ぼしうる。 よってもう一度計算をしないとより正確な属性を求められない。 以下ループ。 よって収束するまで繰り返すことになる。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/203
204: デフォルトの名無しさん [sage] 2015/02/24(火) 18:04:39.54 ID:H95vOz7j 変化がなくなるまで最適化処理を繰り返すのはわかった http://mevius.5ch.net/test/read.cgi/tech/1405822579/204
205: デフォルトの名無しさん [sage] 2015/02/24(火) 19:26:42.04 ID:wUDy2moe >>197 コンパイル時間がか? http://mevius.5ch.net/test/read.cgi/tech/1405822579/205
206: 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2015/02/24(火) 20:45:40.84 ID:UGr8Bbp/ __declspecとか__attribute__などをパースできないと正確な構造体型のサイズ を求めることができない。しかしattribute周りの文法がメチャクチャやなあ。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/206
207: 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2015/03/03(火) 01:05:04.60 ID:t6l1EelO 次は"typed value"の扱いだな。定数にも型がある。型付きの値を 扱えなければ、正確な定数値を求めることはできない。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/207
208: デフォルトの名無しさん [sage] 2015/03/03(火) 04:49:45.03 ID:ZU1MaIS8 最適化なんてイラナイよね、何処まで処理系に依存する気なんだよw http://mevius.5ch.net/test/read.cgi/tech/1405822579/208
209: デフォルトの名無しさん [sage] 2015/03/08(日) 14:52:45.39 ID:u8r5MR2m 初心者だがHSPって凄いね 自分でHSPみたいなの作ろうとすると途端につまづくw 内部でメッセージハンドルに登録していく言語だと思うんだけど こんなにwinを感じさせない文法でwinと親和性高く作れるとは http://mevius.5ch.net/test/read.cgi/tech/1405822579/209
210: デフォルトの名無しさん [sage] 2015/03/08(日) 17:15:18.44 ID:8c6PRT7L ランタイムの機能の量で躓くならともかくあの文法でつまづくなら>>1で概要把握して本読めば http://mevius.5ch.net/test/read.cgi/tech/1405822579/210
211: デフォルトの名無しさん [] 2015/03/09(月) 14:52:03.75 ID:MIZIuI1f 文法とOSに何の関係が? http://mevius.5ch.net/test/read.cgi/tech/1405822579/211
212: デフォルトの名無しさん [sage] 2015/03/09(月) 16:12:25.65 ID:J8WIpDef いただきジャンガリアンに辛酸をなめさせられたのだろうよ http://mevius.5ch.net/test/read.cgi/tech/1405822579/212
213: デフォルトの名無しさん [sage] 2015/03/09(月) 17:25:40.74 ID:VM1FVYaf うーん初心者だから言い方わかんないんだけど コマンドプロンプトのスクリプトってコマンドに従って単に実行していくだけだよね でもwinだと実行されるのは素直に考えるとメッセージが来たとき cでウインアプリつくるときはメッセージ毎に処理を書くけど上から順に読むスクリプトは それはできないわけだからどう整合性取るのかなってことで悩んでた 結局メッセージ毎にリストがあってコマンドを読んだらそのリストに関数ポインタ名で追加、 メッセージ毎に呼ばれる関数はその種別のリストを上から順に実行していく こんな感じで作ったけどこれでいいのかな http://mevius.5ch.net/test/read.cgi/tech/1405822579/213
214: デフォルトの名無しさん [] 2015/03/12(木) 21:28:48.21 ID:BlO2EFmA そりゃ文法じゃなくて実行モデルだな。 イベント駆動ってことでしょ。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/214
215: デフォルトの名無しさん [] 2015/04/13(月) 21:09:38.60 ID:qtTodoaL 「Cのコンパイラなら何日かかけて作っても良いが、C++は、一人で 作るのは嫌だ。文法をきちんとカバーするのに日数がかかりすぎるから」 と言われたよ。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/215
216: デフォルトの名無しさん [sage] 2015/04/22(水) 02:22:50.19 ID:eOWj6Ffd javaに近い構文の言語をつくろうとしてるんだけど、 ようやくchar配列に変換したソースから関数の外側を構文解析できた。 山括弧<>、文字列リテラル、コメントに気をつけつつ、 なんとか関数の中を無視してクラス・変数・関数の名前や型名を取得して 関数の中身にとりかかるところ。 関数の中身は丸括弧()が難関になりそう。 AAAA bbbb = ((HHHH)cccc.dddd.eeee(ffff.gggg(), jjjj)).iiii(); bbbb.kkkk = -10/(8-3)-9/-3 http://mevius.5ch.net/test/read.cgi/tech/1405822579/216
217: デフォルトの名無しさん [] 2015/04/22(水) 20:33:48.48 ID:rBARkljm >>216 まるで違う言語に見えてしまうのだが。 http://mevius.5ch.net/test/read.cgi/tech/1405822579/217
218: デフォルトの名無しさん [sage] 2015/04/22(水) 21:30:55.14 ID:eOWj6Ffd >>217 最初はクラス名、メンバ変数、メンバ関数を全部調べてからじゃないと 関数の中身に取り掛かれないと思ってた。 でもクラス名・変数名・関数名に区別は不要で、記号をヒントに階層を分解して、 それから型名の存在の有無・整合性を調べるという風にフェーズを分けれそう。 でも()が演算の優先順位、型キャスト、メソッド...どれに使われているのか 区別できるかは不安。for文とかは最初に予約語が入るからやりやすそうだけど。 Person person = ((Factory)group.cache.getFactory(provider.getResource(), url)).create(); person.id = -10/(8-3)-9/-3; http://mevius.5ch.net/test/read.cgi/tech/1405822579/218
219: デフォルトの名無しさん [sage] 2015/04/22(水) 22:59:19.66 ID:LKLiXgla いまいち分からないけど、識別子の次にあったら関数呼び出しで それ以外は式とかでいけないの http://mevius.5ch.net/test/read.cgi/tech/1405822579/219
220: デフォルトの名無しさん [sage] 2015/04/22(水) 23:28:51.38 ID:eOWj6Ffd いけるか分からない。とりあえずやってみるってところ http://mevius.5ch.net/test/read.cgi/tech/1405822579/220
221: デフォルトの名無しさん [sage] 2015/04/23(木) 08:14:58.39 ID:+O6VWDUu >>219 構文次第 てか、普通識別子に続くカッコを見て初めて関数/メソッドってわかるわけだし http://mevius.5ch.net/test/read.cgi/tech/1405822579/221
222: デフォルトの名無しさん [sage] 2015/04/27(月) 01:02:40.49 ID:RiYFohCl メソッドの中が上手くいかんというか何から始めたら良いのか分からん コンパイル速度が遅くなるけど、分解フェーズを何層にも分けて 何度もループで調べていけば良いのかな http://mevius.5ch.net/test/read.cgi/tech/1405822579/222
223: デフォルトの名無しさん [sage] 2015/04/27(月) 06:59:39.15 ID:EFAP6joI コンパイラの教科書の一冊でも読んで構文解析を勉強してみ http://mevius.5ch.net/test/read.cgi/tech/1405822579/223
224: デフォルトの名無しさん [sage] 2015/04/27(月) 09:38:16.26 ID:ZDDsb7dY C系のクソみたいな構文ルールをそのまま真似てどうすんの 自作なら作りやすいようにキーワード追加すればいいのよ キャスト式にキーワード付けなかったのは最大の誤りの一つ http://mevius.5ch.net/test/read.cgi/tech/1405822579/224
225: デフォルトの名無しさん [] 2015/04/27(月) 09:56:10.90 ID:qDIHhHi0 SSA形式からスタックマシンのコード生成の最適化みたいなのに参考になる文献ってないかな? http://mevius.5ch.net/test/read.cgi/tech/1405822579/225
226: デフォルトの名無しさん [sage] 2015/04/27(月) 14:22:00.53 ID:RiYFohCl >>224 そうだね。HaxeとかFlashからぱくって、C形式のキャストは無くしてみるわ int i = cast Integer ( 0.005f ); int i = 0.005f as Integer; http://mevius.5ch.net/test/read.cgi/tech/1405822579/226
227: デフォルトの名無しさん [] 2015/04/28(火) 18:20:14.24 ID:PlNb5vya 最終的に何を目指そうかしら 1)LLVMで動かす → 超難しそう 2)Luaのように組み込みスクリプトとして動かす → 重そう。メモリ管理は全部ウィークポインタで良いのかな (C/C++組み込みならnew&deleteするようなスクリプトでも良さそう) 3)JavaScriptなどに変換 → たぶん例外のバックトレースとかを変換するデバッグ環境が必須 http://mevius.5ch.net/test/read.cgi/tech/1405822579/227
228: 片山博文MZ ◆T6xkBnTXz7B0 [] 2015/05/05(火) 23:02:55.34 ID:p1RbtT4Y コンパイラーの品質保証は、数学で証明する時代だ!!! Coqと数学でコンパイラーが作れる!!! http://compcert.inria.fr/compcert-C.html http://mevius.5ch.net/test/read.cgi/tech/1405822579/228
229: デフォルトの名無しさん [sage] 2015/05/09(土) 18:57:31.49 ID:SYpntI8c バイトコードインタプリタつくっているんだけど スタックマシンのコンパイラについて パラメータスタック(データスタック)はヒープ上におくべき? それともネイティブの領域におくべき? http://mevius.5ch.net/test/read.cgi/tech/1405822579/229
230: デフォルトの名無しさん [sage] 2015/05/09(土) 19:41:52.28 ID:SYpntI8c >>229 訂正 コンパイラー>仮想機械 http://mevius.5ch.net/test/read.cgi/tech/1405822579/230
231: デフォルトの名無しさん [sage] 2015/05/09(土) 20:41:51.08 ID:DhZyBtDK >>230 ネイティブスタックにデータも置くって事だよね? データスタックは分けておいた方がイロイロ楽だったので列挙 たしかこんなの GC使う様な実装の時の仕分け 実行パスがJITでコンパイルコードと非コンパイルVMコードの行ったり来たりするとき 例外のスタックトレース(これもJIT時のアレコレあり) チープマシンにVM仕込むときアセンブラで書くのが楽しい 最後はちげぇけど http://mevius.5ch.net/test/read.cgi/tech/1405822579/231
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 418 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.011s