Частичное вычисление интерпретатора арифметических выражений

Частичное вычисление
интерпретатора арифметических выражений

 

<Arex (sN) '*' Fact((sN) '-' 1)>

Шаг 1, пр. 5:   eX = (sN), eY = Fact((sN) '-' 1)

<MUL (<Arex (sN)>) <Arex Fact ((sN) '-' 1)>>

Шаг 2, пр. 6: eX = (sN)

<MUL (<Arex sN>) <Arex Fact ((sN) '-' 1)>>

Шаг 3, пр. 1:      sN = sN

<MUL (sN) <Arex Fact ((sN) '-' 1)>>

Шаг 4, пр. 7: sF = Fact, eX = (sN) '-' 1

<MUL (sN) <Apply Fact <Arex (sN) '-' 1>>>

Шаг 5, пр. 4: eX = (sN), eY = 1

<MUL (sN) <Apply Fact <SUB (<Arex (sN)>) <Arex 1>>>>

Шаг 6, пр. 6: eX = sN

<MUL (sN) <Apply Fact <SUB (<Arex sN>) <Arex 1>>>>

Шаг 6, пр. 1: sN = sN

<MUL (sN) <Apply Fact <SUB (sN) <Arex 1>>>>

Шаг 7, пр. 1:   sN = 1

<MUL (sN) <Apply Fact <SUB (sN) 1>>>

Шаг 8: eN = <SUB (sN) 1>

<MUL (sN) <Fact <SUB (sN) 1>>>