# The Algorithmic “Computer”

Zoya Alekseeva

► To cite this version:

Zoya Alekseeva. The Algorithmic “Computer”. 1st Soviet and Russian Computing (SoRuCom), Jul 2006, Petrozavodsk, Russia. pp.103-116, 10.1007/978-3-642-22816-2_14. hal-01568394

HAL Id: hal-01568394

https://inria.hal.science/hal-01568394

Submitted on 25 Jul 2017

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# The Algorithmic "Computer"

Zoya Alekseeva

Senior Research Assistant
Moscow Engineering-Physical Institute (MEPI)
zd_alexeeva@inbox.ru

**Abstract.** This article describes the software creation and development of the computer. Fortran 4 was chosen for scientific and technical problems. They named the language based on Fortran 4 language RTL (Fortran- real time language) treated the allocation of programs in the memory, different kinds of record commands in registers, and instruction structures in memory. It treated the principles of control units and developed an acquisition of some system statistics. Programming in the Fortran-like language increased the coding productivity fivefold in comparison to coding with an ordinary computer language.

**Keywords:** Algorithmic Computer, Fortran 4, high-level languages, real-time systems, real time languages (RTL)

## 1 Introduction

Development of computing means goes on two basic directions: development of the equipment and development of methods and means of the software creation. In the 1960s through the 1980s, software producing began at a high-level language (HLL) level. Thus for the creation of links connecting the program written in a HLL and a computer language, it was necessary to create a line of programs – compilers, which made the translation process. Usage of a HLL has certainly simplified the work of a programmer. However, the necessity of application of compilers has essentially increased the size of programs and consequently, has increased the time of performance of a problem; the physical size of the equipment of a computer has increased the time of entering of corrections at debugging.

At any moment of time at designing the specialized systems, the cost for the creation of the software began to exceed the cost of the creation of the equipment. Except for it, one other point appeared; if it is necessary quickly to change the program on the place of usage one must have the technological equipment there it is not always possible.

The growth of the size of programs using HLL, translation and compilation for reception of a machine code in two to five times demanded an increase in storage size; it was also essential to increase the productivity of the "Computer" at the decision of problems in real time systems. All these circumstances have forced to search for new ways for the rational decision in total of the created problems.

Many language tasks have appeared in computer science because of the different kinds of problems the features of language required.
Therefore, they applied the Cobol language to the decision of problems of economic aspect, LISP for programs of processing of lists, Fortran for scientific and technical problems. The universal languages of priority were PL-1 and the Ada; however, within them appeared no means to address problems of the logical-managing side.

One of search variants of the structure of the “Computer” was a HLL computer language. In the 1960s, high-level source languages witnessed American publications about the “Computer” with hardware interpretation; in particular, Fortran-machines began to appear. The source language for the modified language was Fortran. The Fortran instructions executed in the machine and the device of management had nodes for processing each kind of instructions that transformed them to sequence of microinstructions. This development had not received wide distribution in view of great storage capacity of the equipment.

The idea of creating a “Computer” that worked on HLL has arisen in MEPhI in the beginning of 1980s at the chair of professor Ja. Khetagourov. Having made the analysis widely enough used at that time, HLL and a class of problems, characteristic for specialized real-time systems, came to a conclusion. It is rational to create a language similar to Fortran since for the algorithmic “Computer” it was simple to study, it was logically harmonious, and it was convenient for a wide class of problems and tasks. Having executed preliminary studies, materials had transferred in NPO “Agate” where, making a start from preliminary studies, it created the “Computer” that worked on a Fortran-similar language. Language expanded to include Fortran IV with inclusion of some operators of the PL/1 language. It included special operators and the descriptions allowing it to work real-time systems and with necessary conditions to protect programs and to process of the decision from malfunctioning.

For the aforementioned purposes, the operators used allowed the following:

○ Organize protection of programs and files,

○ Execute parallel work of programs,

○ Carry out blocking of interruptions,

○ Set reactions to interruptions.

○ Allow language means to fix situations interesting developers,

○ Simulate occurrence of signals of interruptions,

○ Distribute memory dynamical, statically or under the instructions.

To protect the workings of the machine against consequences of malfunctions, it helps to segment programs into different sites after entering the language; this allows the ability to make repetitions of the decisions in a case malfunctions situations. For example, one can monitor a condition of the “Computer” and the program storage when sensing the occurrence of a malfunction interruption. In addition, the common interrupt error library can organize with protection:

○ Task of priorities,

○ Introduction of several update wait operators,

○ Work with timer, etc.

To use this language, it has created the “Computer”, directly realizing problems and the system software written on HLL language.
## 2 The Language Project

