SAKO(ID:2178/sak001)

Polish Automatic Coder  


for System : Automatyczniego Kodowania Operacji = "System: Automatic Coding Operation"

Leon Lukaszewicz, Instytut Maszyn Matematyczynch, 1960

Nicknamed the "Polish FORTRAN". Widespread use throughout Eastern Europe and the Soviet Union - seminal programming language for the Eastern Bloc.

Very elegant, lots of features not found elsewhere at the time, including  
- ability to return structures or multiple values
- ability to have implicit scaling in all values, and to alter that scale at any time
- SUBSTITUTE version of subroutine to function pretty much as the Strachey autogenerator


People:
Related languages
AUTOCODE => SAKO   Influence
FORTRAN => SAKO   Influence
MATH-MATIC => SAKO   Influence
SAKO => KLIPA   Mild Influence

References:
  • Ware, W. H. et al. "Soviet computer technology - 1959" pp131-166 view details
          in [ACM] CACM 3(03) March 1960 view details
  • Auerbach, I. L. "European electronic data processing-a report on the industry and the state of the art" Proc. I.R.E. 49 (Jan. 1961), 330-348 view details
          in [ACM] CACM 3(03) March 1960 view details
  • Lukaszewicz, L. "SAKO-an Automatic Coding System" pp161-176 view details
          in Goodman, Richard (ed) "Annual Review in Automatic Programming" (2) 1961 Pergamon Press, Oxford view details
  • Mazurkiewicz, A. "Arithmetic Formulae and the Use of Subroutines in SAKO" pp177-195 view details
          in Goodman, Richard (ed) "Annual Review in Automatic Programming" (2) 1961 Pergamon Press, Oxford view details
  • Barron, D. W. review of Goodman, Richard (ed) "Annual Review in Automatic Programming", Vol. 2 view details Abstract: This is the second volume in the series produced under the auspices of the Automatic Programming Information Centre at Brighton. It contains a series of independent papers in two groups, one concerned with scientific programming languages, the other with commercial programming languages. The Editor's aim "to exhibit current trends by a sample collection of original reports," is only partially achieved by a disjointed series of papers of widely varying standards. Some important trends are not mentioned, but there is a promise that the omissions will be rectified in a later volume. Extract: SAKO
    Two papers describe SAKO, a language developed for the computers at the Polish Academy of Sciences. This has many interesting features, notably the fact that it uses fixed point arithmetic, the use of Boolean variables and the subroutine mechanism, which is similar to the ALGOL procedure concept. A subroutine is defined with a set of formal parameters which are replaced by actual parameters either at the subroutine call, or by a separate instruction "substitute." In either case, it is possible to replace selected parameters only, so that in successive calls of a subroutine when only one
    parameter is changing it is not necessary to write out all the parameters which remain the same at each call.
          in The Computer Bulletin June 1962 view details
  • Borowiec, Jan "Translation of arithmetic formulae in SAKO" Algorytmy 1,1 (1962), 37-58. view details
          in The Computer Bulletin June 1962 view details
  • Gosden, John A.; Gay, Roger E.; Jones, John L.; Merner, Jack N. Shaw, Christopher J. "Report of a visit to discuss common programming languages in Czechoslavakia and Poland, 1963" pp660-661 view details Abstract: Early in June 1963 there was a meeting in Berlin [1] of the Subcommittee for Programming Languages, SC5 of TC97, the Technical Committee for Standardization of Computers and Information Processing [2]. Taking advantage of the proximity of Poland and Czechoslovakia, who are interested in the subject but have not actively participated in SC5, a small group representing the Secretariat of SC5 visited those countries. The major purpose of the visit was to discuss such topics as the state of the art of programming languages in each country?both development and use, any national standardization activity, participation in international standardization, and the present state and future prospects of international standardization. A formal report was made to SC5 in Berlin after the visit. The present report is not an official report of the visit. It is a private report of the group, intended for public dissemination. It includes some material not directly relevant to the official purpose of the visit and omits some of the material pertinent only to the official ISO activity, or parts of the discussions which it would be premature or discourteous to publish at this time. DOI Extract: SAKO descendants
    Development of New Languages. SAKO is being developed in three different but compatible directions, oriented toward mathematical, commercial and logical data processing, respectively. They are closely following the designs of FORTRAN, COBOL and ALGOL and are not
    developing entirely new languages. Emphasis is being placed upon languages that are easy to learn and efficient to implement. ALGOL will be supported as a general publication language and it is intended that translation between SAKO, FORTRAN, ALGOL and any new versions would be straightforward, if not completely mechanized. The new developments are for the ZAM 4, which is intended more for general data processing rather than scientific work.
          in [ACM] CACM 6(11) (Nov 1963) view details
  • Yershov, A. P. "A method of addressing used in SAKO-SAS translations." pp45-74 view details Abstract: A method of translation of the symbolic language, so-called Siv JS, into the machine language is described. NVJS is the result of the action of a SAKO compiler and a SAS translator. A given NVJS statement may be an instruction or a directive. Every instruction corresponds to a machine language instruction. Every directive corresponds to a determined action of the WJS program, the so-called Addressator.

    A WJS statement may include:

    the sign
    the operation number in the internal machine code
    the modification sign
    the address sign
    the sign to distinguish directive from other statements
    the symbolic address, which may be a variable, a label, an integer with a sign (relative address) or an integer unsigned (real address).
    Because of its generality the described method is
    not limited to SAKO and SAS translators.


          in Algorytmy 1, (1963) view details
  • Sherman, P. M. review of Borowiec 62 (SAKO) view details Abstract: This paper describes a method for compiling machine code from an algebraic formula. The method consists of scanning a formula prior to processing, converting each operator to a numeric quantity. The particular numerics chosen reflect the hierarchy in operation sequencing: exponentiation before multiplication, multiplication before addition, etc. Functional operations are considered. Expressions parenthesized within other expressions are accounted for by appropriate numerics. Specifically, left parentheses and right parentheses each cause 64 to be added and subtracted, respectively, from numerics to the right. Low values represent operations performed after higher values.

    Code is then generated by processing local maxima within the string of numerics. As these are processed, the next set of local maxima are processed, and so on. In this way, the required hierarchical sequencing is achieved. As a; final step, redundant generated instructions are eliminated. The paper, though quite interesting, suffers from a lack of clarity and an insufficient number of examples.


          in ACM Computing Reviews 5(01) January-February 1964 view details
  • Stock, Karl F. "A listing of some programming languages and their users" in RZ-Informationen. Graz: Rechenzentrum Graz 1971 207 view details Abstract: 321 Programmiersprachen mit Angabe der Computer-Hersteller, auf deren Anlagen die entsprechenden Sprachen verwendet werden kennen. Register der 74 Computer-Firmen; Reihenfolge der Programmiersprachen nach der Anzahl der Herstellerfirmen, auf deren Anlagen die Sprache implementiert ist; Reihenfolge der Herstellerfirmen nach der Anzahl der verwendeten Programmiersprachen.

    [321 programming languages with indication of the computer manufacturers, on whose machinery the appropriate languages are used to know.  Register of the 74 computer companies;  Sequence of the programming languages after the number of manufacturing firms, on whose plants the language is implemented;  Sequence of the manufacturing firms after the number of used programming languages.]
          in ACM Computing Reviews 5(01) January-February 1964 view details
  • Sammet, Jean E., "Roster of Programming Languages 1972" 243 view details
          in Computers & Automation 21(6B), 30 Aug 1972 view details
  • Stock, Marylene and Stock, Karl F. "Bibliography of Programming Languages: Books, User Manuals and Articles from PLANKALKUL to PL/I" Verlag Dokumentation, Pullach/Munchen 1973 512 view details Abstract: PREFACE  AND  INTRODUCTION
    The exact number of all the programming languages still in use, and those which are no longer used, is unknown. Zemanek calls the abundance of programming languages and their many dialects a "language Babel". When a new programming language is developed, only its name is known at first and it takes a while before publications about it appear. For some languages, the only relevant literature stays inside the individual companies; some are reported on in papers and magazines; and only a few, such as ALGOL, BASIC, COBOL, FORTRAN, and PL/1, become known to a wider public through various text- and handbooks. The situation surrounding the application of these languages in many computer centers is a similar one.

    There are differing opinions on the concept "programming languages". What is called a programming language by some may be termed a program, a processor, or a generator by others. Since there are no sharp borderlines in the field of programming languages, works were considered here which deal with machine languages, assemblers, autocoders, syntax and compilers, processors and generators, as well as with general higher programming languages.

    The bibliography contains some 2,700 titles of books, magazines and essays for around 300 programming languages. However, as shown by the "Overview of Existing Programming Languages", there are more than 300 such languages. The "Overview" lists a total of 676 programming languages, but this is certainly incomplete. One author ' has already announced the "next 700 programming languages"; it is to be hoped the many users may be spared such a great variety for reasons of compatibility. The graphic representations (illustrations 1 & 2) show the development and proportion of the most widely-used programming languages, as measured by the number of publications listed here and by the number of computer manufacturers and software firms who have implemented the language in question. The illustrations show FORTRAN to be in the lead at the present time. PL/1 is advancing rapidly, although PL/1 compilers are not yet seen very often outside of IBM.

    Some experts believe PL/1 will replace even the widely-used languages such as FORTRAN, COBOL, and ALGOL.4) If this does occur, it will surely take some time - as shown by the chronological diagram (illustration 2) .

    It would be desirable from the user's point of view to reduce this language confusion down to the most advantageous languages. Those languages still maintained should incorporate the special facets and advantages of the otherwise superfluous languages. Obviously such demands are not in the interests of computer production firms, especially when one considers that a FORTRAN program can be executed on nearly all third-generation computers.

    The titles in this bibliography are organized alphabetically according to programming language, and within a language chronologically and again alphabetically within a given year. Preceding the first programming language in the alphabet, literature is listed on several languages, as are general papers on programming languages and on the theory of formal languages (AAA).
    As far as possible, the most of titles are based on autopsy. However, the bibliographical description of sone titles will not satisfy bibliography-documentation demands, since they are based on inaccurate information in various sources. Translation titles whose original titles could not be found through bibliographical research were not included. ' In view of the fact that nany libraries do not have the quoted papers, all magazine essays should have been listed with the volume, the year, issue number and the complete number of pages (e.g. pp. 721-783), so that interlibrary loans could take place with fast reader service. Unfortunately, these data were not always found.

    It is hoped that this bibliography will help the electronic data processing expert, and those who wish to select the appropriate programming language from the many available, to find a way through the language Babel.

    We wish to offer special thanks to Mr. Klaus G. Saur and the staff of Verlag Dokumentation for their publishing work.

    Graz / Austria, May, 1973
          in Computers & Automation 21(6B), 30 Aug 1972 view details
  • Marczynski, R. W. "The First Seven Years of Polish Digital Computers" pp37-48 view details
          in Annals of the History of Computing 02(1) view details
  • Lukaszewicz, L. "On the Beginnings of Computer Development in Poland" pp103-107 view details
          in Annals of the History of Computing, 12(4) October 1990 IEEE view details
  • "Poczitki informatyki w Polsce" Gazeta IT 3(11) 4 March 2003 view details External link: Online copy
          in Annals of the History of Computing, 12(4) October 1990 IEEE view details