KLIPA(ID:2695/kli002)

Russian symbolic translator  


for 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
EMAL assembly => KLIPA   Evolution of
MAD => KLIPA   Mild Influence
Manchester Autocode => KLIPA   Mild Influence
SAKO => KLIPA   Mild Influence

References:
  • Greniewski, M., and Turski, W., "Beschreibung der Sprache KLIPA" Proceeding of the Dresden Symposium on Automatic Computing Machines 1962 view details
  • M. Greniewski and W. Turski "External language KLIPA for digital computer URAL-2" view details Abstract: 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. Extract: About KLIPA
    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
  • Greniewski, Marek and Wladyslaw Turski "The external language KLIPA for the URAL-2 digital computer" view details bib:
    @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
  • Shamrat, M. review of Greniewski and Turanski 1962 view details Abstract: This is a brief description of KLIPA, an assembly language for the URAL-2. A very interesting feature is the method for identification of symbolic names by means of a "characteristic function". This consists basically of replacing each of a given set of integers (being obvious translations of the alphabetical symbols) in a one-one fashion by integers out of a small interval, and using up most of the numbers in the interval.

    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
  • Turski, W. M. "A model for data structures and its applications" Acta Informatica 1(1) May 1971 pp26-34 view details Abstract: This paper presents a constructive model for data structures description based on the concept of data space defined as the Cartesian product of a name space and a value space. The subsets of name space are ordered by an a priori given selector function. The model is used for classification of data structures into regular (array-like), semiregular (key-ordered list-like) and irregular (threaded list-like) data structures. The notion of data storage structures induced by addressing mechanism is introduced and storage mapping functions are described using this concept together with the data structure model. The first part of the paper contains also some of the model applications to regular and semiregular data structure problems and a brief comparison withAlgol 68 treatment of regular data structures.
    External link: Online copy
          in ACM Computing Reviews 4(06) November-December 1963 view details
  • Turski, Wladyslaw M. "It was fun" Information Processing Letters 88(1-2) October 2003 To honour Professor W.M. Turski's Contribution to Computing Science on the Occasion of his 65th Birthday pp7 - 12 view details External link: Online copy
          in ACM Computing Reviews 4(06) November-December 1963 view details