They developed the language based on the language Fortran IV and they named it RTF (Fortran real time). The set of RTF operators appear in Appendix A. Table 1 shows examples of situations of interruptions and reactions to them in a concrete system. (In some systems, other reasons can exist of interruptions and reactions to them.)

<table><caption>Table 1. RTF Examples</caption><thead><tr><td>The name of a situation</td><td>Value</td></tr></thead><tbody><tr><td>OVERFLOW</td><td>Overflow</td></tr><tr><td>UNDERFKOW</td><td>Loss of the importance</td></tr><tr><td>OVERTIME (E)</td><td>Time is exceeded (time interval specified in expression E or in a variable has expired)</td></tr><tr><td>KEY</td><td>Discrepancy of a key and the lock</td></tr><tr><td>SUBSCRIPTANCE</td><td>Output(Exit) of indexes abroad a file</td></tr><tr><td>CHECK (x1, x2, ...)</td><td>Reference (manipulation) to specified identifiers (e.g. programs, subroutines, labels)</td></tr></tbody></table>

Note that at the occurrence of the interruption signals, if a mask does not forbid it, the system reacts in the standard image if special reaction to interruption is not specified in operator ON.

## 3 Features of the Algorithmic “Computer”

Introduction of the high-level source language is natural and it demands one of two ways in the creation of software:

1) To process the program, translating it with a computer language (the compiler), and coordinating separate pieces in the concrete program in a single whole

2) To have as a computer language a high-level command language; that is, enter into the management of performance of operators the additional equipment for the analysis and performance of language designs that will distinguish such things as kinds of operands, operations, types of dates, and the order of their performance.

As mentioned above, the experience of developing the Fortran-like machine, where it carried out each operation on the processor, appeared impractical because equipment had a large physical volume. In the 1980s, integrated circuits appeared and they reduced the physical size of the equipment, and the idea has again caused interest since hardware performance of operators increased speed. We already mentioned the program advantages. However, requirements of the “Computer” have essentially grown on a range of numbers and their type such as on its memory size, which at that time was of low speed. In the developed “Computer”, they have incorporated two important features: The numbers stored in the memory had a word length of 32 bits, and the memory size consisted of 65K words.
In the "Computer", words could consist of the following types:

* Short number with the fixed point (16 capacity);

* Number with the fixed point (32 capacity);

* Number with the fixed point of double length (64 capacity);

* Short bit line (16 capacity);

* A bit line (32 capacity);

* Number with a floating point (32 capacity);

Other features included the following. All numbers with the floating- and fixed-point representation appear in a complementary code. They used a bit representation for logic variables and applied logical values `TRUE=0` and `FALSE=1` in logic management. An attempt to execute operation with operands of different types is perceived as a mistake. If the operands involved in operation are different in type, the system will transform them as the more complex type; that is, the result will be with a floating point at addition of number with the fixed point with number with a floating point.

Expressions get in the arithmetic device in the arithmetic-logic kind, consisting of operations, variable with the indexes, set by the direct or indirect address, with the Polish record of arithmetic and logic operations, i.e. built on a priority. A basis of internal language is one of elementary records consisting of eight kinds. Furthermore, it stipulated four base registers for transformation of expressions. The address of memory is formed by the addition of number of pages (contained in the base register) and number of a half-word, which contains in an address part of kinds 1, 2, 7 records.

## 4 Kinds of Records

There are seven kinds of records as we now show.

### (0) Record of the Zero Kind

<table><thead><tr><td>000</td><td>Number of page</td></tr></thead><tbody><tr><td>3p</td><td>13p</td></tr></tbody></table>

Establish the page number in the second base register

### (1) Record of the First Kind

<table><thead><tr><td>001</td><td>NBR</td><td>TYPE</td><td>Number of a half-word</td></tr></thead><tbody><tr><td>3p</td><td>2p</td><td>3p</td><td>8p</td></tr></tbody></table>

Simple variable or constant addressing

(NBR = number of the base register, TYPE = type of a variable)

### (2) Record of the Second Kind

<table><thead><tr><td>010</td><td>NBR</td><td>TYPE</td><td>Number of a half-word</td></tr></thead><tbody><tr><td>3p</td><td>2p</td><td>3p</td><td>8p</td></tr></tbody></table>

Variable addressed by indexing
(3) Record of the Third Kind

<table><thead><tr><td>011</td><td>CI (code instruction)</td></tr></thead><tbody><tr><td>3p</td><td>5p</td></tr></tbody></table>

Operation

(4) Record of the Fourth Kind

<table><thead><tr><td>100</td><td>CI</td><td>Code of shift</td></tr></thead><tbody><tr><td>3p</td><td>5p</td><td>8p</td></tr></tbody></table>

Shift operation

(5) Record of the Fifth Kind

<table><thead><tr><td>101</td><td>CF</td></tr></thead><tbody><tr><td>3p</td><td>5p</td></tr></tbody></table>

