A simple interpreter for object-oriented programs.
Source: PROLOG programming for artificial intelligence, 3rd Edition, Harlow, 2001, ISBN 0-201-40375-7.
Program source code: oo_interpreter.pl
% Figure 23.5 A simple interpreter for object-oriented programs. % An interpreter for object-oriented programs % send( Message, Object) if % find Object's methods and % execute the method that corresponds to Message send( Object, Message) :- get_methods( Object, Methods), % Find Object's methods process( Message, Methods). % Execute corresponding method get_methods( Object, Methods) :- object( Object, Methods). % Private methods get_methods( Object, Methods) :- isa( Object, SuperObject), get_methods( SuperObject, Methods). % Inherited methods process( Message, [Message | _]). % Use a fact process( Message, [ (Message :- Body) | _]) :- % Use a rule call( Body). process( Message, [_ | Methods]) :- process( Message, Methods).