Описание слайда:
Конкретнтая операционная семантика языка Exp
topostfix(N,S,[N|S]) :- number(N).
topostfix(E,S,R) :-
E =.. [Op,A,B],
member(Op,[+,-,*,/]),
topostfix(A,[Op|S],S1),
topostfix(B,S1,R).
calc([],[R],R).
calc([N|Cs],S,R) :-
number(N),
calc(Cs,[N|S],R).
calc([Op|Cs],[N1,N2|S],R) :-
member(Op,[+,-,*,/]),
E =.. [Op,N1,N2],
N is E,
calc(Cs,[N|S],R).