Designates codes of standard functions and managing symbols

(6) Record of the Sixth Kind

<table><thead><tr><td>110</td><td>NBR</td><td>TYPE</td><td>OPERAND</td></tr></thead><tbody><tr><td>3p</td><td>2p</td><td>3p</td><td>16-32</td></tr></tbody></table>

Direct operand

Table 2 shows an example of an assignment statement record in the memory of the system for the following Fortran-similar language.

$$ 
\begin{aligned}
A[I] &= (B + C[J, R] * M[J, K]) * \sin(X) - 1.6 \\
      &= 7.81516232431
\end{aligned}
$$

<table><caption>**Table 2.** Records in memory</caption><tr><td>A</td><td>[</td><td>I</td><td>]</td></tr><tr><td>=</td><td>(</td><td>B</td><td>+</td></tr><tr><td>C</td><td>[</td><td>J</td><td>,</td></tr><tr><td>R</td><td>]</td><td>*</td><td>M</td></tr><tr><td>[</td><td>J</td><td>,</td><td>K</td></tr><tr><td>]</td><td>)</td><td>*</td><td>SIN</td></tr><tr><td>(</td><td>X</td><td>)</td><td>-</td></tr><tr><td>1.6</td><td></td><td></td><td></td></tr></table>

Note that from the resulting record in memory we can see that the record is dense; we can superimpose blank bytes in cases of transition only at the beginning of
another problem where the following operator is a label on which there can be a jump command.

## 5 Operations List Carried Out by the Arithmetic Processor

The arithmetic operations that execute on the algorithmic machine correspond to a set of operations of the usual machine; however, they are added with some operations of translation of one type of data to another. Table 3 shows this.

<table><caption>Table 3. Arithmetic Operations of the Algorithmic Machine</caption><thead><tr><td>N</td><td>Designation</td><td>Name</td><td>Dates types</td></tr></thead><tbody><tr><td>1</td><td>-</td><td>Monadic minus</td><td>1, 2, 6</td></tr><tr><td>2</td><td></td><td>Shift</td><td>1, 2, 3, 6</td></tr><tr><td>3</td><td>*</td><td>Multiplication</td><td>1, 2, 6</td></tr><tr><td>4</td><td>/</td><td>Division</td><td>1, 2, 6</td></tr><tr><td>5</td><td>+</td><td>Addition</td><td>1, 2, 3, 6</td></tr><tr><td>6</td><td>-</td><td>Subtraction</td><td>1, 2, 3, 6</td></tr><tr><td>7</td><td>ABS</td><td>Absolute size</td><td>1, 2, 6</td></tr><tr><td>8</td><td>SIGN</td><td>=1, if x&gt;0; 0, if x=0;-1, if x&lt;0</td><td>1, 2, 6</td></tr><tr><td>9</td><td>MOD</td><td>X=A+By, B-the whole, 0 &lt;A &lt;y</td><td>1, 2</td></tr><tr><td>10</td><td>.EQ</td><td>Equally</td><td>1, 2, 3, 6</td></tr><tr><td>11</td><td>.GT</td><td>It is more</td><td>1, 2, 3, 6</td></tr><tr><td>12</td><td>.LT</td><td>It is less</td><td>1, 2, 3, 6</td></tr><tr><td>13</td><td>.NOT</td><td>Logic NOT</td><td>4, 5</td></tr><tr><td>14</td><td>.AND</td><td>Conjunct</td><td>4, 5</td></tr><tr><td>15</td><td>.OR.</td><td>Disjunction</td><td>4, 5</td></tr><tr><td>16</td><td>.XOR.</td><td>Logic excluding OR</td><td>4, 5</td></tr><tr><td>17</td><td></td><td>Transformation 1 and 2 types in 3</td><td></td></tr><tr><td>18</td><td></td><td>Transformation 1 and 2 types in 6</td><td></td></tr><tr><td>19</td><td></td><td>Transformation 3 types in 6</td><td></td></tr><tr><td>20</td><td></td><td>Transformation 6 in 1 and 2 types</td><td></td></tr><tr><td>21</td><td></td><td>Transformation 6 types in 3</td><td></td></tr><tr><td>22</td><td></td><td>Transformation 3 types in 1 and 2</td><td></td></tr></tbody></table>

Table 4 shows a list of standard functions and managers of the symbols which are carried out in the arithmetic processor.

## 6 Instruction Structure

An instruction represents the operator, received after a translation of the command, which appeared in the high-level language. The length of the instruction can be any size, a multiple of half-bytes. Each following instruction begins with the half-byte following the end of the previous instruction. We make exceptions with the first program instruction and the instruction to which programs at performance
management is transferred. Their record always begins with a new cell, irrespective of filling previous cells.

