Конструктивная информатика в ETH Zurich

  • Jürg Gutknecht Швейцарская высшая техническая школа Цюриха (ETH Zürich)

Аннотация

Статья посвящена становлению и развитию конструктивной информатики в ETH Zürich как особого направления, в котором компьютерная наука рассматривается прежде всего через создание работающих языков программирования, компиляторов, аппаратно-программных систем и пользовательских сред. В центре внимания находится историческая линия от ранних вычислительных проектов Института прикладной математики, включая использование Zuse Z4 и создание ERMETH, к языку ALGOL 60 и последующим работам Никлауса Вирта. Особое внимание уделяется переходу от Pascal и P-code к Modula-2, M-code и рабочей станции Lilith, где программное обеспечение, операционная система и прикладные компоненты были организованы как однородная сеть модулей. Далее рассматривается модернизация этой линии в паре Ceres-Oberon, введение расширения типов, развитие графической среды Gadgets и применение языка описания аппаратуры Lola в учебных и исследовательских проектах. Аннотация подчёркивает, что ключевой вклад ETH Zürich состоял не только в отдельных языках или машинах, но и в целостной инженерной культуре простоты, строгой типизации, переносимости, модульности и тесной связи между языком, компилятором, архитектурой и системой. Работа показывает, что конструктивная традиция ETH оказала существенное влияние на академическую информатику, образование программистов и практику системного проектирования.

Сведения об авторе

Jürg Gutknecht, Швейцарская высшая техническая школа Цюриха (ETH Zürich)

профессор, Ph. D. in Mathematics

Литература

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
Опубликована
2025-10-13
Как цитировать
GUTKNECHT, Jürg. Конструктивная информатика в ETH Zurich. Современные информационные технологии и ИТ-образование, [S.l.], v. 21, n. 3, p. 391-397, oct. 2025. ISSN 2411-1473. Доступно на: <http://sitito.cs.msu.ru/index.php/SITITO/article/view/1247>. Дата доступа: 07 aug. 2026 doi: https://doi.org/10.25559/SITITO.021.202503.391-397.
Раздел
Теоретические вопросы информатики, прикладной математики, компьютерных наук