December 2001
·
9 Reads
The Prolog program "termexpansion((define C as A with B), (C=?A:-B,!)). termexpansion((transition E if C then D), ((transition E):-C,!,B,A,(transition ))) :- serialize(D,B,A). serialize((E,F),(C,D),(A,B)) :- serialize(E,C,B), serialize(F,D,A). serialize(F:=G, ([G]=?*[E],F=..[C---D],D=?*B,A=..[C---B]), asserta(A=?E)). [G---H]=?*[E---F] :- (G="E; G=..[C---D],D=?*B,A=..[C---B],A=?E), !,H=?*F. []=?*[]. A=?B :- [A,B]=?*[D,C], D==C." implements a virtual machine for evolving algebras. It offers an efficient and very flexible framework for their simulation. Computation models and specification methods seem to be worlds apart. The evolving algebra project started as an attempt to bridge the gap by improving on Turing's thesis. (Gurevich, 1994) 1