<table><caption>**Table 4. Symbol Functions and Managers**</caption><thead><tr><td>N</td><td>Function</td><td>Name</td><td>Special cases</td></tr></thead><tbody><tr><td>1</td><td>LOG (x)</td><td>ln x</td><td>Trashing</td></tr><tr><td>2</td><td>EXP (x)</td><td>Ex</td><td>Trashing</td></tr><tr><td>3</td><td>SIN (x)</td><td></td><td></td></tr><tr><td>4</td><td>COS (x)</td><td></td><td></td></tr><tr><td>5</td><td>TAN (x)</td><td>tg x</td><td>Trashing</td></tr><tr><td>6</td><td>ATG (x)</td><td>arctg x</td><td></td></tr><tr><td>7</td><td>SQRT (x)</td><td></td><td>x &lt; 0</td></tr><tr><td>8</td><td>ATN (x, y)</td><td>arctg (x/y)</td><td>y = 0</td></tr><tr><td>9</td><td>x/y</td><td>Xy</td><td>x = 0 y &lt; 0</td></tr><tr><td>10</td><td>(</td><td></td><td></td></tr><tr><td>11</td><td>)</td><td></td><td></td></tr><tr><td>12</td><td>.</td><td></td><td></td></tr><tr><td>13</td><td>{</td><td></td><td></td></tr><tr><td>14</td><td>}</td><td></td><td></td></tr><tr><td>15</td><td>=</td><td></td><td></td></tr><tr><td>16</td><td>:</td><td></td><td></td></tr></tbody></table>

The first instruction has the following structure:

<table><thead><tr><td>1</td><td>1</td><td>Code of the operator</td><td>Quantity-in symbols</td><td>1st symbol</td><td>Symbols</td></tr></thead><tbody><tr><td></td><td></td><td></td><td></td><td>Attribute</td><td>Following Attributes</td></tr><tr><td></td><td></td><td></td><td></td><td>1 atr.</td><td>Following 2 atr.</td></tr></tbody></table>

The first byte of the instruction contains in two senior capacities an attribute at the beginning of the instruction, and in the others - a operation code. The second byte of the instruction includes a code of symbols number in the instruction and the attribute first symbol. Values of the symbols are the following:

00 - Identifier of RAM

01 - Identifier of ROM

10 - Operator or a divider

11 - Constant

The constant as it has been told above, can have length from one up to four bytes. To allocate under a constant standard number of bytes (4) the length of the instruction becomes in a significant amount of cases inefficiently large, with a significant amount on empty bites. To enter attributes of length of a constant, the analysis of the instruction becomes complicated. We have approached this in a different way on conditions of that time. Thus if in first attribute of a symbol was the attribute of a constant instead of second attribute, the attribute of a constant length was stated
followed by the symbol of a constant, instead of following the attribute of the second
symbol. If the attribute of a constant appeared in a place of second attribute, the code
such as a constant appeared in the second half-byte of attribute in a place of first
attribute. In this case, only one further symbol was read. For the symbols, which are
distinct from a constant, the order of following became customary. The values of the
attributes of a constant length are the following:

00 – 1 byte

01 – 2 bytes

10 – 3 bytes

11 – 4 bytes

The equipment determined the end of the instruction on zeroing account number
symbols and on allocating the ends of a code of the instruction.

7 Features of the Managing Device

The performance of the operators in the machine at such internal language demands
additional physical size of the equipment. Therefore, in addition to the usual elements
of the management devices (for example, start an arithmetic device) in the algorithmic
machine appears a set of devices, managing triggers, and counters. All these
additional devices represent devices for retrieval and the preliminary processing of
instructions. To accelerate the process, two registers act as buffers for consecutive
reading the next two instructions words.

Preliminary processing concerns itself with six device entities:

o Arrangement tracking correct passage of the instruction from ROM (calculation number symbols and comparison originally determined)

o Device for forming the address of an operand

o Device for determining type of a symbol

o Device for determining type of a constant

o Microcode, organizing interaction of all devices DM

o Circuit of concurrence (determines concurrence of a symbol to code END and gives out an attribute of the instructions end of the instruction)

8 Some System Statistics

The experimental model of the "Computer" was executed on the 133 series. The arithmetic processor (without the controls circuit) consisted of 412 N-slot, from them on the managements device 138 N-slot were necessary. The time of performance of operation of addition for the first and second type of the data was 0.3 microseconds. For records of the sixth kind, it witnessed speeds from 0.7 up to 9.6 microseconds. Multiplication operations were carried out for records of first and second kind with speeds from 4.9 to 9.7 microseconds and for sixth kind from 5.2 to 10.1microseconds.

Logic operations were carried out for in 0.3 microseconds for first, second, and
third kind records, and from 0.6 to 6.8 microseconds for sixth kind records. Logic
operations executed in 0.1 microseconds for fourth and fifth kind records for
operations such as inversion.
# 9 Summary Remarks

