Setun-70 was an experimental Soviet ternary computer developed at Moscow State University (MSU) between 1967 and 1970 by Nikolay Brusentsov and Yevgeny Zhogolev.[1] Conceived as the successor to the original Setun of 1959, it abandoned the single-address accumulator design of its predecessor for a two-stack stack machine architecture whose instruction set was organized around variable-length 6-trit trytes.[1][2]
An experimental machine was first run in April 1970. The architecture was designed to support structured programming in the sense advocated by Edsger W. Dijkstra at the hardware level, with a dedicated return stack handling subroutine nesting and conditional calls.[1] Setun-70 never entered serial production – administrative decisions ended the ternary line shortly afterwards – but its instruction-set ideas were carried over to binary minicomputers and personal computers in the form of the Dialogue System of Structured Programming (DSSP) and were used for three decades to host the Nastavnik computer-assisted instruction system.[1][3]
Background
The original Setun, built at MSU under Sergei Sobolev and Brusentsov in 1958-1959, was the first modern computer to use balanced ternary arithmetic. About 50 production machines were built between 1959 and 1965 before serial output was halted.[4][2] By the mid-1960s Brusentsov and Zhogolev had concluded that the single-address accumulator architecture of Setun was a poor match for the kind of compact, easily extended programming system they wanted, and began designing a successor in which a stack would replace the accumulator.[1]
Architecture
Number representation
Setun-70 used the same balanced ternary digit set {-1, 0, +1} as its predecessor, but reorganised its data formats around the tryte, a six-trit unit that served as the smallest addressable element of memory.[1] A tryte encodes one of 729 values, giving it an information content of about 9.5 bits.[1] Arithmetic operations could take operands of one, two or three trytes in length, with results of up to six trytes.[2]
Memory
Main memory was organised as nine pages of 81 trytes each. Only three pages were accessible at any time through a set of page-pointer registers, an arrangement that kept addresses short while still allowing programs and data to be paged in as needed.[1]
Two-stack processor
The processor used two hardware stacks:
- an operand stack of 18-trit words, derived from the accumulator of the original Setun, which received operands pushed from memory and held intermediate results of arithmetic in Polish inverse (postfix) form;[1]
- a return stack holding return addresses for subroutine calls and the contexts of nested control structures.[1]
The two-stack organisation was described by its designers as a deliberate move away from the conventional address-and-accumulator model toward an interpretive engine that could be re-targeted at high-level languages without recompilation of the underlying microcode.[1]
Instruction set
The instruction format consisted of tryte-sized operations and tryte-sized addresses; a program was a stream of trytes rather than a sequence of fixed-width words. Setun-70 defined 81 operation codes, divided into three groups of 27: a set of basic operations, a set of auxiliary operations, and a set reserved for user-programmable extensions.[1] Brusentsov later argued that this short, regular instruction set had been arrived at independently of the RISC principles that emerged in the West during the late 1970s.[2]
Programming
Poliz
The native programming notation of Setun-70 was Poliz, an autocode based on Polish inverse notation that had already been used on the original Setun. Because Poliz expressions consume operands directly from the stack, the language mapped naturally onto the two-stack hardware and required no separate evaluation mechanism.[1]
Structured programming
In 1971 the system was extended to implement the control constructs advocated by Edsger W. Dijkstra in his work on structured programming: unconditional and conditional subroutine calls and bounded loops were realised directly through operations on the return stack.[1][3] In trials at MSU the developers reported that programs could be written and debugged “five to seven times” faster than under conventional unstructured techniques, while becoming shorter and more readable.[1]
Applications: Nastavnik
After administrative decisions halted further ternary hardware development in the early 1970s, the surviving Setun-70 was redirected to computer-assisted instruction. The team built a courseware system called Nastavnik, in which a host machine drove up to 30-40 simple terminals consisting of a numeric keyboard and a calculator-style display.[1] Course material – including programmed lessons in Fortran, physics, English and other subjects – was prepared by teachers without programming training. The Nastavnik system remained in use at MSU and other institutions for about thirty years,including for placement testing in English.[1][3]
Legacy
Setun-70 was, in the words of the Russian Virtual Computer Museum, the last “ternac” – no further ternary hardware was built at MSU after it.[2] Its software legacy was longer-lived. The two-stack instruction set was re-implemented in software on conventional binary minicomputers such as the DVK series and later on personal computers as the Dialogue System of Structured Programming (DSSP), a language whose syntax and stack semantics resemble those of Forth while differing in the encoding of its control-flow primitives.[1][3]
The machine is regularly cited in surveys of Soviet computing and of non-binary computing as one of the few documented attempts to design a ternary architecture explicitly around a high-level programming model rather than around numerical computation alone.[4][1]
See also
External links
- “Development of ternary computers at Moscow State University” – Russian Virtual Computer Museum
- “Ternary Computers: The Setun and the Setun 70” – conference version of the Brusentsov & Ramil Alvarez paper (PDF)
- Setun-70 emulator on GitHub
References
- ^ a b c d e f g h i j k l m n o p q r s Brusentsov, Nikolay P.; Ramil Alvarez, José (2011). “Ternary Computers: The Setun and the Setun 70”. Perspectives on Soviet and Russian Computing. IFIP Advances in Information and Communication Technology. Vol. 357. Springer. pp. 74–80. doi:10.1007/978-3-642-22816-2_10. ISBN 978-3-642-22815-5.
- ^ a b c d e “Development of ternary computers at Moscow State University”. Russian Virtual Computer Museum. Retrieved 2026-05-23.
- ^ a b c d “Nikolay Petrovich Brusentsov”. Russian Virtual Computer Museum. Retrieved 2026-05-23.
- ^ a b Hayes, Brian (2001). “Third Base”. American Scientist. 89 (6): 490–494. doi:10.1511/2001.40.3268.