LYaPAS

From APL Wiki
Jump to navigation Jump to search

LYaPAS (ЛЯПАС) is a programming language developed by Arkady Zakrevsky, a Soviet computer scientist.

The development started in the end of 1962,[1] while Zakrevsky was working at the Siberian Physical-Technical Institute (part of Tomsk State University).[2] The first translators were implemented in 1963.[1]

The first widely available book about the language was published in Russian (Логический язык для представления алгоритмов синтеза релейных устройств, 1966), which was soon translated and published in English (LYaPAS: a programming language for logic and coding algorithms, 1969). The book contained a collection of articles with full LYaPAS descriptions, some algorithms in the language and descriptions of programming environments for the Ural-1 and M-20 computers which operated at a speed of 100 and 20,000 operations per second, respectively.[1]

In 1974, LYaPAS-M, a new version of the language, appeared. Among other changes, this version was adapted for the character set common among the Soviet computers of the time, namely the first 100 characters of the GOST 10859 7-bit encoding.[1]

Zakrevsky mentioned Ken Iverson's A Programming Language at p8 in the section "Perspectives and some comparisons" of Chapter 1 in [1]: "Of those languages known to the author, the closest in purpose to LYaPAS is the language of Iverson [3], whose results were taken into account in the development of LyaPas."

Versions

Example

Example program in LYaPAS-M for calculating GCD of variables N and M:[1]

П1 N ↑–2 M;N=R N=M R=N ↑=1
П2 M=D **

Explanation:

  • Program is executed from left to right.
  • П1 and П2 are line labels.
  • Operation N puts the value of the integer variable into the implicit "current value" variable τ, which holds the result of the last operation.
  • Conditional branch operation ↑–2 moves the execution to line 2 if the current value is zero.
  • Expression M;N calculates remainder.
  • Expression =R assigns current value to variable R.
  • ↑=1 is an unconditional branch to line 1.
  • ** is the end marker.

All whitespaces are ignored, so the above program is equivalent to the one-liner:

П1N↑–2M;N=RN=MR=N↑=1П2M=D**

Bibliography

  • LYaPAS: a programming language for logic and coding algorithms. Edited by M. A. Gavrilov and A. D. Zakrevskii. Translated by Morton Nadler. New York, Academic Press, 1969. 475 p.

References

  1. 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 А. Д. Закревский, Н. Р. Торопов. Система программирования ЛЯПАС-М. Мн.: Наука и техника, 1978, 220 с.
  2. Закревский Аркадий Дмитриевич — Электронная энциклопедия ТГУ.


APL dialects [edit]
Maintained APL+Win (APL*PLUS) ∙ APL2APL64APL\ivAprilCo-dfnsDyalog APLdzaima/APLExtended Dyalog APLGNU APLNARS2000ngn/apl
Historical Iverson notationA Programming LanguageA+ (A) ∙ APL#APL.68000APL.SVAPLXAPL\1130APL\3000APL\360NARSopenAPLRowanSAXSHARP APLVisualAPL (APLNext) ∙ VS APLYork APL
Derivatives AHPLAPL\ivBQNELIIIvyJJellyK (Q, KDB+) ∙ LYaPASNialRAD