Paradigms | Array, functional, structured, modular |
---|---|
Family | APL[citation needed] |
Designed by | Arkady D.Zakrevskij |
First appeared | 1964 |
Typing discipline | Dynamic |
Platform | Ural-1 mainframe computer |
Influenced by | |
APL[citation needed] |
Logical Language for the Representation of Synthesis Algorithms (LYaPAS, Russian: ЛЯПАС) is a programming language created by Arkady Zakrevsky in the Soviet Union.
LYaPAS is an extension to the programming language APL,[citation needed] and was initially designed especially for non-numeric programming for the Soviet designed and built line of mainframe computers named Ural-1. LYaPAS uses octal numbers.
A further refinement of LYaPAS is LYaPAS-M.
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 later worked on LYaPAS at the Laboratory of System Programming and Logical Synthesis, of the Academy of Sciences of the Byelorussian SSR, since renamed the National Academy of Sciences of Belarus.[3][4][5][6][7][8][9]
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:
N
puts the value of the integer variable into the implicit "current value" variable τ, which holds the result of the last operation.↑–2
moves the execution to line 2 if the current value is zero.M;N
calculates remainder.=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**
|journal=
(help)
By: Wikipedia.org
Edited: 2021-06-18 18:14:20
Source: Wikipedia.org