を設定し、私は命令セットの非常に単純なモデルを持っていると言う:反復処理全ての可能性が
opcode 0, arg1[0-1]
ocode 1, arg1[0-2], arg2[0-1]
それでは、私が探しているが、それとの無限の複雑なプログラムを構築する方法です。
最初のプログラムである:
0,0
next is,
0,1
then
0,0
1,0,0
then
0,0
1,1,0
etc
によって定義された任意の命令セットが与えられると、そのようなこと:
class Instruction
{
public int opcode;
public int[] argLimits; //the maximum value of each argument, and number of arguments
}
Instruction[] allInstructions;
前プログラム所与次のプログラムを生成することができます。 は、例えば: - オペコードは3つの引数を取る場合、それらはすべての必要とされるExecutableInstruction[] GetNextProgram(ExecutableInstruction[] previous, Instruction[] instructionSet);
引数の値の上限は常に[0-n]は 引数は、すべての必要とされるだろう。
引数の数が固定されているときにこのようなことを行う方法はわかっていますが、各オペコードにはN個の引数があり、各オペコードの各引数は0〜nの値を取ることができます。開始。