Concurrent Clean : CleanJ : ABCマシン : 文字列
Cleanの文字列は、非ボックス化文字配列です。それに対して、Javaの文字列はStringオブジェクトです。
Javaで非ボックス化文字配列を表現するならば "char[]" ですが、Stringオブジェクトで扱う方がJavaVMでの扱いが効率的になるのではないかと思うのですが。
-
-
- -
-
fillhというABCコードがある。
fillh descriptor_name :: string arity :: int a_dst :: int A-Stackからarity分だけグラフを取り出して、 descriptor_nameで指定されるグラフを作って、 a_dstの位置のノードを書き換える
一般的なデータ構造のオブジェクトを作るには、こういうメソッドを用意すればよいかな?
class Main { Object ARRAY(CleanVM vm) { Object[] o = new Object[2]; o[0] = "ARRAY"; o[1] = vm.as.get(0); return o; } }
配列にして、第1要素で種類を区別する方法と、クラスにして、クラス情報で種類を区別する方法の2つがあるけど、クラス情報を使う方がJava Nativeに近いけど、配列でやる方が簡単そうなんだけど。