The present article discusses means for the systematic description of programming methods based on the use of control words, different from those employed in [1], and the structure of a digital machine (DM) which would enable these programming methods to be used. The references cited contain ideas which may be regarded as in some degree precursors of the ideas proposed in the present article. A problem is solved on a DM “in steps”. The steps may be coarse or fine, but each of them is determined by what is called the command. Accordingly, one command can determine the operation of the machine over a longer time interval (we shall say that this command is of higher order), and another over an elementary cycle only of the machine operation, i.e. a so-called microcommand. There are correspondingly two different codes: a code of operations and a number code. We use the term “number code” intentionally here, understanding by this that, in some form acceptable to the machine, an indication is given of the numbers on which a given operation is to be performed. In line with the code of an operation we can write directly the number on which the operation is to be performed, i.e. the number can be specified by a number address. We can go even further, and instead of the address of the number, indicate the address where the address of the required number will be found. Similarly, along with the code of the operation we can indicate the address where this code is found. In modern machines the second and third methods are used. This enables the program writing to be shortened, since for the most part the same operation is performed on a whole set of numbers, and not merely on one. In order to change the numbers on which the operation is performed, the address of these numbers can be changed. In this case the address of the “changed” address is indicated in the command. An example of this can be found in so-called systems of index registers: in line with the code of the operation the number of the index register, the content of which is the number address, is indicated. This system is used in the Larc and Stretch machines. However it leads to a need for special commands which transform the contents of the index registers. In this case the program is written in the form of a consecutive set of commands of the index arithmetic (called in the literature commands on the contents of the index registers) and commands of the computational arithmetic (see [1]). In the present work an attempt is made to standardize the formation of the addresses, by having a limited number of standard subprograms, in accordance with which the addresses will be formed in accordance with the initial data introduced. As a result the total subprograms are substantially shortened. Three standard methods of formation of the addresses of a number set are introduced: points, straight lines, planes. The initial data for these subprograms form standard words, which will in future be called control words. We shall consider methods of constructing codes of number and command sets in the form of control words. Development of these methods leads to a new system of programming. In this system the introduction into the machine of a fairly wide class of problems does not require the writing of an ordinary program, consisting of an ordered set of elementary commands. Instead, we have to write the control words, and if necessary, certain pieces of programs for the operations on the numbers. The realization of such a system requires a machine possessing certain special structural features. We can regard the machine as consisting of individual units (“submachines”). The first of these submachines is used for operating on numbers, the second for operating on addresses. To match the operation of the arithmetic and address submachines, a third “control submachine” is employed. In essence, each submachine has its arithmetic (transforming organ), memory and control with program. The arithmetic submachine has a relatively complex arithmetic, a large memory and programs for operation on number codes. The address submachine has a primitive arithmetic, a smallish memory (index registers) and programs for address transformation which will in future be termed address development laws. The control submachine has as its own program control words. This machine contains an arithmetic in a strongly reduced form and a small memory. Generally speaking, constructional separation of the submachines is not essential. In existing machines of the Larc and Stretch type it is not carried out in this clear-cut way. However, constructional separation of the submachines would be an advantage. This functional structure of the computational complex can simplify programming and greatly facilitate the exchange of information between machine and man. The formation of more complex computational complexes can be carried out with the aid of these triads. The possible functional arrangement of a computer is shown in the figure. The black squares denote the local control units, and the arrows the connections between the functional blocks. The notation is as follows: OM is the working memory, Pr.OM is the working memory for the program, Ar.M is the arithmetic submachine, Ad.M is the address submachine, Con.M is the control submachine. The figures indicate the transmitted information, namely: 1, 2 are numbers; 3 are predicates (ω-signs), 4 are initial data for changing the content of the index registers, 5 are ω-signs, 6 are the codes of the subprograms to vary the contents of the index registers, 7 are the number codes, 8 are the command codes, 9 are the symbols of the operations.