Constructive Computer Science at ETH Zuerich

Abstract

The article examines the emergence and development of constructive computer science at ETH Zürich as a distinctive tradition in which computer science is understood through the design and implementation of real programming languages, compilers, workstations, operating systems, and integrated software environments. The discussion begins with the early computing activities of the Institute of Applied Mathematics, including the use of the Zuse Z4, the construction of ERMETH, and the role of ALGOL 60 in introducing structured programming concepts and formal language description. The article then follows the work of Niklaus Wirth from Pascal and the portable P-code machine to Modula-2, M-code, and the Lilith workstation, where hardware, system software, device drivers, applications, and the user interface were conceived as a coherent modular system. A further stage is represented by Ceres and Oberon, the introduction of type extension, the Gadgets graphical framework, and the hardware description language Lola. The central argument is that the ETH Zürich tradition was important not merely because it produced influential languages and machines, but because it demonstrated a disciplined engineering philosophy based on simplicity, strong typing, portability, modular decomposition, and close alignment between programming language design and computer construction. The article therefore presents constructive computer science as both a historical achievement and a methodological model for safe, comprehensible, and integrated system development.

Author Biography

Juerg Gutknecht, Swiss Federal Institute of Technology

Professor of Computer Science, Ph. D. in Mathematics

References

1. Backus J.W., Bauer F.L., Green J. et al. Report on the algorithmic language ALGOL 60. Communications of the ACM. 1960;3(5):299-311. https://doi.org/10.1145/367236.367262
2. Wirth N. The programming language pascal. Acta Informatica. 1971;1(1):35-63. https://doi.org/10.1007/bf00264291
3. Wirth N. Modula: A language for modular multiprogramming. Software: Practice and Experience. 1977;7(1):1-35. https://doi.org/10.1002/spe.4380070102
4. Wirth N. The programming language oberon. Software: Practice and Experience. 1988;18(7):671-690. https://doi.org/10.1002/spe.4380180707
5. Wirth N. From modula to oberon. Software: Practice and Experience. 1988;18(7):661-670. https://doi.org/10.1002/spe.4380180706
6. Wirth N., Gutknecht J. The oberon system. Software: Practice and Experience. 1989;19(9):857-893. https://doi.org/10.1002/spe.4380190905
7. Wirth N. From programming language design to computer construction. Communications of the ACM. 1985;28(2):160-164. https://doi.org/10.1145/2786.2789
8. Wirth N. A plea for lean software. Computer. 1995;28(2):64-68. https://doi.org/10.1109/2.348001
9. Wirth N. Program development by stepwise refinement. Communications of the ACM. 1971;14(4):221-227. https://doi.org/10.1145/362575.362577
10. Hoare C.A.R. An axiomatic basis for computer programming. Communications of the ACM. 1969;12(10):576-580. https://doi.org/10.1145/363235.363259
11. Dijkstra E.W. Letters to the editor: go to statement considered harmful. Communications of the ACM. 1968;11(3):147-148. https://doi.org/10.1145/362929.362947
12. Hoare C.A.R. The emperor's old clothes. Communications of the ACM. 1981;24(2):75-83. https://doi.org/10.1145/358549.358561
13. Wirth N. 50 years of Pascal. Communications of the ACM. 2021;64(3):39-41. https://doi.org/10.1145/3447525
14. Dotzel G., Skulski W., Dubois P.F. Oberon-2, A High-Performance Alternative To C++. Computers in Physics. 1997;11(1):81. https://doi.org/10.1063/1.4822520
15. Tkachov F.V. Less is more. Why Oberon beats mainstream in complex applications. Journal of Physics: Conference Series. 2014;523:012011. https://doi.org/10.1088/1742-6596/523/1/012011
16. Severance C. The Art of Teaching Computer Science: Niklaus Wirth. Computer. 2012;45(7):8-10. https://doi.org/10.1109/mc.2012.245
17. Kay A., Goldberg A. Personal Dynamic Media. Computer. 1977;10(3):31-41. https://doi.org/10.1109/c-m.1977.217672
18. Parnas D.L. On the criteria to be used in decomposing systems into modules. Communications of the ACM. 1972;15(12):1053-1058. https://doi.org/10.1145/361598.361623
19. Wirth N. Oberon: A system for workstations. Microprocessing and Microprogramming. 1988;24(1-5):3-8. https://doi.org/10.1016/0165-6074(88)90017-8
20. Gutknecht J. Oberon, gadgets, and some archetypal aspects of persistent objects. Information Sciences. 1996;93(1-2):65-86. https://doi.org/10.1016/0020-0255(96)00061-8
21. Swinehart D.C., Zellweger P.T., Beach R.J., Hagmann R.B. A structural view of the Cedar programming environment. ACM Transactions on Programming Languages and Systems. 1986;8(4):419-490. https://doi.org/10.1145/6465.6466
22. Hoare C.A.R., Wirth N. An axiomatic definition of the programming language PASCAL. Acta Informatica. 1973;2(4):335-355. https://doi.org/10.1007/bf00289504
23. Reimer M. Implementation of the database programming language modula/R on the personal computer lilith. Software: Practice and Experience. 1984;14(10):945-956. https://doi.org/10.1002/spe.4380141005
24. Garfinkel S., Spafford E.H. In Memoriam: Niklaus Wirth. Communications of the ACM. 2024;67(3):20-20. https://doi.org/10.1145/3641309
25. Geissmann L. Der Lilith-Debugger. Ein modernes Werkzeug zur Fehlersuche in Modula-2 Programmen/ The Lilith Debugger. Α modern tool for debbugging Modula-2 Programs. it – Information Technology. 1985;27(1-6):95-106. https://doi.org/10.1524/itit.1985.27.16.95
Published
2025-10-13
How to Cite
GUTKNECHT, Juerg. Constructive Computer Science at ETH Zuerich. Modern Information Technologies and IT-Education, [S.l.], v. 21, n. 3, p. 391-397, oct. 2025. ISSN 2411-1473. Available at: <http://sitito.cs.msu.ru/index.php/SITITO/article/view/1247>. Date accessed: 29 aug. 2026. doi: https://doi.org/10.25559/SITITO.021.202503.391-397.
Section
Theoretical Questions of Computer Science, Computer Mathematics