Реферат: Generaliting Dispatching in Distributed Object System
selector := Args.GetSelector ( args ) ;
BEGIN
IF ( Text.Equal ( Selector, "printString" )) THEN
ARGS.CheckNumberOfArguments ( args, 1 ) ;
RETURN MakeString ( Fmt.Int ( self.value )) ;
ELSEIF Text.Equal ( selector, "add" ) THEN
ARGS.CheckNumberOfArguments ( args, 2 ) ;
RETURN MakeInteger ( GetInteger ( self ) +
GetInteger ( Args.Element ( args, 1 ))) ;
ENDIF
RAISE Obj.Exception ( Exception.badFunction ) ;
END IntegerDispatch ;
Заклинания и dispatching.
Для создания заклинания клиенты пользуются процедурой
Obj.Invoke. Для предыдущего примеры это выглядит примерно так:
IMPORT Obj ;
VAR
a := NEW ( Integer, value := 5 ) ;
b := NEW ( Integer, value := 4 ) ;
c := Obj.Invoke ( a, "add", b ) ;
Командный язык.
Далее некоторые примеры будут описаны на командной языке
DOS. Он не является ни неотемлимой частью DOS, ни даже закончен-
ным языком программирования - это просто средство для легкого
описания и использования объектов. Предыдущий пример будет запи-
сан на нем так:
(DEFINE a 5)
(DEFINE b 4)
(DEFINE c (a 'add b))