The results of development, debugging, and testing of work of an experimental sample on the decision computing and solving system problems, we came to the following conclusions.

1. Programming in the Fortran-like language RTL-77 has increased coding productivity in comparison with coding on a computer language by five times.

2. The programs written in the RTL-77 language, in comparison with programs written in a computer language, were reduced in size on the average by 3.3 times.

3. The memory size occupied with the program written on RTL-77 is approximately equal to a memory size occupied with same program written on a computer language, and three to five times smaller than the program written on HLL and compiled code on a computer language.

4. The size occupied by the equipment was 120 without package performance.

5. Speed of the “Computer” was about two million operations per second.

The departmental commission accepting the “Computer” recommended replacing the element base used in the computer by integrated circuits to reduce needful power and volume. However, because of weak development of integrated circuits at that time and the sharp reduction in financing in 1990, work had halted. Currently, this idea is still interesting for developers of computer equipment. The publications appear about development software without programmers with appearance technology “system on a chip” logical depth of operators and machine commands increase. It is desirable to develop method for data in computer in text or vocal forms.

# Appendix A

<table><thead><tr><td>Number of the operator</td><td>Operators, the alphabet, the basic concepts (formal record)</td><td>Explanations, examples</td></tr></thead><tbody><tr><td>1<br>Input (F)</td><td>READ (a, n),<br>READ (id, n),<br>READ (a),<br>READ (id),<br>READ (a, w, n),</td><td>Ç – devices number-decimal number without a sign, n - number of operator FORMAT, - the identifiers list and cyclic elements (c), c - x = m1, m2, m3, where m1 initial value, m2 - final value, m3 - a step. If a step = 1 it is possible to omit ид - the identifier of a file id1 id2 - the files identifier, records number. n - operators of input without a format (in the standard form - most frequently meeting in problems) w - the lists name of names of the variables subject to input \ to a conclusion (see operator NAMELIST) is similar to the operator INPUT</td></tr></tbody></table>
<table><thead><tr><th>Number of the operator</th><th>Operators, the alphabet, the basic concepts (formal record)</th><th>Explanations, examples</th></tr></thead><tbody><tr><td>2<br>Write (F)</td><td>WRITE (a, n),<br>WRITE (id, n),<br>WRITE (a),<br>WRITE (id),<br>WRITE (a, w, n)</td><td></td></tr><tr><td></td><td>ALLOCATE (id1, id2)<br>SET ALLOCATE (id1)</td><td>To make loading a file with name id1 for area of memory with name id2 (Transfer of the information between levels of memory, variables value A=1 when loading is ended.</td></tr><tr><td>4<br>Format</td><td>FORMAT (b)</td><td>b - formatted expression. The operator is used for the indication of a format of the entered and removed dates and the accompanying text. b (b1 b2 b3 mb4, b5.), where bi - specifies, m - the specifies repeater or formatted group (b1, b2, m (b3, b4, b5.) b6..), m - the whole decimal number without a sign. FORMAT (// A. ...) - // - means the passing of 2 lines at a printout. FORMAT (nx, a1, a2...) n blanks before printing the first value or a symbol. bi specifies can have type and a kind: I - integer, R - real, G - group printing the text, L - a logic variable, F - floating, X - the passing of a position, B - binary. Examples: mlw, mRw. W1, wGzzz---zi where "z" repeat w time, H'zz---z. m-the repeater, w1 - number of digit after a comma, w - the number of symbols (width of a field) FORMAT (E 12,4) - is entered - 824.0123 E-2 means: - 824.0123*10-2</td></tr><tr><td>4</td><td>The description of variables<br>INTEGER (or begin with letters at absence of the obvious description: I, J, K, L, M, N)<br>REAL DOUBLE PRECISION<br>LOGICAL BINARY</td><td>The whole - 640 \0\00\-35 Valid - 04.\-700.\ .015\-.27Y2 \6. \ô-4 Double accuracy - 0. \ 6D-10\-10.2D4 Logic - .TRUE.\ .FALSE. Binary - 101. IB\-I. 001B\ - 10IE |-10B it is used in a combination to descriptions REAL, INTEDGER, DOUBLE, PRECISION</td></tr><tr><td>5</td><td>The alphabet: A | B |... |Z letters<br>0|1|2 |... |9 figures<br>.T. | .F. | =, TRUE. | .FALSE E<br>a designation of logic operations; designations of arithmetic operations:<br>+ | - | * | ** | / | +,-, x;<br>signs on operations of the attitude (relation): .GT. | .GE. | .LT. | .LE. | .EQ. | .NE. or>, >, <,<, =, =; designations of logic operations: .OR. | .AND. | .NOT. | or: "or", "or", "not"; dividers: |. | = | (|); indexes of following:<br>GO TO | IF | CONTINUE | PAUSE | RETURN | STOP | WAIT; Descriptors and operators (see corresponding items (points))</td><td></td></tr><tr><td>6</td><td>The Identifier</td><td>Any line of letters and the figures, beginning with the letter, no more than 7 symbols: B | F | A*B, ALFA|TIME (identifier " TIME " concerns to the reserved identifiers)</td></tr></tbody></table>
<table><thead><tr><td>Number of the operator</td><td>Operators, the alphabet, the basic concepts (formal record)</td><td>Explanations, examples</td></tr></thead><tbody><tr><td>7</td><td>LINE</td><td>- Any sequence of symbols, the prisoner in apostrophes, or with previously wHzz---z = 'zzz--z ' 'zz---z ' B - a binary line (from "1" and "0")</td></tr><tr><td>8</td><td>FILE A (i, j, r...)</td><td>A - the identifier of a file, i, j, r-identifiers of variables - indexes or constants</td></tr><tr><td>9</td><td>The description of file DIMENTION A (k1, k2, ... kn)</td><td>k1 - the whole decimal number - the top border of a files index. Dimension of a file = to number of indexes n.</td></tr><tr><td>10 (F)</td><td>The operator appropriate A1... An = E</td><td>E - expression (arithmetic, logic) Ai - identifiers of variables by which (or to which) E.Primer's value it is appropriated(given): A1 = TIME - in a cell A1 contents timers value (circuit realization) are remembered</td></tr><tr><td>11</td><td>The operator of appropriate LABEL ASSIGN n TO m</td><td>m - the variable accepts value of a label (the integer without a sign)</td></tr><tr><td>12 (F)</td><td>GO TO n</td><td>The operator of unconditional jump</td></tr><tr><td>13</td><td>GO TO (n1, n2, ... nk)</td><td>Jump under the instruction (see operator ASSIGN)</td></tr><tr><td>14</td><td>GO TO (n, n, ... n), m</td><td>Calculated jump. m should appear in the left part of the operator of giving m = j, where 1 &lt; j &lt; k</td></tr><tr><td>15 (F)</td><td>IF (E) n1, n2, n3</td><td>The conditional arithmetic operator of jump GO TO n1 - if E &gt; 0 n2 - if E = 0 n3 - if E &lt; 0</td></tr><tr><td>16</td><td>IF (L) Q</td><td>The conditional logic operator. L - logic expression, Q - the operator - not D0 and not IF</td></tr><tr><td>17 (F)</td><td>THE OPERATOR OF CYCLE DO n x = m1, m2, m3,</td><td>m1, m2, m3 - initial value, final value and a step accordingly for XX. If m 3=1 it is possible to not write it(him). The cycle goes up to the operator with a label n inclusive. This operator cannot be IF, DO, RETURN, STOP.</td></tr><tr><td>18</td><td>CONTINUE</td><td>The operator of continuation. Carries out jump to the following operator. One of operators replaces at inadmissible connection of adjacent operators</td></tr><tr><td>19</td><td>PAUSE n</td><td>Stop the working program. By pressing button "Start-up" - work proceeds from a place stopping. The label n is given out on the consol</td></tr><tr><td>20</td><td>STOP n</td><td>Stop without an opportunity of start, only button "Start-up"</td></tr><tr><td>21 (Rt, pairs)</td><td>WAIT (E, k)</td><td>E - the variable of type the INTEGER - specifies real time, which is necessary to wait before to continue a course of the program (following for WAIT the operator). To - a constant such as INTEGER, specifying required accuracy of readout of an interval in mksec</td></tr><tr><td>22 (Rt, pairs)</td><td>WAIT b1, b2, b ... bi</td><td>bi - the logic variables, following for WAIT, the operator will be executed, when all bi begin TRUE</td></tr><tr><td>23 (Rt, pairs)</td><td>WAIT (ид R, A)</td><td>idR - the identifier reserve the register addressed. And - a variable of type binary (BINARY). The subsequent operator will be executed, when (idR) = A Is checked at each interruption</td></tr><tr><td>24 (Сис)</td><td>Assignment of priority PRIORITY (I=E)</td><td>I - the identifier of the program or a branch (TASK), E - a constant or an integer variable.</td></tr></tbody></table>
<table><thead><tr><td>Number of the operator</td><td>Operators, the alphabet, the basic concepts (formal record)</td><td>Explanations, examples</td></tr></thead><tbody><tr><td>25</td><td>Descriptor of branch TASK and (A, z, v)</td><td>The description of a problem, the identifier, A - a variable of type a priority, z - a variable such as lock-the lock (can be absent). v - a variable such as MASK - a mask.</td></tr><tr><td>26</td><td>Descriptor of program PROGRAM (I, z, v)</td><td>a-the identifier of the program, comes to an end END. z, v that, as in 25, can be absent</td></tr><tr><td>27</td><td>ATTACH (I, y, r)</td><td>A name of a branch (TASK) which can go in parallel with the causing program (if there is a corresponding equipment). I - value of a priority at the moment of input (the number should be appropriated). R- a variable such as EVENT - a condition of inclusion of a branch. Can be absent R and V. y - a variable such as KEY a key.</td></tr><tr><td>28 (F)</td><td>CALL a name, Y (n1, ..., nk)</td><td>Start of procedure, procedure of function of the subroutine with a name. n1, nk - values of actual parameters, y - the variable such as KEY, can be absent.</td></tr><tr><td>29 (Sis)</td><td>ON abc</td><td>The operator of the reactions task interruption. a - a name of one of the situations accepted in system; b - the identifier (SNAP) which can be absent. If it is, the information on a condition of system is given out to the operator at the moment of interruption; C-the operator (for instans GO TO M), specifying reaction of system to interruption - the program with a name "æ" or the subroutine will be started. If "c" is absent, the system reacts in the standard way.</td></tr><tr><td>30 (Sys)</td><td>REVERT a</td><td>The cancellation of reaction to interruption (on ON a ...) also restores the reaction specified in the covering block: ON b ON a REVENTA.. Operates b</td></tr><tr><td>31 (Pairs)</td><td>KEEP a (r1, r2, ... rn)</td><td>The operator who is carrying out preservation of values of a condition of the program a for variables, whose identifiers are specified in (...), there can be names of registers and time</td></tr><tr><td>32</td><td>FREE a (Y)</td><td>To clear area of the RAM from the information which have been written down in area with a name "a." Y type KEY.</td></tr><tr><td>33</td><td>FREE (a1, a2, ... an)</td><td>To clear the RAM from the variables specified in brackets.</td></tr><tr><td>34</td><td>COMMON | r1 | A, B, C | r2 | R, T, Z ...</td><td>The operator allocates the common memory with a name r1 for variables A, B, C, (they will be stored(kept) in one area of memory by way of the list), with a name r2 for variables R, T, Z, etc. If the common area is one, it can be not marked. Identifiers in the list can be identifiers of files, but then their characteristics should be set in the operator of description DIMENTION, or in operator COMMON | r1 | A, B (10, 5), C (see item 9)</td></tr></tbody></table>
<table><thead><tr><td>Number of the operator</td><td>Operators, the alphabet, the basic concepts (formal record)</td><td>Explanations, examples</td></tr></thead><tbody><tr><td>35 (Pairs)</td><td>EQVIVALENCE (r1, r2)</td><td>The variables specified in brackets of operator EQVIVALENCE, will be placed on the same place (in cells) memory. For example: at DIMENTION (r1 (53), r2 (15)) files demand an identical place, but they should not be used simultaneously except for a mark of the same file by different identifiers in different programs for reading.</td></tr><tr><td>36</td><td>FILE a1 (m1, l1, t1, z1,), a2 ...</td><td>The description of a file. a1, a2, ... identifiers of files or libraries (LIB), mi - quantity of records in a file a i; li - the maximal length of record in a file, ti - the maximal length of the record following on the order after the termination(ending) of reading or record; zi - a variable such as lock.</td></tr><tr><td>37</td><td>OPEN a1 (Y1), a2 (Y2)</td><td>To open files a1, a2, ... - on AM (auxiliary memory. Yi - variables such as key</td></tr><tr><td>38</td><td>CLOSE a1 (Y1), a2 (Y2)</td><td>To close files a1, a2, ... - on AM Zi Yi can be absent in 36, 37, 38</td></tr><tr><td>39</td><td>ALLOCATION (a1)</td><td>Gives out value '1' B, if the variable a1 is placed in the RAM (ALLOCATE (a1)) and '0' In - otherwise.</td></tr><tr><td>40</td><td>Descriptors of accommodation of the data in memory<br>AUTOMATIC (a1, a2, ...)<br>STATIC (a1, a2, ...)<br>CONTROLLED (a1, a2, ...)</td><td>If there is no description for type of accommodation of a variable type AUTOMATIC is meant. Accommodation of variables in the RAM before performance of the program invariable before its(her) end. Accommodation dynamic occurs before each input(entrance) in a segment (in sense Fortran the common) or in the block (a LIFO principle) It is control operator ALLOCATE</td></tr><tr><td>41</td><td>NAMELIST |w1 |, A1, B1 ..., | w2 |, A2, B2, ..., |wi |, Ai, Bi, ...</td><td>wi - the name of the list of names Ai, Bi, ... wi is used in operators WRITE, READ for reduction of record of entered or deduced(removed) variables.</td></tr><tr><td>42</td><td>DATA a1, a2, (n1, n2, ...)</td><td>a1, a2, ... - the names list of variables by which numerical values n1 are appropriated, n2, ... by way of conformity. The element ai can be an element such as a cycle: (ai (I)), where I=m1, m2, m3 .... For example, If ni repeats some times successively enters the name so: m*ni - number of repetitions on each m-cycle.</td></tr></tbody></table>
<table><thead><tr><td>Number of the operator</td><td>Operators, the alphabet, the basic concepts (formal record)</td><td>Explanations, examples</td></tr></thead><tbody><tr><td>43</td><td>The subroutine - function FANCTION B (x1, x2, ...)</td><td>t - or it is empty, or a descriptor such as function, B - a name of function, (x1, x2, ... ) - the list of formal parameters. The result will be worn out on identifier B. In (a1, a2, ...) can meet in operators, that causes calculation B for values of actual parameters (a1, ...) the body in words RETURN and END.</td></tr><tr><td>44</td><td>The Subroutine (procedure) SUBROUTINE P Y (x1, x2,...)</td><td>P - a name of the subroutine Terminates. The call goes on operator CALL P (n1, n2, ...). Comes to an end RETURN and END. Y - variable such as mask (in 43 and 44 can be absent).</td></tr><tr><td>45</td><td>Descriptor EXTERNAL a1, a2, ...</td><td>This descriptor is used in case arguments of function or the subroutine can be names of functions or subroutines. In this case in the basic program the descriptor (45) in which names of external functions and procedures which should be handed as actual parameters are listed is included.</td></tr><tr><td>46</td><td>The operator simulating a situation of interruption SIGNAL a</td><td>á - a name of one of situations of interruption which can arise in system. The operator simulates occurrence of a situation "á" and transfers management to operator ON working in the given area of the program. If the situation specified in a, is not included, that is operator ON where there is a parameter and interruptions will not be is not executed yet. Management will be handed to the following operator for SIGNAL a. This will take place and after the termination of processing of interruption ON .If a case of performance of operator SIGNAL a situation CONDITION (a) and if operator ON a, b, c has instead of and operator CONDITION (a) follows as it mentioned above, interruption is developed.</td></tr><tr><td>47 (Def)</td><td>The description of "lock" LOCK Z (n)</td><td>z (n) - the file of binary numbers being "lock" which should be open by "key" KEY Y (n) (see 48). "Lock" is established in programs, files and branches.</td></tr><tr><td>48 (Def)</td><td>The description of "key" KEY Y (N)</td><td>Y (n) - a file of the binary numbers representing "key". It(he) is compared to "lock" LOCK z (n)</td></tr><tr><td>49</td><td>The operator of a supply of file REWIND a</td><td>The file with a name "a" in a condition when 1-n record can be read out or be deduced(removed) is established.</td></tr><tr><td>50</td><td>The operator of return BACK PACE a</td><td>Return from the current record of a file to a place of interruption is carried out.</td></tr><tr><td>51 (Sys)</td><td>The operator of search of record of file FIND (an)</td><td>Record of a file "a" with number n is established in position when input-output of this record will demand minimal time</td></tr><tr><td>52 (Sys)</td><td>To place in library PUT INTO LIB (r1, r2, ... rn) (m1, m2, ... mn)</td><td>To place variables from the program with the specified name in which there was operator PUT INTO LIB, r1, r2... rn, in library in cells m1, m2, ... mn,</td></tr><tr><td>53 (Sys)</td><td>To take from library GETEROM LIB name Y (m1, m2, ... mT) (r1, r2, ... rT)</td><td>To choose from library the program with the identifier "name" and contents of cells m, m, ... m to place in cells r, r, ... r</td></tr></tbody></table>
<table><thead><tr><td>Number of the operator</td><td>Operators, the alphabet, the basic concepts (formal record)</td><td>Explanations, examples</td></tr></thead><tbody><tr><td>54 (Sys)</td><td>Reservation and the name of a place in RAM AREA a name, z (n, b)</td><td>At performance of this operator in the RAM the area from n words (n - decimal number) if the OS will find enough place not closed by operations system (or more high priority the program) and if it is not specified "b" - the identifier of a variable which accepts value of the physical address of a cell of the RAM is allocated(removed). If "b" is present at operator AREA OS checks availability of area in the size "n", since a cell "b".</td></tr><tr><td>55 (Sys)</td><td>MASK V</td><td>The description variable V as a binary variable for masking the register of interruptions.</td></tr><tr><td>56</td><td>CHECK (x1, x2, ...)</td><td>Interruption of performance of the program at an output on identifiers or the labels specified in the list. Start-up from the consol.</td></tr></tbody></table>