「コンパイラ・スクリプトエンジン」相談室16 (648レス)
前次1-
抽出解除 レス栞

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
124: 117 2014/12/06(土)23:06:51.00 ID:BPhK2Nlg(2/3) AAS
とりあえずenzan3の定義の先頭にマイナスの記号があるかもしれないという意味合いで
以下のようなコードに変えてみました。

void enzan3() :
{}
{
[<HIKU>]enzan4() //★
((<TASU>|<HIKU>)enzan4())*
}

void enzan4() :
{}
省10
202: 2015/02/24(火)17:44:49.00 ID:H95vOz7j(1/2) AAS
>>199
そのテーブルに式を入れるときその式が不変かどうかを判断する部分でわからなくなってくる

>>200
ほとんど読んでないドラゴンブック見たら最適化部分についても書いてるな
これ読むの辛いな
頑張って読んで出直すか
270: 261 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 {
省11
347
(1): 2016/01/15(金)22:55:08.00 ID:y9x+XKWj(1) AAS
C言語のABIは色々あるぞ
基本はcdeclかstdcallだけど
スタック使わずレジスタでやりとりしたり
環境や処理系毎に異なる
369: 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.035s