PACKET run down logic DEFINES for loop,
msec factor,
for corr,
while loop,
until loop,
if,
select,
proc,
proc one param int,
proc two param int :
(***************************************************************************)
(* *)
(* Autor: A. Steinmann Copyright (C): HRZ - Unibi *)
(* *)
(***************************************************************************)
INT VAR first int,
second int,
index ;
REAL VAR for loop corr,
begin,
end,
int incr corr,
act result ;
BOOL VAR is initialized :: FALSE,
situation :: TRUE ;
PROC for loop (INT CONST frequency) :
notice operation ("FOR LOOP") ;
begin := clock (0) ;
FOR index FROM 1 UPTO frequency
REP
END REP ;
end := clock (0) ;
act result := end - begin ;
for loop s (frequency)
END PROC for loop ;
PROC for loop s (INT CONST frequency) :
begin := clock (0) ;
FOR index FROM 1 UPTO frequency
REP
END REP ;
end := clock (0) ;
IF act result > end - begin
THEN act result := end - begin
FI ;
for loop corr := act result * msec factor (frequency) ;
notice result ("FOR REP",for loop corr)
END PROC for loop s ;
PROC initialize int incr corr (INT CONST frequency) :
first int := 0 ;
second int := 1 ;
begin := clock (0) ;
FOR index FROM 1 UPTO frequency
REP
first int INCR second int
END REP ;
end := clock (0) ;
act result := end - begin ;
initialize int incr corr s (frequency)
END PROC initialize int incr corr ;
PROC initialize int incr corr s (INT CONST frequency) :
first int := 0 ;
second int := 1 ;
begin := clock (0) ;
FOR index FROM 1 UPTO frequency
REP
first int INCR second int
END REP ;
end := clock (0) ;
IF act result > end - begin
THEN act result := end - begin
FI ;
int incr corr := act result * msec factor (frequency) - for corr ;
END PROC initialize int incr corr s ;
PROC while loop (INT CONST frequency) :
IF NOT is initialized
THEN initialize int incr corr (frequency)
FI ;
notice operation ("WHILE LOOP") ;
first int := 0 ;
second int := 1 ;
begin := clock (0) ;
WHILE first int < frequency
REP
first int INCR second int
END REP ;
end := clock (0) ;
act result := end - begin ;
while loop s (frequency)
END PROC while loop ;
PROC while loop s (INT CONST frequency) :
first int := 0 ;
second int := 1 ;
begin := clock (0) ;
WHILE first int < frequency
REP
first int INCR second int
END REP ;
end := clock (0) ;
IF act result > end - begin
THEN act result := end - begin
FI ;
notice result ("WHILE REP", act result * msec factor (frequency) - int incr corr) ;
END PROC while loop s ;
PROC until loop (INT CONST frequency) :
IF NOT is initialized
THEN initialize int incr corr (frequency)
FI ;
notice operation ("UNTIL LOOP") ;
first int := 1 ;
second int := 1 ;
begin := clock (0) ;
REP
first int INCR second int
UNTIL first int > frequency
END REP ;
end := clock (0) ;
act result := end - begin ;
until loop s (frequency)
END PROC until loop ;
PROC until loop s (INT CONST frequency) :
first int := 1 ;
second int := 1 ;
begin := clock (0) ;
REP
first int INCR second int
UNTIL first int > frequency
END REP ;
end := clock (0) ;
IF act result > act result
THEN act result := end - begin
FI ;
notice result("UNTIL REP", act result * msec factor (frequency) - int incr corr)
END PROC until loop s ;
PROC if (INT CONST frequency) :
notice operation ("IF") ;
begin := clock (0) ;
FOR index FROM 1 UPTO frequency
REP
IF situation
THEN
FI
END REP ;
end := clock (0) ;
act result := end - begin ;
if s (frequency)
END PROC if ;
PROC if s (INT CONST frequency) :
begin := clock (0) ;
FOR index FROM 1 UPTO frequency
REP
IF situation
THEN
FI
END REP ;
end := clock (0) ;
IF act result > end - begin
THEN act result := end - begin
FI ;
notice result ("IF", act result * msec factor (frequency) - for corr) ;
END PROC if s ;
PROC select (INT CONST frequency) :
notice operation ("SELECT") ;
first int := 0 ;
begin := clock (0) ;
FOR index FROM 1 UPTO frequency
REP
SELECT first int OF
CASE 0 :
OTHERWISE
END SELECT
END REP ;
end := clock (0) ;
act result := end - begin ;
select s (frequency)
END PROC select ;
PROC select s (INT CONST frequency) :
first int := 0 ;
begin := clock (0) ;
FOR index FROM 1 UPTO frequency
REP
SELECT first int OF
CASE 0 :
OTHERWISE
END SELECT
END REP ;
end := clock (0) ;
IF act result > end - begin
THEN act result := end - begin
FI ;
notice result ("SELECT", act result * msec factor (frequency) - for corr) ;
END PROC select s ;
PROC proc (INT CONST frequency) :
notice operation ("PROC") ;
begin := clock (0) ;
FOR index FROM 1 UPTO frequency
REP
nilproc
END REP ;
end := clock (0) ;
act result := end - begin ;
proc s (frequency)
END PROC proc ;
PROC proc s (INT CONST frequency) :
begin := clock (0) ;
FOR index FROM 1 UPTO frequency
REP
nilproc
END REP ;
end := clock (0) ;
IF act result > end - begin
THEN act result := end - begin
FI ;
notice result ("PROC", act result * msec factor (frequency) - for corr) ;
END PROC proc s ;
PROC proc one param int (INT CONST frequency) :
notice operation ("PROC one param INT") ;
begin := clock (0) ;
FOR index FROM 1 UPTO frequency
REP
nilproc (first int)
END REP ;
end := clock (0) ;
act result := end - begin ;
proc one param int s (frequency)
END PROC proc one param int ;
PROC proc one param int s (INT CONST frequency) :
begin := clock (0) ;
FOR index FROM 1 UPTO frequency
REP
nilproc (first int)
END REP ;
end := clock (0) ;
IF act result > end - begin
THEN act result := end - begin
FI ;
notice result ("PROC (INT)", act result * msec factor (frequency) - for corr) ;
END PROC proc one param int s ;
PROC proc two param int (INT CONST frequency) :
notice operation ("PROC two param INT") ;
begin := clock (0) ;
FOR index FROM 1 UPTO frequency
REP
nilproc (first int, second int)
END REP ;
end := clock (0) ;
act result := end - begin ;
proc two param int s (frequency)
END PROC proc two param int ;
PROC proc two param int s (INT CONST frequency) :
begin := clock (0) ;
FOR index FROM 1 UPTO frequency
REP
nilproc (first int, second int)
END REP ;
end := clock (0) ;
IF act result > end - begin
THEN act result := end - begin
FI ;
notice result ("PROC (INT, INT)", act result * msec factor (frequency) - for corr) ;
END PROC proc two param int s ;
PROC nilproc :
END PROC nilproc ;
PROC nilproc (INT CONST number one) :
END PROC nilproc ;
PROC nilproc (INT CONST number one, number two) :
END PROC nilproc ;
REAL PROC for corr :
for loop corr
END PROC for corr ;
REAL PROC msec factor (INT CONST frequency) :
1000.0 / real (frequency)
END PROC msec factor ;
END PACKET run down logic ;