「コンパイラ・スクリプトエンジン」相談室16 (648レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
124: 117 [sage] 2014/12/06(土) 23:06:51.00 ID:BPhK2Nlg(2/3) AAS
とりあえずenzan3の定義の先頭にマイナスの記号があるかもしれないという意味合いで
以下のようなコードに変えてみました。
void enzan3() :
{}
{
[<HIKU>]enzan4() //★
((<TASU>|<HIKU>)enzan4())*
}
void enzan4() :
{}
{
enzan5()
((<KAKERU>|<WARU>)enzan5()
}
void enzan5() :
{}
{
<MOZI>|<SUUZI>|"(" enzan3() ")"
}
<>:トークン |:左右のどちらかの構文(||やOr演算子のようなもの) []:省略可能構文
202: デフォルトの名無しさん [sage] 2015/02/24(火) 17:44:49.00 ID:H95vOz7j(1/2) AAS
>>199199(1): 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2015/02/24(火) 08:04:58.95 ID:UGr8Bbp/(1/2) AAS
>>198
ある計算式eについて、eの部分式を互いに参照するエントリーとして再帰的にテーブルに登録する。
登録するときにソートと重複チェックを行えば、テーブルは一意化できる。
テーブルの各エントリーの参照構造は、木構造のノードを成す。
そのテーブルに式を入れるときその式が不変かどうかを判断する部分でわからなくなってくる
>>200200(1): デフォルトの名無しさん [] 2015/02/24(火) 11:33:08.23 ID:wemgVVUb(1/2) AAS
>>198
式の属性に関する再帰方程式の近似解をニュートン法のように求めること、
これがデータフロー計算解法の本質と理解できてないんじゃない?
ドラゴンブックのavailable, killedの説明の所読んでみれば?
同じパス内でループしながら収束するまで計算するのよ。
ほとんど読んでないドラゴンブック見たら最適化部分についても書いてるな
これ読むの辛いな
頑張って読んで出直すか
270: 261 [sage] 2015/09/19(土) 12:48:32.00 ID:YlOPp2hb(2/4) AAS
>>268今考えてる言語では、演算子の扱いが関数を引数の場所に関して一般化した第一級オブジェクトなので
前置引数の個数や後置引数の個数は実行してみるまで分からないので
コンパイル時の識別子を用いた構文解析は無理です。
前置演算子と一引数関数が別物って変だと思ったのでそうしました。
c++風に書くと、こんな感じのが通るイメージです。
g = [](a,b){return a - b;};
if (複雑な式) {
f = [](a|b,c){return a + b + c;}; // (a|b)で前置引数としてa、後置引数としてbと示すものとする。
} else {
f = [](a,b|c){return a + b + c;};
}
// gは2引数演算子、fは3引数演算子。
// ここではgの優先順位はfより低いものとする(c++での表現方法が無いので)。
// カッコやカンマを省いてある場合、上の条件のどちらが走っても構文上は受理される。
// 複雑な式の結果によって、これはg(1, f(2, 3, 4))及びg(f(1, 2, 3), 4)のどちらにもなりうる。
cout << (g 1 2 f 3 4) << endl;
>>269そういうわけで一度に全部読み込んでコンパイルしてから実行するという事が出来ないので、
折角だからVMも設計しようと思った次第です。
ASTから中間言語に落とすとcontinuationの実装が楽になるので。
347(1): デフォルトの名無しさん [sage] 2016/01/15(金) 22:55:08.00 ID:y9x+XKWj(1) AAS
C言語のABIは色々あるぞ
基本はcdeclかstdcallだけど
スタック使わずレジスタでやりとりしたり
環境や処理系毎に異なる
369: デフォルトの名無しさん [sage] 2016/01/23(土) 15:07:58.00 ID:0d2orZXz(1) AAS
メモ化とテーブルルックアップw
510: デフォルトの名無しさん [] 2016/04/23(土) 18:35:58.00 ID:vG+aKQwy(1) AAS
禿丸エディタを何の参考にする気だ
610: デフォルトの名無しさん [] 2016/06/05(日) 14:53:16.00 ID:D97p9ZEl(1) AAS
最適化有効にしてバグるのも大抵そのプログラムのバグだから
612: デフォルトの名無しさん [] 2016/06/11(土) 06:06:42.00 ID:MaD03lMp(1) AAS
今考えたら昔のN88BASICも、実は凄かったんだな。
コンパイラを作りの前の基礎教養として、価値があると思う。
知識が多いほうが有利だし。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.025s