KLIPA(ID:2695/kli002)Russian symbolic translatorfor Digitalizing Translator of Symbolic Addresses (in Polish) Polish symbolic translator for the URAL machine Polish Academy of Sciences, Warsaw 1961 "The logical design of most contemporary computers does not appear to be suitable for optimal translation from an external language into machine codes and thus existing translators operate quickly, but produce programs far from optimal (e.g., MAD, Manchester Autocode), or, according to our understanding of the word optimal, are hopelessly slow, e.g., SAKO" "The translator for KLIPA was constructed by a team of scientists from the Computation Centre of the Polish Academy of Sciences, which included [Marek Greniewski, Wladyslaw Turski,] Mrs. Jadwiga Empacher, Miss Jadwiga Zdanowska and Mr. Ryszard Solich." NB - the identically-named articles from 1962 and 63 are similar but quite different. Both should be read. NBB - when looking for the last page of the ACM Conference paper, it is actually on page 124 in the middle of the last section (Hillegas, starting page 118) - no DOI though Related languages
References: KLIPA is an assembling and readdressing program which replaces inscriptions by their numerical values. KLIPA is used for automatic performance of the following: (1) Assembling of separate pieces of a program together. (2) Selecting and including desired standard and library subroutines into the main program. (3) Assembling of sections of the main program. (4) Calling proper sections of the program. (5) Transfer to and from the auxiliary storage. There are, by and large, two factors which have determined the form of KLIPA. It is an example of our general view on automatic programming and its connection with the internal organization or logical design of computers; additionally the form of KLIPA is, up to certain degree, a result of unavoidable haste in which the language has been constructed. The logical design of most contemporary computers does not appear to be suitable for optimal translation from an external language into machine codes and thus existing translators operate quickly, but produce programs far from optimal (e.g., MAD, Manchester Autocode), or, according to our understanding of the word optimal, are hopelessly slow, e.g., SAKO. Some, noticeably Soviet scientists, are of the opinion that very complicated programs involving compilers or translators produce programs more optimal then those produced by a programmer woking in machine codes. It seems, however, that this may be true only if one compares coding in absolute addresses with a fully automatic coding. However, one should bear in mind, that there exists a third coding technique, viz., quasi-manual coding; this serves to preserve the form of machine codes, while relying on an automatic process for performance of more tedious tasks. Programming in KLIPA was found to be both easier and quicker than in machine code. We are aware of the possibilities of a real autocode, but feel that sophisticated autocodes need computers built to meet very specific demands, which otherwise have to be satisfied by long and time-consuming sequences of operations. in Automatic programming and compilers I view details @article{366654, author = {Marek Greniewski and Wladyslaw Turski}, title = {The external language KLIPA for the URAL-2 digital computer}, journal = {Communications of the ACM}, volume = {6}, number = {6}, year = {1963}, issn = {0001-0782}, pages = {321--324}, doi = {http://doi.acm.org/10.1145/366604.366654}, publisher = {ACM Press}, } DOI Extract: Digitalizing Translator of Address Parameters The KLIPA Digitalizing Translator of Address Parameters is an assembling and readdressing program which replaces inscriptions by their numerical values. KLIPA is used for automatic performance of the following: (1) Assembling of separate pieces of a program together. (2) Selecting and including desired standard and library subroutines into the main program. (3) Assembling of sections of the main program. (4) Calling proper sections of the program. (5) Transfer to and from the auxiliary storage. There are, by and large, two factors which have determined the form of KLIPA. It is an example of our general view on automatic programming and its connection with the internal organization or logical design of computers; additionally the form of KLIPA is, up to certain degree, a result of unavoidable haste in which the language has been constructed. The logical design of most contemporary computers does not appear to be suitable for optimal translation from an external language into machine codes and thus existing translators operate quickly, but produce programs far from optimal (e.g., MAD, Manchester Autocode), or, according to our understanding of the word optimal, are hopelessly slow, e.g., SAKO. Some, noticeably Soviet scientists, are of the opinion that very complicated programs involving compilers or translators produce programs more optimal then those produced by a programmer woking in machine codes. It seems, however, that this may be true only if one compares coding in absolute addresses with a fully automatic coding. However, one should bear in mind, that there exists a third coding technique, viz., quasi-manual coding; this serves to preserve the form of machine codes, while relying on an automatic process for performance of more tedious tasks. Programming in KLIPA was found to be both easier and quicker than in machine code. We are aware of the possibilities of a real autocode, but feel that sophisticated autocodes need computers built to meet very specific demands, which otherwise have to be satisfied by long and time-consuming sequences of operations. The URAL-2 computer is anything but such a computer. When constructing the KLIPA useful experience was gained while studying the EMAL-2, a Polish-made drum computer, operated in the Center for two years. KLIPA uses the Second International Teleprinter Code which allows for the use of: A fixed set of inscriptions are used; this may consist of one or more letters; e.g., x, sin, delta, april. Inscriptions serve to represent directives, address parameters, indices, variable and procedure (subroutine) identifiers. Variable identifiers may depend on parameters, which may be either symbolic (running indices) or fixed. If they are fixed, they may assume one of the following forms, which are identical: delta (5) ~ delta + 5 _= delta 5 In the case of symbolic indices, the most elaborate form they may assume is: an + fi, where a and p stand for any octal numbers not exceeding, however, 7777-?and n is any variable identifier; thus it is possible to write correctly: kappa (15pi + 637), understood by the translator as 15pi + 637th variable in an array of kappas. In the KLIPA translator a new method for identification of inscriptions has been employed. This method-?characteristic Junction method?-is, in a sense, a development of ideas presented earlier2,3, and can be successfully used in all procedures where it is necessary to establish correspondence between alpha-numerical words and numerical values; e.g., in automatic translation. Let us assume that the words under consideration are written by means of a code, in which a fixed set of uniform symbols corresponds to each letter. The Second International Teleprinter Code can be used as an example of such a code. In this code a fixed set of punched holes corresponds to each letter. Now, in such a code, any s-letter word may be interpreted as an s-figure number in positi-tional notation with the basis 32, inasmuch as the teleprinter operates the 5 channel tape. If in a vocabulary, to which the words under consideration belong, there are no repetitions, and if this vocabulary consists of finite number of items, then the proposed method, has an elegant geometrical interpretation. Extract: A program written in KLIPA A program written in KLIPA can be divided into sections. When the program is being obeyed, one section only is recorded in the main store. Sections may be interchanged and behave like chapters in the Manchester Autocode. There is one significant difference, however, namely the section length; though being fixed for a given program, it may vary in certain limits from one program to another according to the programmer's wish. A skillful programmer may derive obvious advantages from this feature. During the execution of a program written in KLIPA, there are some reeisters allocated in the main store for working cells of standard subroutines, and for parts of translator?red-tape routines of it. The remainder of the store constitutes a programmer's little acre, which can be divided between variables?and constants?of the programs, and the program-?or rather a section of it?itself. Numerical quantities may be regarded as forming two classes. All of the quantities, which are needed for this section of the program actually being obeyed, and only for this section belong to, the first class. All of the quantities needed in at least two sections belong to the second class, and will be henceforth called general variables. It is imoortant that the eeneral variables should not be lost when sections are inierchanged. A KLIPA instruction consists of two parts: (a) Ooerational. (b) ~ddress. The Arst part consists of two octal digits which may be preceded by a? sign, if the instruction is to be modified inside of an automatic cycle. The address part is separated from the operational part by any number of sp symbols?spaces?and may be written in any of the following forms: An octal number, an inscription and an octal number, an inscription and an octal number separated by the ? or + sign, and an inscription with a parameter embrased in round brackets. All octal numbers in the address part must not exceed 7777. The address part may as well be empty. Examples of KLIPA instructions are: 37 41 176 ?56 bcta 23 klucz* 4 22 k + 11 27 gamma? 7654 ?42 a(2n ? 5) One more feature of the KLIPA translator deserves to be mentioned. In the translator we very often use the machine instruction 30u. This instruction allows for thc use of any main store register as a B register. If any other instruction is prcccded by the 30a, the computer adds the content of u register to that instruction and obeys such a compound instruction. This is frequently used for organizing multiway switches and checking the formal correctness of a program written in KLIPA. in [ACM] CACM 6(06) (June 1963) view details A KLIPA-program consists of equal sections, whose length, however, is at the disposal of the programmer. There is special provision for modifying of Op-codes of instructions in the course of the program. in ACM Computing Reviews 4(06) November-December 1963 view details External link: Online copy in ACM Computing Reviews 4(06) November-December 1963 view details in ACM Computing Reviews 4(06) November-December 1963 view details |