Register machine [RM]: RM-Software

The RM-Software is used to create RM-programs. It works with enabled JavaScript in most modern browsers.

Further information by Inge Schwank regarding fundamentals of algorithmic thinking
- formal-symbolic: Register machine
- enactive-haptic / iconic-dynamic: Dynamische Labyrinthe


Implementation in cooperation with Inge Schwank: Steffen Vogel
Feedback: Inge Schwank


Definition: Building RM-programs

Let i ∈ ℕ, i > 0. Further let:
Ri be the notation for register i of the register machine;
[Ri] be the notation for the content of register i. It can be any positive integer.

Syntax

Semantics


Structuring into subproblems --- Definition: RM-subprograms

Syntax

Semantics


Measure of complexity --- function of the number of calculation steps

If a function f is calculated with the RM-program Pf, then the function of the number of calculation steps RSPf is used to determine the costs of the calculation. Every executed elementary command, i.e. every execution of Ai und Si that is necessary for the calculation, is evaluated in order to assess the overall costs.
Example:
With Pa: (1S1A2) the function a(x1,x2)=x1+x2 can be calculated.
In this case the costs of the calculation only depend on x1 and not on x2.
For Pa the function of the number of calculation steps is given by:
RSPa(x1)=2x1  

Quick start

There are two distinct modes: To switch from the entry & editing mode to the execution mode a (syntactically) correct RM-program must be entered into the rectangular, white field labeled Program which initially contains a black dot.
Switchting from one mode to the other is done using the button in the top left corner labeled Initialize program or Edit program, respectively.


RM-program

Registers


The main program requires more registers than have been declared.
R1:
R2:
R3:
R4:
Set register values to:

Program

.

Sub programs

Load standard programs on initialization

Program execution

(with recursion stack)

Calculation steps: 0

The program might be caught in an infinite loop since there have been many changes to the recursion stack with no calls to Ai or Si. Please check the program and if you would like to continue its execution click one of the step buttons again.

The program tries to call a sub program that has not been defined. Please switch to the Edit program mode and define the sub program.

Controls

Options

Check programs on entry
Display number of calculation steps
Display program execution

Save and load programs

print predefined sub programs if they are loaded on initialization
save:
load:

Predefined subprograms

Please note that you can overwrite these predefined subprograms with your own definitions.

Call RM-program Semantics
L<i>, Li<i> (iSi). Delete
Ti<j> (jSjAi). Transport
Ki<j> (jSjAh)(hShAiAj). Copy
Ae<i,j> Ke<i>Ke<j>. Normalized addition
Me<i,j> Kh<i>(hShKe<j>). Normalized multiplication

Instructions



Last change: June 23, 2022.
Copyright: University of Cologne
Datenschutzerklärung; Impressum