Распределение регистров WAM для одинаковых структур

Абстрактная машина Уоррена Реконструкция учебника утверждает следующее для правил распределения регистров переменных:

  • Регистры переменных распределяются по наименее доступному индексу.
  • Регистр X1 всегда назначается самому внешнему терму.
  • Один и тот же регистр выделяется для всех вхождений данной переменной.

Далее в руководстве при построении программных запросов приводится следующий пример:

p(f(X), h(Y, f(a)), Y).

X1 = p(X2, X3, X4)
X2 = f(X5)
X3 = h(X4, X6)
X4 = Y
X5 = X
X6 = f(X7)
X7 = a

Я сомневаюсь, что при рассмотрении двух вхождений предложения f оба являются структурами f/1, но с другим телом и, следовательно, должны быть созданы по-разному. Но что именно считается переменной в контексте WAM, переменной пролога или каждым термином? Как бы статья p(f(a), f(a)) быть построенным:

X1 = p(X2, X2)
X2 = f(X3)
X3 = a

или же

X1 = p(X2, X3)
X2 = f(X4)
X3 = f(X4)
X4 = a

0 ответов

Другие вопросы по тегам