Soviet APL: a Historical Outline
Vector 7:3, page 102
Transcribed from the printed issue; not yet reviewed. Read it in the PDF of the issue, page 102
This paper is a personal survey of the significant events in Soviet APL history. It is intended to give the audience a general view of the evolution and implementation of the Soviet APL interpreters, as well as outline the successive applied systems.
The Beginning¶
Academician N.N.Moiseyev was the first Soviet scientist to get acquainted with APL in 1975. At the University of Toronto he was astonished to see how easily and speedily his Canadian colleagues could produce programs and obtain necessary results using APL. On his return Moiseyev initiated the creation of the first Soviet APL interpreter.
The APL/BESM realization(implementation) on a powerful Soviet BESM-6 computer was undertaken by S.P.Prokhorov, who was at that time working at the Computer Centre of the Academy of Sciences of the USSR [1]. When Prokhorov left the Centre in 1980, the APL/BESM system was on the whole completed. It underwent test running at several computing centres including the Leningrad Research Computing Centre of the Academy of Sciences. Although APL/BESM was not to become a finished programming product, its development was the starting point for the Soviet APL interpreters.
Moiseyev’s visit to Canada had one more effect, viz. the APL interpreter was incorporated into the CDC CYBER-172 software bought in 1978 for the former Leningrad Research Computer Centre, now the Leningrad Institute for Automation and Informatics of the Academy of Sciences of the USSR (LIIAS). The APL 2.0 version, developed under the direction of J.H.Burrill at MIT, had for a long time been the only legally imported APL interpreter in the Soviet Union [2]. Since 1979 intensive application of the APL 2.0 version has been undertaken by the North-West Branch of the Central Research Economic Institute at the State Planning Committee of the RSFSR, at the mathematical simulation department headed by V.V.Ponomaryov [3]. Research associate A.I.Miroshnikov of the same department developed an intelligent graphic APL terminal, emulated on the mini-computer Wang-2200 for the CYBER-172 incorporated into the Leningrad computer network of the Academy of Sciences.
The APL story is closely linked with IBM. The Soviet Union was no exception in that respect. It was along with the IBM/360 computer system that APL found itself in this country. One of the largest computer development centres, the Computer Research Institute in Minsk, together with the Institute for Computer Machinery (Sofia, Bulgaria) used APL as a tool for analysis and synthesis of digital systems [4]. Inclusion of APL into the standard software for the Soviet computer series ES (compatible with IBM/360 and IBM/370 systems) was being considered. Unfortunately this upsurge came to nought, mostly due to the lack of adequate terminal equipment in the USSR and conservative attitudes of the leading scientists. This was the period of general enthusiasm about structured programming in the USSR. Production of a series of APL-terminals for Bulgaria by the Minsk Computer Works was to become the chord finale at this stage of the APL history.
Independent Realisations of APL¶
Frederico Fellini (the great film producer) once said that there is always somebody in the world who is shooting Anna Karenina. In the Soviet Union at different times several groups of developers quite independently attempted to realize APL.
In the Moscow Energetics Institute (MEI) under E.T.Semyonova, APL was realized in the late seventies. APL/MEI was based on the DOS ES batch mode and involved APL-program preparation on cards [5]. Later A.Sokolov developed an APL terminal with an APL character set on the basis of the Soviet 7920 terminal. APL/MEI was one more variation of APL/360 and, as distinct from the latter, had a great number of errors. It is for this reason perhaps that this version was not applied anywhere apart from the one organization which had invested money in its development. Later the developers team from MEI rewrote APL anew in … LISP. This APL was used only by the developers themselves.
About the same time at NIIMM in Yerevan (Armenia) an interactive system with APL as a command language was realized [6]. This system was to solve the problem of designing microprogram support for the central processor of the ES1046 computer that was then being developed. Again, for this APL version APL\360 was the prototype.
In the early eighties a group of specialists from the Siberian Department of the Academy of Sciences (Novosibirsk) was developing special software for image processing on the multiprocessor complex SM2/PS-2000 [7]. Having realized on parallel architecture a set of primitives for processing data arrays, the developers discovered all of a sudden that they had effectively realized a subset of APL. The report on this work was a great success at the first Soviet APL seminar in Obninsk in 1986. The developers were quite optimistic but further information on their work is lacking.
The town of Obninsk, not far from Moscow, had for a long time remained quite obscure. Intensive research in the field of nuclear energetics carried on in the town lent secrecy to any information about it. It is for this reason perhaps that nobody outside Obninsk knew about the APL application there. In the late seventies A.I.Kononov had adapted an APL\360 version to the ES series computers replacing APL characters by the Russian letters resembling the former in their outlines, similar to APL/BESM [8]. This version differed from the others in that it provided a multi-user mode of computer application. All the APL interpreters developed in the Soviet Union are single-user ones. Since the early eighties the APL SV system has been used in the teaching process (in the Central Institute for Skill Improvement) [9], which is an IBM VS APL version adapted to the Soviet computers [10].
In 1983 the "Radio and Communication" publishers issued a book by N.A.Magariu "The APL Programming Language" [11]. With no relation to the latter a team of researchers and students from the Kishinyov state University undertook development of an APL interpreter for SM-2 mini-computers, compatible with HP computers. This version differs from APL/360 principally in that it makes it possible for the user to determine in advance the set of APL primitives he will use during the session, similar to the auxiliary processors specification by the user in IBM APL.
Publicity for APL¶
In 1984 the annual international conference on APL was held in Helsinki, Finland. After the conference ended K.Iverson, R.Bernecky and T.Seppala visited Moscow [13]. At that time Soviet APL users were isolated from each other and the visit of APL veterans remained unnoticed by most of them. Iverson was not to meet like-minded persons, but rather laymen of no great capabilities, which did not exactly make a favourable impression upon him.
After the journal "Vycheslitelnaya Tekhnika" had been published in 1990 "Computer Machinery" - the Russian "BYTE" with a circulation of 73 thousand copies) that was wholly devoted to APL [12], in the Soviet Union there made its appearance a team from the joint venture "Ural" that had developed its own APL-like language for IBM PC compatibles.
New Wave¶
The new APL wave in the Soviet Union is again connected with IBM. As had happened before, APL got into the USSR together with the IBM hardware. But this time it was a "strange" programming product APL*PLUS/PC developed by the American STSC, which was unknown in the USSR altogether. The position of APL*PLUS/PC was further consolidated due to the incredible popularity of the statistical graphics system STATGRAPHICS, realized in APL*PLUS among the Soviet users.
The first APL presentation for IBM PC was arranged by Professor P.I.Medow (the University of Toronto, Canada) at the Computer Centre of the Academy of Sciences in Moscow, and also LIIAS in Leningrad in 1983. Moreover, Professor Medow presented his colleagues in Moscow and Leningrad with two APL computers MCM-70, which inspired lots of people to learn APL. Since 1983 the APL*PLUS/PC system, though illegally, has been applied at the North-West Branch of the Central Research Economic Institute [14].
The problem of intellectual property has a most dramatic influence upon computer science development in the USSR. The notion of intellectual property is not to be found in the Soviet legislation as yet, and thus in the USSR neither a Soviet citizen nor a foreign company have any actual rights to their own programming product. It goes without saying that the Soviet scientists and programmers are aware that by using illegal programming products they are breaking the law, but under the present conditions they are forced to violate the universal legal and moral standards as they are not able to acquire the necessary programs officially. In summer 1989 an international forum was held in Pereslavl-Zalessky near Moscow devoted to the intellectual property issues in computer software. The world’s leading firms, such as IBM, Microsoft, ICL, Xerox, Lotus, Ashton-Tate and others took part. At the organizers’ invitation A.I.Miroshnikov represented the Soviet APL community - and this was to be the first act of international recognition of APL in the Soviet Union.
When in 1985 S.P.Prokhorov had at his disposal two new IBM XT computers, he had no problem in choosing the programming system - it could be only APL*PLUS. Prokhorov and N.Zezjulinsky, working 16 hours a day during 3-4 weeks developed a system for effective control over the Stavropol region’s agriculture (the same region where Gorbachev, the current president of the USSR, had worked). This successful development was reported in the central newspapers and in an all Union TV broadcast. Nevertheless the system did not gain popularity - there were too few organizations owning IBM PCs at that time.
In 1985 at the Computer Centre of the Academy of Sciences in Moscow A.V.Kondrashev realized an APL-interpreter version for SM-4, the Soviet version of DEC PDP-11 [15]. This APL interpreter was the first Soviet APL version to gain popularity and to be commercially successful. Similar to APL/BESM (Kondrashev had begun as a student in Prokhorov’s team) APL/VTCAN makes use of the Russian spelling of system commands, functions and the names of variables. Seeking to make maximum use of the potentialities of a micro-computer with only 64K RAM M.Koganov and A.V.Kondrashev realized APL/VTCAN on a ROM-card inserted into the frame of the Soviet micro-computer DVK (the desktop version of the PDP-11) [16].
Having thus changed from swapping with a disk to using immediate ROM they managed to improve considerably the interpreter’s properties. APL/VTCAN supports a 32-36K workspace and a symbol table of 64 names including local variables and labels, and is more suited to teaching, or to functioning as an intelligent terminal. Nevertheless it was used to carry out a few software projects: a modelling system for the BN-600 nuclear reactor diagnosis (A.Scomorokhov, Obninsk), the DIASTAT statistics program package (V.Vladimirov, Obninsk), the interface to RBD-MICRO (V.Neradovsky, Leningrad), and at least three different accounting systems (Sverdlovsk and Leningrad).
Birth Of The Soviet APL Community¶
In 1986 in Obninsk the first seminar-school was held, which has now become annual. A working team on APL, as yet informal, is being formed, that aims at popularizing APL and coordinating the development work dealing with it. The 1986 seminar was marked by great enthusiasm - many of the participants, working in the same town, actually didn’t know each other. In 1988 the first Soviet organization dealing with production and popularization of Soviet APL products came into being - the scientific technical co-operative "Dialog".
In 1989 Kondrashev transferred APL/VTCAN to a more modern Soviet micro-computer Electronika-85, compatible with DEC Professional 380. On the APL/85 version the workspace was enlarged four times (64K for functions and 64K for variables) and it became possible to use a 20M hard disk [17].
In 1989 a decision was taken in the Soviet Union governmental circles to reorganize four ministries dealing with computer development and production into one ministry with a unified policy in the field of computer machinery: following IBM. Consequently financing of projects based on computers compatible with HP and DEC products was limited, and the interest in any software except that for IBM-compatible machines fell dramatically. The only Soviet APL-interpreter found itself in a difficult situation.
Though there were a great number of attempts to realize the APL programming system, there were relatively few successful ones. At present there are practically only three teams in the USSR that are specifically engaged in developing applied programs in APL. The principal direction of the Obninsk team’s work is developing teaching programs for APL/VIDEO, statistical programs (in the Central Institute for Skill Improvement), prototyping of algorithms and modeling system development for nuclear reactor diagnosis (in the Institute for Physics and Power Engineering). The team of scientists from the Computer Centre of the Academy of Sciences (Moscow), which is using APL*PLUS/PC, specializes in developing programs for simulating economic processes, with wide application of graphics.
At the Central Research Economic Institute (Leningrad) and LIIAS (Leningrad), APL is used as a practical tool for developing DSS and algorithm models of economic systems and processes [18]. These models serve as a basis for the Institute’s work, providing the leadership of the GOSPLAN of Russia and the Planning Committee of Leningrad region with results of the analysis and forecasts of economic development. The Leningrad team of users has always had at its disposal powerful hardware and quite modern software: CDC APL 2.0 and STSC APL*PLUS.
It has developed drivers that make it possible to use Cyrillic in different APL versions, as well as realizing full adaptation for application in the USSR of the STATGRAPHICS statistical graphics system. The experience they have acquired enables the team, together with the system for preliminary planning, to prepare for object construction designed for commercial use on the Soviet Union territory [19].
Nowadays two APL systems are mainly used in the USSR: APL/VTCAN and APL*PLUS/PC. APL/VTCAN versions are used on SM-4 series minicomputers (about 40 copies of it have been installed) and on different versions of DVK-3 microcomputers (more than 100 copies have been distributed). Unlike the Soviet APL version, which is rather difficult to copy, the APL*PLUS/PC system is copied and used uncontrollably. At least 20 users of this popular APL version are known to the author, half of whom work in Leningrad. Besides these, two multiuser APL systems are being used on mainframes: APL/VIDEO in Obninsk on an IBM/370 compatible and APL 2.0 on CDC Cyber-172 in LIIAS in Leningrad. One more single-user APL/MEI system is being used in Moscow.
A Breakthrough¶
The year 1990 will go down into the history of the Soviet APL community as the year of the breakthrough. That year two Soviet representatives read their papers at the annual international APL90 conference in Copenhagen for the first time and joined SigAPL.
"The Russian Advance", supported by Finnish and Dutch national APL associations, was received rather optimistically. The world APL community was faced all of sudden by a strange APL user community, who managed to retain the APL-pioneers’ enthusiasm while working in isolation and in rather strained conditions. It was this factor as well as the general interest towards the USSR that made ACM SigAPL support the idea of holding the APL92 conference in Leningrad, USSR.
In September the Union of the Soviet APL users was registered in Obninsk. ACM came forward with an initiative of establishing five free ACM Chapters (or Local SIGs) in the USSR, with the view to organizing the Soviet SigAPL as well.
On October 11-12 the first international meeting on APL in the USSR - the Finnish-Soviet seminar "APL and Application Software" - was held in Leningrad, which was a big success. 50 Soviet APLers and 26 participants from Finland and Sweden took part.
At the end of 1990 the first state company - InfoStroy - was established in Leningrad, whose aim is to develop and distribute APL-based application systems, and also to supply APL systems for different computer classes. At the same time the Leningrad APL Users Group was formed which is contributing to APL development in the USSR along with the Union of the Soviet APL-users.
Though APL can hardly be called a widespread programming language in the USSR, the great way it has grown in this country during the last year with the help of the international APL community gives us hope for success in the near future.
Bibliography¶
[1] Prokhorov S.P., Prokhorova T.V., System APL/BESM, Software for BESM6, Moscow, CC AS USSR, 1976.
[2] Miroshnikov A.I., Trojan A.I., APL 2.0. Publications on software, Leningrad, LSRCC, 1981, 170 p.
[3] Golubeva S.V., Miroshnikov A.I., APL: Programming Tools, LIIAS, Leningrad, 1982, 39 p.
[4] Petkov A., Janev K., Bojanov K., Programming System APL - the Effective Tool for Analysis and Synthesis of Digital Systems/Computing Machinery of the Socialist Countries, Moscow, Statistics, 1979, Vol.5.
[5] Semernova E.T., Semernov A.L., APL/Programming Languages, Moscow, MEI, 1979, Vol.2.
[6] Shukurjan S.K., Topchjan S.A., Manukjan L.E., Dialog System Using APL, Questions on Radioelectronics, Series: Computing Machinery, 1983, No.8, pp.51-59.
[7] Scholnik K.M., Technological Support of the PS-2000 in the OBRAZ-System, Theoretical and Applied Questions on Data Parallel Processing, Novosibirsk, CC AS USSR, 1984.
[8] Malashinin I.I., Kononov A.I., Implementation of APL on ES Computer, Applied Informatics, Moscow, Finance and Statistics, 1981, Vol.1, pp.155-170.
[9] Luksha O.P., Rejmarov G.A., Instruction in Research Using Dialog Computing System, Progressive Forms of Work and Production Organizing, Moscow, VIMI, 1988, pp.21-23.
[10] Kononov A.I., Concepts and Application of the APL Programming Language in SVM ES Operating System, Moscow, CSRIatominform, 1989, 104 p.
[11] Magariu N.A., APL Programming Language, Moscow, Radio and Communication, 1983, 104 p.
[12] Language for Personal Calculations. Computing Machinery, Moscow, Knowledge, 1990, No.4.
[13] Meetings and Conferences. APL Quote Quad.-1984.- Vol. 15, No.1.
[14] Emanovskaja T.N., Miroshnikov A.I., Using of PC in DSS for Long-Term Planning: in the Proc. of III Seminar on PCs and LANs, Tbilisi, 1986, pp.227-228.
[15] Kondrashev A.V., Dialog Computing System APL/VTCAN, Moscow, CC AS USSR, 1985, 66 p.
[16] Barmin A.V., Koganov M.I., Kondrashev A.V. DVK as a personal APL computer. Microprocessor devices and systems. 1990, No.4, pp.15-20.
[17] Kondrashev A.V., The Family of Soviet APL Systems.: APL90 International Conference Proceedings. ACM, 1990, pp.214-216.
[18] Emanovskaja T.N., Miroshnikov A.I., Hanenko V.N., Design Organizing of Information Support System for the Scientific and Technical Development in a Region: Problems of Integral Production Automation, Moscow, Science, 1988, pp.47-57.
[19] Miroshnikov A.I., Algorithm Alterable Models and APL: APL90 International Conference Proceedings, N.Y., ACM, 1990, pp.272-274.