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に近いけど、配列でやる方が簡単そうなんだけど。