- 「コンパイラ・スクリプトエンジン」相談室15
921 :デフォルトの名無しさん[sage]:2014/05/20(火) 00:22:32.49 ID:WYH9CLBB - ていうか手書きなら自然にループとか書けるから、再帰使わなくても
<X> = a (b c)* d みたいな拡張BNFをそのままプログラムにすると思えばいい。
|
- プログラミング雑談スレ♯++
390 :デフォルトの名無しさん[sage]:2014/05/20(火) 00:25:21.69 ID:WYH9CLBB - IとDでキャッシュを分けるいわゆる修正ハーバードアーキテクチャは、空間を分けるというよりは
バス(すなわちフォンノイマンボトルネック)を分ける、という理解が正しい。
|
- 「コンパイラ・スクリプトエンジン」相談室15
926 :デフォルトの名無しさん[sage]:2014/05/20(火) 13:53:02.72 ID:WYH9CLBB - 入力の読み取りを後戻りさせたくないとか、mallocとかしたくないという昔の事情が (1) を欲しただけで、
部分的にちょっと (2) になってる、とかなら今時のマシンと言語とライブラリならたいして問題ない。 本質的に再帰になってるものとしては、式の構文とかがあるけど、普通にループで書ける。 <EXPR> : <TERM> (('+'|'-') <TERM>)* <TERM> : <FACTOR> (('*'|'/') <FACTOR>)* <FACTOR> : num | '(' <EXPR> ')' <FACTOR> のルールにある、「カッコ内の<EXPR>」みたいなのを「本質的に再帰」と言う、 と言えば、まぁそうなんだけど。
|