Not Pascal alone: ​​what computer Nobel laureate Niklaus Wirth did for the modern world. Niklaus Wirth biography Niklaus Wirth biography briefly

Niklaus Wirth is a name known to many in Russia. More than three decades ago, Professor Wirth created the Pascal programming language in distant Switzerland. It would seem that this alone was enough to forever inscribe his name in the annals of computer science. But in life it often happens that it is not the best and most perfect creations that receive recognition and fame. So in the case of Pascal, we see only the tip of the iceberg, and most of Wirth’s work still remains unknown to many.

Niklaus Wirth was born on February 15, 1934 in the small town of Winterthur, on the outskirts of Zurich. Niklaus was born into the family of Walter and Hedwig Wirth. He lived near the school where his father taught. Their house had a good library, where Wirth found a lot interesting books about railways, turbines and telegraph.

The small town of Winterthur has a long history and is famous for its mechanical engineering: locomotives and diesel engines are produced there. Since childhood, Wirth has been interested in engineering, especially aircraft modeling. He literally dreamed of the sky. But to launch rockets it was necessary to obtain fuel, and so he took up chemistry. Young Wirt set up a “secret” laboratory in the school basement. Nothing could stop him: one day the model he made deviated from the given trajectory and landed under the feet of the school principal. However, Wirth still continued to stubbornly pursue his goal.

Several decades later, Niklaus Wirth, like Ken Thompson, the author of UNIX, had the opportunity to fly a MIG from a military airfield in Kubinka, which is located near Moscow. His cherished dream came true. The motivation for Wirth’s professional creativity was best revealed by his colleague at Stanford University (USA), Professor Donald Knuth: “Wirth always wanted to create airplanes, and he needed the best tools. That’s why he designed many computer languages ​​and microcomputers.”

From building models, Nicklaus quickly moved on to developing their remote controls. When he turned 18, he and two other Zurich aircraft modellers received the desired radio equipment from England. This predetermined his future fate - in 1954, Wirth entered the Faculty of Electronics at ETH Zurich (Eidgenoessische Technische Hochschule, Swiss Federal Institute of Technology). After four years of study, Wirth received a bachelor's degree in electrical engineering. And then begins a glorious ten-year overseas scientific “tour” of the future “Father Pascal” and “King of Compilers” along the route Switzerland – Canada – USA – Switzerland.

Wirth continued his studies at the University of Laval in Quebec (Canada), where in 1960 he received a master's degree. Then he was invited to the University of California at Berkeley (USA) - the future pearl of Silicon Valley. There, under the guidance of Professor Husky in 1963, Niklaus Wirth defended his dissertation on the development of Algol using Lisp (Euler language). This work literally gave him a start in life: Virt was noticed by the masters of programming and invited to the IFIP Committee on Algol Standardization. That school was not in vain: for the rest of his life, Wirth remembered that you need to prove that you are right by deeds, especially when they don’t want to hear you. In developing languages, he forever abandoned the abstract scientific approach in favor of a mathematical engineering one. According to him, it is better to implement the language first and only then write about it.

From 1963 to 1967 Wirth worked as an assistant professor at Stanford University and in 1967 returned with this title to the University of Zurich. And in 1968, he received the title of professor of computer science at ETH and began to build his “Swiss” Stanford in his homeland. Twenty years from 1969 to 1989 was perhaps the most fruitful period in Wirth’s life (Table 1). He continued to build his school, devoting a lot of time to organizational activities. From 1982 to 1984 (and then from 1988 to 1990) Wirth headed the Department of Computer Science at ETH, and since 1990 he directed the Institute of Computer Systems at ETH. Professor Wirth retired on April 1, 1999, upon reaching the age of 65.

Three like-minded friends: Hoar, Dijkstra and Wirth.

The romantic 1960s marked the beginning of the friendship between the three patriarchs of structured programming - the Dutchman Edsger Dijkstra, the Englishman Anthony Hoare and the Swiss Niklaus Wirth. These “Nobel” laureates (the Turing Award, awarded by the ACM Association, is awarded once in a lifetime and is equivalent to the Nobel Prize in computer science) were brought together not so much by the abstractions of computer science as by a clear professional position.

Edsger Dijkstra (Netherlands, Eindhoven University of Technology). From the Turing Award speech (Boston, USA, August 14, 1972).

When there were no computers yet, programming was not a problem. When we had several low-power computers, programming became a problem of medium complexity. Now that we have giant computers, programming becomes a gigantic problem.

Anthony Hoare (Great Britain, Oxford University). From the Turing Award speech (Nashville, USA, October 27, 1980).

Almost anything in software can be sold, sold, and even used with enough persistence. But there is one quality that cannot be bought - reliability. The price of reliability is the pursuit of extreme simplicity. This is the price that is most difficult for the very rich to pay.

Niklaus Wirth (Switzerland, Swiss Federal Institute of Technology). From the Turing Award speech (San Francisco, USA, October 1984):

"We live in complex world and we try to solve inherently complex problems, which often require complex devices to solve. However, this does not mean that we should not find elegant solutions that convince with their clarity and effectiveness. Simple, elegant solutions are more effective, but they are harder to find than complex ones and take longer to find.”

Professor Wirth's most famous achievement is the Pascal language (1970). Of course, many have heard about this language and know it. Pascal played a huge role in shaping the worldview of several generations of programmers. Its main advantage is simplicity and elegance: it is built on the clear principles of structured programming formulated by Edsger Dijkstra, on the beautiful mathematical foundation laid by Anthony Hoare, and on the brilliant architectural embodiment of the Algol-W ideas implemented by Niklaus Wirth. From a technological point of view, Pascal was interesting not only because its compiler, created at ETH, became one of the first implementations of languages high level on itself, about two years ahead of the C compiler. While working on it in 1973, an abstract Pascal machine (P-machine) was invented, executing a special P-code. To solve the problem of porting the Pascal compiler to different platforms, Wirth decided to use time-tested interpretation methods. One of the most famous solutions that preceded the P-code is the implementation of the Snobol-4 language (R. Griswold, 1967), where the SIL (System Implementation Language) language was used as the abstract machine code.

As you know, the introduction of the Java virtual (abstract) machine was presented by its developers from Sun Labs as perhaps a fundamental discovery in the practice of programming languages. One of Wirth's students, Michael Franz, noted the following about this: “Java's portability is based on the presence of a virtual machine that makes it easy to imitate a large number of architectures. The idea of ​​​​a virtual machine was very popular more than twenty years ago, although it was subsequently forgotten. Then we talk "was about Pascal-P - an implementation of Pascal created at ETH, which played a decisive role in the spread of this language. Interestingly, the virtual machines for Pascal and Java are very similar in architecture."

P-code ideas have found their way not only into the Java and NET platforms, not only into other languages ​​and database engines, but also into hardware implementations. For example, for direct execution of P-code, Western Digital developed a special WD9000 PEngine kit in 1979. The experimental POMP processor was created at Stanford University in 1980. The commercial implementation of Pascal, UCSD Pascal, which appeared in 1978, became even more famous, and many have forgotten where the P-code and P-machine first appeared. Here's what Wirth says about it: "After the existence of Pascal became known, several people asked us to help implement it on various machines, emphasizing that they intended to use it for teaching and that speed was not of paramount importance to them. After that we decided to create a version of the compiler that would generate code for a machine of our own design.This code later became known as P-code... Pascal-P turned out to be an extremely successful language for distribution among large number users. And if we had been wise enough to foresee the magnitude of such developments, we would have put more effort and care into developing and documenting the P-code."

The Pascal language was perceived by many primarily as a language for teaching computer science. But Wirth himself does not agree with such a deliberate narrowing of its potential (1984): “It has been argued that Pascal was designed as a language for teaching. Although this statement is true, its use in teaching was not the only purpose. In fact, I do not believe in the success of using tools and techniques during training that cannot be used to solve some practical problems.By today's standards, Pascal had obvious shortcomings in programming large systems, but 15 years ago it represented a reasonable compromise between what was desirable and what was effective."

Yes, this language was far from ideal. At one time, Brian Kernighan, a well-known popularizer of the C language and co-author of the classic C manual (K&R), wrote a critical article “Why Pascal is not my favorite programming language.” If you read it carefully, you can decide that Niklaus Wirth drew the correct conclusions from it and, in the Modula-2 language (1980), under the influence of the article, eliminated many of the flaws of canonical Pascal. However, one important circumstance should be kept in mind. Kernighan's controversial work was written on April 2, 1981, i.e. two years after the implementation of the first Modula-2 compiler by Wirth’s group at ETH and a year after the release of the hardware implementation of Modula-2 - the Lilith personal computer. In April 1993, at the ACM Conference on the History of Programming Languages, Wirth, in response to a question from one of his colleagues, gave the Modula-2 language a score of 6 points (the highest score in Swiss schools).

The Modula-2 language was not only a compact and efficient alternative to the Ada language, it was far ahead of those implementations of modular programming ideas that were reflected only years later and in a much less thoughtful form in Turbo Pascal and Delphi. The famous OS/400 operating system for the IBM AS/400 was implemented on Modula-2. The Digital Corporation Systems Research Center (DEC Systems Research Center) took this language as the basis for its internal projects, subsequently creating the Modula-3 language.

The computer industry lagged behind Wirth's work by at least 5–7 years. In the same 1979 (when the first Modula-2 compiler appeared on the PDP-11 computer in the RT-11 environment), the legendary Apple II computer, much inferior to Lilith, had just acquired the Apple Pascal compiler, focused on the UCSD implementation of Pascal. There were four whole years left before Anders Hejlsberg's first modest Turbo Pascal appeared! As for the Lilith computer, it became the first computer in Europe to fully utilize the capabilities of laser printing. Subsequently, Wirth sadly said that with the Lilith project, the Swiss industry missed its unique chance.

The Oberon project (1988) became a true pearl of Wirth's creativity. Created almost two decades ago, the Oberon System (http://www.oberon.ethz.ch/) plays today approximately the same role that the Alto and Xerox Star projects of the famous Xerox PARC center played in the early 1980s , where modern personal computers and text editors originated. For corporations such as Microsoft, IBM and Sun Microsystems, the Oberon project has become a source of fruitful ideas, including a document-oriented interface, browsers, industrial software development languages ​​(Java and C#), machine-independent mobile code (JVM and .NET CLR) , applets, component software, dynamic compilation (JIT, AOC, DAC), smart tags, web services, etc.

Now this seems incredible, but to recompile operating system Oberon and the Oberon compiler took only 15 seconds in total! And this is on equipment from the early 1990s.

Michael Franz defended his thesis at ETH in February 1994, entitled "Dynamic code generation - the key to portable software." It clearly identified the problems of virtual machines and proposed an extremely simple and rather unusual approach to achieving portability. Franz's dissertation not only examined in detail the principle of formation and storage of an intermediate representation, but also concluded that for this class of languages ​​it remains practically unchanged. In other words, this principle was quite suitable for the Java language. By the way, the concept of applet also appeared in Franz’s works. A year after the advent of Java, Michael Franz, by the summer of 1996, prepared an environment called Juice, made as a plug-in module for Netscape and Microsoft browsers. The module consisted of a compact version of the Oberon OS and a full-featured Oberon compiler, the size of which (in Oberon format) is only 100 KB in total. In March 1994, Michael Franz gave several reports at Sun Labs, and by the spring of that year, Bill Joy (Sun vice president and the ideologist of the Java project) already had all the necessary information on hand, including Franz’s dissertation. Joy became one of the first licensees for ETH Oberon. In June 1994, Bill Joy came up with the idea (how this happened, history is bashfully silent) to reorient James Gosling's Oak language to other tasks - creating a compact OS. The project, which was named LiveOak, was put together in a hurry. All of this needs to be taken into account when looking at Java's current challenges.

The world of industrial programming is full of excess complexity. As a result, criteria such as simplicity (visibility of source codes), reliability, compactness of programs and efficiency of executable code are now being replaced by one main criterion - the speed of implementation of ideas. And this inevitably leads to a sharp decrease in the influence of the language itself and an increase in the role of the instrumental environment, which sometimes does not care what to operate with, and above all its visualization capabilities. As Niklaus Wirth aptly points out, “a constant lack of time is probably the primary reason leading to the appearance of cumbersome software.” The priority of development time is generally clear: human resources are now much higher than hardware ones. But aren’t we losing something valuable along the way that will be extremely difficult to get back later?

We live in an era of triumphant mad technological race and contrived complexity. Niklaus Wirth devoted his entire life to the fight against these harmful phenomena, but they do not hear him or do not want to hear him. “An extreme degree of intelligence,” wrote Blaise Pascal, “is accused of madness in the same way as a complete absence of intelligence. Only mediocrity is good.”

Programming languages ​​developed by Wirth:

(1970) Pascal

(1988) Oberon

Niklaus Wirth in Akademgorodok.

October 2 and 3 as a guest of the Institute of Informatics Systems named after. A. Ershov Academic Town was visited by the famous scientist, author of the algorithmic languages ​​Pascal, Modula and Oberon, professor at the ETH Zurich Niklaus Wirth. Virt has long-standing ties with Akademgorodok. In 1965, he met academician Ershov, who came to the USA for the IFIP (International Federation for Information Processing) congress. Scientific contacts developed both through the IFIP working group on the ALGOL language, and through the use of the Pascal language to implement the system<Бета>. Evidence of the friendly relations between the two scientists is kept in the archives of Academician Ershov.

The work of the group of Professor I. Pottosin from the ISI SB RAS played a major role in the popularization of Niklaus Wirth languages ​​and systems in our country. Igor Vasilievich was the scientific supervisor of Dmitry Kuznetsov, one of the developers of architecture<Кроноса>(the first domestic 32-bit computer), and it was he who came up with the idea to repeat Niklaus Wirth’s experiment - to implement a processor with an architecture focused on high-level languages.

On the morning of October 2, Wirth took part in the opening of the Potossin Olympiad at NSU, expressing the hope that the programming languages ​​he created - successors to Pascal - will take their rightful place in the IT education system. At three o'clock that same day, the Great Physics Auditorium of NSU was filled to capacity with those wishing to listen to Professor Wirth's report on the evolution of languages ​​and programming, where in a very accessible logical form an analysis of innovations in computer science over the past 40 years was given.

At the beginning of his speech, he apologized that he had never learned Russian to the level where he could speak it continuously and clearly for two hours. The audience met the proposal to read the report in German with embarrassed silence.<Самой серьезной ошибкой, сделанной еще в 1957 году, была ошибка: Y = X>, - noted the professor. Light laughter was heard in the hall. The point was that not everyone can perceive this equality as an assignment command. In addition to the above-mentioned error, Wirth noted a number of other mistakes that complicate languages ​​so much that their practical use is seriously hampered. In this regard, Wirth explained that he deliberately came to use top-down syntax in his languages, and also expressed surprise at the virtual redirection command that still exists, which was only necessary in the days when memory was measured in kilobytes, not megabytes.

A separate target for the professor’s criticism were the popular languages ​​C and C++, the inconvenient and confusing structure of which the scientist returned to more than once. So, for example, he called the Java language Oberon, spoiled by the syntax of the C language. As a right path, Wirth suggested starting to actively use Oberon when teaching students programming. The professor called the fact that a huge number of programs are written in C++ today not fundamental. If an enterprise works in this language, then its software engineers have many problems, while the educational part at the same time continues to produce specialists in C and C++ due to their demand in enterprises. As a result, the phenomenon forms vicious circle, which simply needs to be broken if we are talking about the development of programming languages ​​towards functionality and simplicity. The professor did not skimp on criticism of programming languages ​​with overridden syntax rules (C language macros and overloaded operators).

There were many people who wanted to get the autograph of the famous Wirth - the professor signed all the proposed items for about half an hour. The most serious students proudly brought with them books by Niklaus Wirth himself<Алгоритмы и структуры данных>, <Системное программирование>And<Модула-2>. Others limited themselves to a stroke of genius in a record book or on a student card. While the scientist was signing autographs, a couple of hundred people gathered on the porch of NSU to capture the solemn moment in history.

Niklaus Wirth's stay program at Academgorodok completed<круглый стол>with programming teachers from various universities and schools, where issues of concern to modern teachers were discussed. Casually scolding the ever-in-demand C++, the participants came to a consensus that Oberon or Component Pascal is the most convenient general divisor of a whole series modern languages programming and may well play the role of Esperanto in the training course for student programmers.

For his many contributions to computer science, Dr. Niklaus Wirth has received numerous awards and honors. The American Council of Masters awarded him the title of Associate Member; Computer Society of the Institute of Electronics and Radio Engineering - the title of computer pioneer; he received the IBM European Science and Technology Prize; became a member of the Swiss Academy of Engineering and a foreign partner of the American Academy of Engineering, and also received the Order "Pur le merte" and the Turing Award. Wirth received honorary doctorates from many universities: University of Lavape, Quebec (Canada), University of California, Berkeley, University of York (England), Lehn Johannes Kepler University (Austria), University of Novosibirsk (Russia), Open University of England, University of Pretoria (South Africa).


Bogatyrev is the head of the “Studio of Software Technologies 1024” at the publishing house “ Open systems" Email: [email protected]. From the biography of N. Wirth Professor Niklaus K. Wirth, author of the Pascal language, graduated from the Swiss Federal Institute of Technology ETH (Eidgenoessische Technische Hochschule) in his native Zurich (1958). At Laval University in Quebec (Canada) he received...


Description of the software product. 3.1 Working with the electronic manual This electronic resource is intended for university students to prepare for lectures, practical and laboratory classes. The electronic manual was created in AutoPlay Media Studio 7.0. To start working with the software product, you need to run the .exe file. Title page of this manual is presented in Fig. ...

Some believe that the modern world hardly knows Niklaus Wirth and is not even aware of his enormous contribution to world computer science. Some consider him the “father of Pascal.” Wirth is remembered not only by teachers at universities when they teach Turbo Pascal to students, but also by commercial developers writing in Delphi.

In fact, Niklaus Wirth is an engineer with a capital “E”; his contribution to the development of programming languages ​​is not limited to Pascal, but only begins with it. In addition, Wirth is a teacher, public figure and, one might say, a philosopher. Let's try to assess the real scale of his personality and contribution to the IT industry.

Childhood, education, hobbies

Niklaus Wirth was born on February 15, 1934 in the small town of Winterthur, on the outskirts of Zurich. His parents are Walter and Hedwig Wirth. Nicklaus's father was a school teacher. He lived near the school where his father taught. Their house had a good library, where Wirth found many interesting books about railways, turbines and telegraphs.

Winterthur has a long history and is famous for its mechanical engineering: locomotives and diesel engines are produced there. Since childhood, Wirth was interested in technology, especially aircraft modeling. To launch rockets, it was necessary to obtain fuel, and so he took up chemistry. Young Wirt set up a “secret” laboratory in the school basement. Nothing could stop him: one day the model he made deviated from the given trajectory and landed under the feet of the school principal. However, Wirth still continued to stubbornly pursue his goal.

The hobby turned out to be so serious that Wirth even built more than a dozen models based on his own drawings. By the way, he later took up real flying and carried this hobby throughout his life. Even at a very advanced age, the creator of the popular programming language did not deny himself the pleasure of flying a jet fighter.

When he turned 18, he and two other Zurich aircraft modellers ordered the desired radio equipment from England. This predetermined his future fate - in 1954, Wirth entered the Faculty of Electronics at ETH Zurich (Eidgenoessische Technische Hochschule - Swiss Federal Institute of Technology). After four years of study, Wirth received a bachelor's degree in electrical engineering. And then begins a glorious ten-year overseas scientific “tour” of the future “Father Pascal” and “King of Compilers” along the route Switzerland – Canada – USA – Switzerland.

Wirth continued his studies at the University of Laval in Quebec (Canada), where he received a master's degree in 1960. Then he was invited to the University of California at Berkeley (USA) - the future pearl of Silicon Valley. There, under the guidance of Professor Husky, in 1963 Niklaus Wirth defended his dissertation on the development of Algol using Lisp (Euler).

A start to life

This work literally gave him a start in life: Virt was noticed by the masters of programming and invited to the IFIP Committee on Algol Standardization.

The Ministry has set the task of developing a unified programming language for control systems for automated complexes operating in real time. This meant, first of all, on-board control systems for military facilities. The language is named after mathematician Ada Lovelace.

The story repeated itself with ALGOL-68 - the project of the group in which Wirth and Hoare worked was not approved by the language committee. Charles Hoar and Niklaus Wirth dropped out of the competition after the first stage. The competition was won by a project based on Pascal, but much more complex and voluminous.

Hoar lamented that "bells and whistles have taken precedence over the fundamental requirements of reliability and safety" and warned against "an armada of missiles going the wrong way because of an undetected bug in the Ada compiler."

Niklaus Wirth spoke more restrainedly, but also negatively. He said: “Too much is thrown at the programmer. I don't think you can work properly after learning a third of Ada. If you do not master all the details of the language, then in the future you may stumble over them, and this will lead to unpleasant consequences».

Jean Ishbia, head of the Ada development team, while expressing his “respect and admiration” for Wirth, disagreed, saying: “Wirth believes in simple solutions to complex problems. I don't believe in such miracles. Complex problems require complex solutions.”

Oberon

In 1988, in collaboration with Jürg Gutknecht, Wirth developed the Oberon programming language. The goal of the development was to create a language for implementing the system software of the new workstation being designed. The basis for Oberon was Modula-2, which was significantly simplified, but at the same time supplemented with new capabilities.


Jurg Gutknecht

Niklaus Wirth and his colleagues developed the first version of the Oberon system, a machine, an Oberon language compiler, and an operating system, System Oberon, which had a graphical user interface, advanced concepts for using text in the interface, and generally provided tangible evidence of the applicability of Wirth's concepts.

As already written on Habr, in Oberon, a module is not only a means of structuring algorithms and data structures, but also a unit of compilation, loading and distribution. That is, a module is the minimum entity that a compiler can compile. Dependencies of one module on other modules are calculated automatically, but do not result in code from one module being included in another. Only the identifiers of the imported entities and the dependency hashcode are included for code version control.

A module is a loading unit, that is, except in special cases, the module code is a complete program that has an entry point and can run indefinitely. That is, a full-fledged program. Even the OS kernel is just the first module loaded into memory. The module also assumes that it will be distributed not only in the form of a source code, but also in the form of a binary, as well as in the form of an interface part, and only a certain platform or several platforms will be required to run it. In general, these concepts are included in the concept of modularity in Oberon and constitute module-oriented programming.

In 1992, Wirth and Mössenböck released a report on a new programming language, Oberon 2, a minimally expanded version of Oberon. In the same year, a subsidiary of ETH, Oberon microsystems, was formed, which began developing Oberon systems. Wirth became one of the members of its board of directors. In 1999, this company released the next version of Oberon - Component Pascal, more suitable for component programming.

Oberon served as the direct ancestor of the parallel programming language (Active Oberon), various modifications of the Oberon language for other execution environments (Component Pascal, Zonnon), was implemented on several platforms (JVM, CLR, JS), and served as the prototype of the Java language. The Oberon system itself served as the prototype for the Microsoft Singularity project.

As you know, the emergence of the Java virtual (abstract) machine was presented by its developers from Sun Labs as perhaps a fundamental discovery in the practice of programming languages.

One of Wirth's students, Michael Franz, noted the following about this: “Java's portability is based on the presence of a virtual machine that makes it easy to simulate a large number of architectures. The idea of ​​a virtual machine was very popular more than twenty years ago, although it was subsequently forgotten. Then we were talking about Pascal-P, an implementation of Pascal created at ETH, which played a decisive role in the spread of this language. Interestingly, the virtual machines for Pascal and Java are quite similar in architecture."

On the threshold of the 2000s

“Now let’s discuss the characteristics of the “most modern, most object-oriented and very simple” Java language,” wrote Sergei Sverdlov.
Not only can Java not be considered simple, but it is one of the most complex languages, more complex than C++ and twice as complex as Oberon.

But maybe the comparison with the same Oberon is incorrect? After all, Java is probably still a richer language than this Oberon of yours? Nothing like this! Java has only two significant things that Oberon doesn't have: built-in multithreading and exception handling. The advisability of including parallel programming tools directly into the language is questioned by many experts. This could be resolved at the library level. In addition, the mechanism implemented in Java is by no means the most successful solution.



Comparing the scope of syntax between languages
The total number of lexemes in a language syntax description can serve as a general characteristic of the size of this description.

But in little Oberon there are both full-fledged records (objects) and normal multidimensional arrays, and not just pointers to them. Oberon also has the usual zero-terminated strings, which are simply arrays of characters, not objects at all, and therefore do not require special means for manipulation.
Contrary to propaganda, Java contains little that is truly new. The same concept of a virtual machine is the first thing that comes to mind when thinking about multi-platform. Twenty-five years ago this was a successful and fresh decision.


This opinion was expressed more than 15 years ago, when such disputes were relevant. Let's leave the question of how much better or worse Java has become in this regard now.

Pedagogical and social activities

From 1963 to 1967, Wirth worked as an assistant professor at Stanford University and in 1967 returned with this rank to the University of Zurich. And in 1968, he received the title of professor of computer science at ETH and began to build his “Swiss” Stanford in his homeland.

The twenties from 1969 to 1989 were perhaps the most fruitful period in Wirth's life. He continued to build his school, devoting a lot of time to organizational activities.

Niklaus Wirth was born on February 15, 1934 in the small town of Winterthur, on the outskirts of Zurich (Switzerland). Niklaus was born into the family of Walter and Hedwig Wirth. He lived near the school where his father taught. Their house had a good library, where Wirth found many interesting books about railways, turbines and telegraphs.

The small town of Winterthur has a long history and is famous for its mechanical engineering: locomotives and diesel engines are produced there. Since childhood, Wirth was interested in technology, especially aircraft modeling. He literally dreamed of the sky. But to launch rockets it was necessary to obtain fuel, and so he took up chemistry. Young Wirt set up a “secret” laboratory in the school basement.

His passion for electronics and program control systems began with the development of remote control devices for models. In 1954 he entered the Faculty of Electronics at the Swiss Federal Institute of Technology (ETH) in Zurich, where he received a bachelor's degree in electrical engineering in four years. He continued his studies at the University of Laval (Quebec, Canada), and received a master's degree in 1960. Then he was invited to the University of California at Berkeley (USA), where in 1963, under the guidance of Professor Husky, he defended his dissertation, the topic of which was the Euler programming language - an extension of Algol using the Lisp language.

Wirth's thesis was noticed by the community of programming language developers, and in the same 1963 he was invited to the Algol Standardization Committee of the IFIP (International Federation of Informatics), which was developing a new standard for the Algol language, which later became ALGOL-68. Together with Charles Hoare, Wirth advocated in the committee the development of a moderately modified version of Algol, free from the shortcomings of the original language and supplemented with a minimum of truly necessary tools. Wirth and Hoar presented the ALGOL-W language (W for Wirth), which was just such a reworking of Algol, to the committee, but they did not receive support. At the conclusion of the committee's work in 1968, Wirth was among those who criticized ALGOL-68, speaking of its lack of reliability and extreme redundancy. At the same time, from 1963 to 1967, Wirth worked as an assistant at Stanford University (USA). Together with Jim Wales, he developed and implemented the PL/360 language, intended for programming on the IBM/360 platform - an algol-like language that introduced a number of system-dependent features related to the IBM/360 architecture.

In 1967 he returned with the rank of associate professor at the University of Zurich, and in 1968 he received the title of professor of computer science. He worked at ETH for 31 years. He was involved in a lot of organizational activities, improving the teaching system of his university.

In 1970 he created the Pascal programming language. In the 1970s, he developed, together with Hoare and Dijkstra, structured programming technology. Wirth's 1971 article, “Program Development by Incremental Refinement,” described and substantiated the now classic top-down software development methodology. To transfer the Pascal system to various computing platforms, in 1973, with the participation of Wirth, a prototype of a virtual machine was developed that would execute intermediate “P-code” (P for Pascal) on any platform, into which all programs were supposed to be compiled.

In 1975, he developed the Modula language, in which he implemented the ideas of developing modular programs with well-defined intermodular interfaces and parallel programming. In addition, the language syntax was changed in the Module - Wirth got rid of the need to use compound operators in branching structures and loops. The module was not widely known and had only one experimental implementation, but its modified version - Modula-2, the development of which began in 1977 and ended in 1980, intended to implement the system software of the Lilith system being developed at ETH - a 16-bit personal computer, became famous and quite popular, although it did not surpass Pascal in popularity, especially its commercial implementations. The Lilith system was ahead of the trends in the computer industry by several years; Wirth later said with regret that by not realizing the potential of this system, the Swiss computer industry missed its historical chance.

For the Lilith project and the Modula-2 language, Wirth was awarded the Alan Turing Award in 1984. The Alan Turing Award is an analogue of the Nobel Prize in computer science, it was established back in 1966 and is awarded annually by the Association for Computing Machinery for outstanding achievements in the field of computer science.

In the second half of the 1970s, Wirth participated in a US Department of Defense competition to develop a new language for programming embedded systems, which resulted in the creation of the Ada language. The story repeated itself with ALGOL-68 - the project of the group in which Wirth and Hoare worked was not approved by the language committee. As a result, the competition was won by a project based on Pascal, but much more complex and voluminous.

From 1982 to 1984 and from 1988 to 1990, Wirth headed the Faculty of Computer Science at ETH, and since 1990, the Institute of Computer Systems at ETH.

In 1988, in collaboration with Jürg Gutknecht, Wirth developed the Oberon programming language. The goal of the development was to create a language for implementing the system software of the new workstation being designed. The basis for Oberon was Modula-2, which was significantly simplified, but at the same time supplemented with new capabilities.

In 1992, Wirth and Mössenböck released a report on a new programming language, Oberon 2, a minimally expanded version of Oberon. In the same year, a subsidiary of ETH, Oberonmicrosystems, was formed, which began developing Oberon systems.

Wirth became one of the members of its board of directors. In 1999, this company released the next version of Oberon - Component Pascal, more suitable for component programming. In 1996, Wirth developed another original programming language, Lola, a simple learning language for formally describing and simulating digital electrical circuits.

On April 1, 1999, Wirth retired, having reached the age limit for a civil servant in Switzerland of 65 years.

On June 19, 2007, Wirth was awarded an honorary doctorate from the Russian Academy of Sciences. The initiator of the presentation was Russian computer scientist Igor Shagaev, a professor at London Metropolitan University, who collaborated with Niklaus Wirth in 2005–2008 on European project ONBASS.

Niklaus Wirth is a member national academies: SwissAcademyofEngineering (Switzerland), U.S. AcademyofEngineering (USA), Berlin-BrandenburgAcademy (Germany).

Wirth always strived for harmony, an organic unity of hardware and software components, and his perseverance and talent undoubtedly made an invaluable contribution to the development of computer science.

Niklaus Wirth (German: Niklaus Wirth, born February 15, 1934) is a Swiss scientist, computer scientist, one of the most famous theorists in the field of programming language development. Lead developer of languages ​​Pascal, Modula-2, Oberon, Professor of Computer Science (ETH), Turing Award winner 1984.

Niklaus Wirth was born on February 15, 1934 in Winterthur, on the outskirts of Zurich (Switzerland). Parents: Walter and Hedwig Wirth. Nicklaus's father was a school teacher.

Programs never contain so few errors as in the absence of any debugging tools.

Wirth Nicklaus

As a child, Niklaus Wirth was interested in aircraft modeling and building rockets; his passion for electronics and software control systems began with the development of remote control devices for models. In 1954 he entered the Faculty of Electronics at the Swiss Federal Institute of Technology (ETH) in Zurich, where he received a bachelor's degree in electrical engineering in four years.

He continued his studies at the University of Laval (Quebec, Canada), and received a master's degree in 1960. Then he was invited to the University of California at Berkeley (USA), where in 1963, under the guidance of Professor Husky, he defended his dissertation, the topic of which was the Euler programming language - an extension of Algol using the Lisp language.

Wirth's thesis was noticed by the community of programming language developers, and in the same 1963 he was invited to the Algol Standardization Committee of the IFIP (International Federation of Informatics), which was developing a new standard for the Algol language, which later became ALGOL-68.

Together with Charles Hoare, Wirth advocated in the committee the development of a moderately modified version of Algol, free from the shortcomings of the original language and supplemented with a minimum of truly necessary tools. Wirth and Hoar presented the Algol-W language (W for Wirth), which was just such a reworking of Algol, to the committee, but it did not receive support.

At the conclusion of the committee's work in 1968, Wirth was among those who criticized ALGOL-68, speaking of its lack of reliability and extreme redundancy. In parallel, from 1963 to 1967, Wirth worked as an assistant at Stanford University, USA.

Together with Jim Wales, he developed and implemented the PL/360 language, intended for programming on the IBM/360 platform - an algol-like language into which a number of system-dependent features related to the IBM/360 architecture were introduced.

In 1967 he returned with the rank of associate professor at the University of Zurich, and in 1968 he received the title of professor of computer science at ETH. He worked at ETH for 31 years. He was involved in a lot of organizational activities, improving the teaching system of his university.

In 1970 he created the Pascal programming language. In the 1970s, he developed, together with C. Hoare and E. Dijkstra, the technology of structured programming. Wirth's 1971 article, “Program Development by Incremental Refinement,” described and substantiated the now classic top-down software development methodology.

To transfer the Pascal system to various computing platforms, in 1973, with the participation of Wirth, a prototype of a virtual machine was developed that would execute an intermediate “pi-code” on any platform, into which all programs were supposed to be compiled.

In 1975, he developed the Modula language, in which he implemented the ideas of developing modular programs with well-defined intermodular interfaces and parallel programming. In addition, the language syntax was changed in the Module - Wirth got rid of the need, inherited from Algol-60, to use compound operators in branching structures and loops.

The module was not widely known and had only one experimental implementation, but its modified version - Modula-2, the development of which began in 1977 and ended in 1980, designed to implement the system software of the Lilith system developed at ETH - a 16-bit personal computer, became known and quite popular, although it has not surpassed Pascal in popularity, especially its commercial implementations.

The Lilith system was ahead of the trends in the computer industry by several years; Wirth later regretted that by not realizing the potential of this system, the Swiss computer industry missed its historical chance. The development of Modula-2 was the Modula-3 language, developed jointly by DEC and Olivetti; Wirth did not take part in its creation.

In the second half of the 1970s, Wirth participated in a US Department of Defense competition to develop a new language for programming embedded systems, which resulted in the creation of the Ada language. The story repeated itself with ALGOL-68 - the project of the group in which Wirth and Hoare worked was not approved by the language committee. As a result, the competition was won by a project based on Pascal, but much more complex and voluminous.

From 1982 to 1984 and from 1988 to 1990, Wirth headed the Faculty of Computer Science at ETH, and since 1990, the Institute of Computer Systems at ETH.

In 1988, in collaboration with Jurg Gutknecht, Wirth developed the Oberon programming language. The goal of the development was to create a language for implementing the system software of the new workstation being designed. The basis for Oberon was Modula-2, which was significantly simplified, but at the same time supplemented with new capabilities.

In 1992, Wirth and Mössenböck released a report on a new programming language, Oberon 2, a minimally expanded version of Oberon. In the same year, a subsidiary of ETH, Oberon microsystems, was formed, which began developing Oberon systems. Wirth became one of the members of its board of directors.

In 1999, this company released the next version of Oberon - Component Pascal, more suitable for component programming. In 1996, Wirth developed another original programming language, Lola, designed for developing custom electronic circuits.

On April 1, 1999, Wirth retired, having reached the age limit for a civil servant in Switzerland (ETH is a state university, its employees are civil servants and their work is subject to the relevant legislation).

Member of national academies: Swiss Academy of Engineering (Switzerland), U.S. Academy of Engineering (USA), Berlin-Brandenburg Academy (Germany).

Wirth's academic respectability has long made it difficult to recognize the fact that he is one of the first true geeks in the history of information technology. Justice triumphed only ten years after his retirement.

Prizes and awards

IEEE Emanuel Piore Award (1983)
ACM Turing Award (1984)
ACM Award for Outstanding Contributions to Computer Science Education (1987, 1989)
IEEE Computer Pioneer (1988)
Prix ​​Max Petitpierre (1989)
IBM Europe Science and Technology Prize (1989)
Marcel Benoit Prize (1990)
Orden Pour le Merite (1996)
Leonardo da Vinci Medal (1999)
ACM Outstanding Research Award in Software Engineering (1999).

Achievements

Wirth developed or participated in the development of programming languages: Euler, Algol-W, PL/360, Pascal, Modula, Modula-2, Oberon, Oberon-2, Component Pascal. His most famous development is, of course, the Pascal programming language, which had a huge influence on several generations of programmers and became the basis for the creation of a large number of programming languages.

Another fundamental work in which Wirth became a participant was the development of structured programming technology, which became, of course, the most powerful formalization in programming at least in the 1970s - 1980s. This technology was developed, validated and implemented by just three outstanding people - Wirth, Dijkstra and Hoar.

Commentators have repeatedly noted that Wirth's ideas were often years ahead of the development of the computer industry, sometimes decades.

The Pascal-P system, developed in the early 1970s, involves the compilation of Pascal programs into a universal “pi-code” and implementation on any platform of a pi-code interpreter (one of its famous implementations is UCSD-Pascal of the University of San Diego), which allowed to port Pascal systems to new hardware platforms with minimal costs, was more than two decades ahead of the ideas of an intermediate code interpreter implemented in systems that support the execution of programs in the Java language and platform. NET.

The idea of ​​combining a programming system with a garbage collector, freeing the programmer from the need to track the lifetime of objects dynamically allocated in memory, was implemented in 1988 in the Oberon language and operating system. Both of these ideas were used by Java developers and. NET in the second half of the 1990s.

Scientific principles

Perhaps one of the most accurate expressions of the principles that Wirth adheres to in the development of all his projects is Einstein’s phrase in the epigraph to the “Message on the Oberon Language”: “Make it as simple as possible, but not simpler than that.”

In all his works, one can trace his initial focus on implementing the most effective solution to a specific engineering problem on the basis of guaranteed working, mathematically based tools. Wirth firmly believes that programming should be a normal engineering discipline that guarantees a sufficient level of reliability of its developments.

Achieving reliability is possible, according to Wirth, in only one way: by maximally simplifying both the systems themselves and the tools that are used to create them. In accordance with this principle, the languages ​​and programming systems developed by Wirth have always been an example of “reasonable sufficiency,” even a kind of asceticism - they provided only for what cannot be done without.

Even the expansion of existing languages ​​and systems has always been accompanied by simplification.

According to calculations published in Sergei Sverdlov’s article “Arithmetic of Syntax”, the “Wirth line”, as he called it - a line of languages ​​including Pascal, Modula-2, Oberon and Oberon2 - is the only example of a “genetic line” of descendant languages ​​of Algol-60 , in which the complexity of the language, defined as the number of lexemes in its description, has steadily decreased and is currently lower than that of its common “progenitor” - ALGOL-60.

All languages ​​of the “Wirth line” are simpler than Algol-60, and each subsequent language in this line is simpler than the previous one. At the same time, Ada is more than twice as complex as its predecessor - Pascal, C++ is approximately 1.7 times more complex than C, and in the Pascal - Turbo Pascal line of different versions - Object Pascal, the complexity grows exponentially from version to version.

Wirth often criticizes the “American approach” to the development of programming tools, in which marketing considerations prevail over the requirements of mathematical harmony and guaranteed reliability, and each new fashionable fad is accompanied by the uncritical introduction of new syntactic elements into programming languages.

This leads to an incorrect assessment of the role of some ideas and, ultimately, to incorrect prioritization in software development. In particular, speaking about OOP, Wirth repeatedly noted that it is a rather trivial extension of the same structural approach, flavored with new terminology, and can hardly claim the title of “revolutionary programming methodology.”

Wirth famously made a caustic remark about the American habit of anthropocentrism in terminology: “They call extensions of the type “inheritance,” but, in general, inheritance usually passes to a descendant only when the ancestor dies.”

Another principle that always guided Wirth can be formulated as follows: “The tool must match the task. If a tool doesn’t fit the task, you need to come up with a new one that would fit it, rather than trying to adapt an existing one.” He does not welcome the development of “languages ​​that are universal in general.”

Each system developed by Wirth had a clearly formulated purpose, scope, and he always, without hesitation, excluded from the development everything that was not needed for this specific purpose.

Here, however, it is necessary to clarify: the “specific purpose” of, for example, Oberon is to ensure extremely easy and safe extensibility of the system, therefore, while not being a “universal language in general”, i.e. not including all possible tools for all imaginable applications, Oberon after all, it is universal - “universal through extensibility.”

Published in Russian:
Systematic programming. Introduction. M.: Mir, 1977;
Pascal. User's Guide and Language Description. M.: Finance and Statistics, 1982 (co-authored with K. Jensen);
Algorithms + data structures = programs. M.: Mir, 1985;
Programming in Modula-2 language. M.: Mir, 1987;
Algorithms and data structures. M.:Mir, 1989. ISBN 5-03-001045-9 (version of the book in Modula-2 language)
Algorithms and data structures. SPb.: Nevsky dialect. 2001.

Wirth’s book “Algorithms + Data Structures = Programs” was published in Russian several times in different versions and is considered the first of three classic textbooks on structured programming.

Niklaus Wirth - photo

Niklaus Wirth - quotes

Programs become slower more quickly than computers become faster.

Programs never contain so few errors as in the absence of any debugging tools.

Niklaus Wirth... This name is known to many in Russia. More than three decades ago, Professor Wirth created the Pascal programming language in distant Switzerland. It would seem that this alone was enough to forever inscribe his name in the annals of computer science. But in life it often happens that it is not the best and most perfect creations that receive recognition and fame. So in the case of Pascal, we see only the tip of the iceberg, and most of Wirth’s work still remains unknown to many.

Niklaus Wirth was born 70 years ago - February 15, 1934 - in the small town of Winterthur on the outskirts of Zurich. Niklaus was born into the family of Walter and Hedwig Wirth. They lived near the school where his father taught. Their house had a good library, where Wirth found many interesting books about railways, turbines and the telegraph.

The small town of Winterthur has a long history and is famous for its mechanical engineering: locomotives and diesel engines are produced there. Since childhood, Wirth was interested in technology, especially aircraft modeling. He literally dreamed of the sky. But to launch rockets he needed fuel, and so he took up chemistry. Young Wirt set up a “secret” laboratory in the school basement. Nothing could stop him: one day the model he made deviated from the given trajectory and landed under the feet of the school principal. However, Wirth still continued to stubbornly pursue his goal.

Several decades later, Niklaus Wirth, like Ken Thompson, the author of UNIX, had the opportunity to fly a MIG from a military airfield in Kubinka, which is located near Moscow. His cherished dream came true. The motivation for Wirth’s professional creativity was best revealed by his colleague at Stanford University (USA), Professor Donald Knuth: “Wirth always wanted to create airplanes, and he needed the best tools. That's why he designed many computer languages ​​and microcomputers..."

From building models, Nicklaus quickly moved on to developing remote controls for them. When he turned 18, he and two other Zurich aircraft modellers received the desired radio equipment from England. This predetermined his future fate - in 1954, Wirth entered the Faculty of Electronics at ETH Zurich (Eidgenoessische Technische Hochschule, Swiss Federal Institute of Technology). After four years of study, Wirth received a bachelor's degree in electrical engineering. And then begins a glorious ten-year overseas scientific “tour” of the future “Father Pascal” and “King of Compilers” along the route Switzerland - Canada - USA - Switzerland.

Wirth continued his studies at the University of Laval in Quebec (Canada), where in 1960 he received a master's degree. Then he was invited to the University of California at Berkeley (USA) - the future pearl of Silicon Valley. There, under the guidance of Professor Husky in 1963, Niklaus Wirth defended his dissertation on the development of Algol using Lisp (Euler language). This work literally gave him a start in life: Virt was noticed by the masters of programming and invited to the IFIP Committee on Algol Standardization. That school was not in vain: for the rest of his life, Wirth remembered that you need to prove that you are right by deeds, especially when they don’t want to hear you. In developing languages, he forever abandoned the abstract scientific approach in favor of a mathematical engineering one. According to him, it is better to implement the language first and only then write about it.

From 1963 to 1967, Wirth worked as an assistant professor at Stanford University and in 1967 returned with this title to the University of Zurich. And in 1968, he received the title of professor of computer science at ETH and began to build his “Swiss” Stanford in his homeland. The twenty years from 1969 to 1989 were perhaps the most fruitful period in Wirth’s life ( table 1). He continued to build his school, devoting a lot of time to organizational activities. From 1982 to 1984 (and then from 1988 to 1990), Wirth headed the Department of Computer Science at ETH, and since 1990 he directed the Institute of Computer Systems at ETH. Professor Wirth retired on April 1, 1999, upon reaching the age of 65.

The romantic 1960s marked the beginning of the friendship between the three patriarchs of structured programming - the Dutchman Edsger Dijkstra, the Englishman Anthony Hoare and the Swiss Niklaus Wirth. These “Nobel” laureates (the Turing Award, awarded by the ACM Association, is awarded once in a lifetime and is equivalent to the Nobel Prize in computer science) were brought together not so much by the abstractions of computer science as by a clear professional position.

The most famous achievement of Professor Wirth is the Pascal language. Of course, many have heard about this language and know it. Pascal played a huge role in shaping the worldview of several generations of programmers. But this language is far from ideal. At one time, Brian Kernighan, a famous popularizer of the C language and co-author of the classic C manual (K&R), wrote a critical article “Why Pascal is not my favorite programming language.” If you read it carefully, you can decide that Niklaus Wirth drew the correct conclusions from it and, in the Modula-2 language, under the influence of the article, eliminated many of the flaws of canonical Pascal. However, one important circumstance should be kept in mind. Kernighan's controversial work was written on April 2, 1981, i.e. two years (!) after the implementation by Wirth’s group at ETH of the first Modula-2 compiler and a year after the release of the hardware implementation of Modula-2 - the Lilith personal computer. In April 1993, at the ACM Conference on the History of Programming Languages, Wirth, in response to a question from one of his colleagues, gave Modula-2 a score of 6 points (the highest score in Swiss schools).

The computer industry lagged behind Wirth's work by at least 5-7 years. In the same 1979, the legendary Apple II computer, much inferior to Lilith, had just acquired the Apple Pascal compiler, focused on the UCSD implementation of Pascal. There were four whole years left before Anders Hejlsberg's first modest Turbo Pascal appeared! Subsequently, Wirth sadly said that with the Lilith project, the Swiss industry missed its unique chance.

The Oberon project became a true pearl of Wirth's creativity. Created almost two decades ago, the Oberon System http://www.oberon.ethz.ch) plays today approximately the same role that the Alto and Xerox Star projects played in the early 1980s at the famous Xerox PARC center, where modern personal computers and word processors originated. For corporations such as Microsoft, IBM and Sun Microsystems, the Oberon project has become a source of fruitful ideas, including a document-oriented interface, browsers, industrial software development languages ​​(Java and C#), machine-independent mobile code (JVM and .NET CLR), applets, component software, dynamic compilation (JIT, AOC, DAC), smart tags, web services, etc.

We live in an era of triumphant mad technological race and contrived complexity. Niklaus Wirth devoted his entire life to the fight against these harmful phenomena, but they do not hear him or do not want to hear him. “An extreme degree of intelligence,” wrote Blaise Pascal, “is accused of insanity in the same way as a complete absence of intelligence. Only mediocrity is good.”

Wirth was and remains a follower of European engineering culture. American achievements gave him rich food for thought: he passed many ideas through himself and crystallized the most valuable. All three key languages ​​(Pascal, Modula-2 and Oberon) were created by Wirth literally two or three years after returning from overseas. (In 1967, Wirth completed work on the Algol-W compiler at Stanford, and in 1976 and 1984 he went to the Xerox PARC laboratories for a year.) Wirth’s work was not created in a vacuum. He was surrounded by like-minded people - colleagues and students, among whom were Jürg Gutknecht (co-author of the Oberon project), Hanspeter Messenbock (co-author of the Oberon-2 language), Richard Oran (co-author in the creation of Lilith), Kuno Pfister (founder of Oberon microsystems and ideologist of the BlackBox toolkit ), Clemens Szyperski (the ideologist of the component architecture in the Oberon System) and Michael Franz (the author of the concept of dynamic code generation, the prototype of Java JIT compilation).

A major role in the popularization of Niklaus Wirth languages ​​and systems in our country in the 1980-1990s was played by the working group on Modula-2, the permanent leader and inspirer of which was D. M. Saghatelyan from the Institute general physics Academy of Sciences of the USSR. One cannot help but recall the work of the group of Professor I.V. Pottosin from the Siberian Branch of the USSR Academy of Sciences (NSU and the A.P. Ershov Institute of Informatics Systems). Creation of tools for on-board software of domestic satellites (SOCRAT project), the KRONOS family of computers (Dmitry Kuznetsov, Alexey Nedorya, Evgeny Tarasov, Vladimir Vasekin, etc.), the XDS family of Modula-2/Oberon-2 compilers - these are perhaps the most striking pages of national history associated with the name of Virt. The growing wave of interest in Oberon, the pinnacle of creativity of the patriarch of reliable programming, due to the urgent need for high-quality software, in particular in physics, led to the emergence of the Informatics-21 project ( http://www.inr.ac.ru/~info21/), to which Wirth takes great interest. Moreover, in March of this year, the Swiss Center for Nuclear Research (CERN), where the World Wide Web began 15 years ago, held Oberon Day especially for physicists ( http://cern.ch/oberon.day).

Niklaus Wirth started the tradition of naming programming languages ​​after mathematicians of the past. In 1963, he gave the name of Leonhard Euler, the great Swiss mathematician who worked for many years in Russia, to his first creation - the Euler language. And in 1970, Blaise Pascal, the great French mathematician and philosopher, whose work was admired by N. G. Chernyshevsky and L. N. Tolstoy, was immortalized by Wirth in the Pascal language. Interesting parallels: On May 11, 1994, speaking at St. Petersburg University, Donald Knuth emphasized that he was especially pleased by the fact that the title of honorary doctor of computer science was awarded to him by the university where the great Euler taught. On June 27, 1996, Niklaus Wirth donned an honorary doctorate in the Novosibirsk Academic Town, created by M. A. Lavrentiev and S. L. Sobolev in the image and likeness of the same Stanford, which Wirth took as the basis for the construction of his European school at ETH. Wirth's contribution to the development of computer science and software engineering was highly appreciated. He not only became a member of three academies (Swiss Academy of Engineering, U.S. Academy of Engineering, Berlin-Brandenburg Academy), but also received the most prestigious awards ( table 2).

The life credo of Niklaus Wirth is perhaps best conveyed by the words of the great Blaise Pascal, who wrote more than three centuries ago: “All our dignity lies in thought. It is not space or time, which we cannot fill, that elevates us, but it is she, our thought. Let's learn to think well...

Ruslan Bogatyrev- scientific editor of PC World, Chief Editor"PC Disk World" [email protected] .

Full version For articles, see the electronic almanac “The Art of Programming,” published in the March supplement “PC Disk World” (No. 3/04).

We live in a complex world and try to solve inherently complex problems that often require complex devices to solve. However, this does not mean that we should not find elegant solutions that convince with their clarity and effectiveness. Simple, elegant solutions are more effective, but they are harder to find than complex ones and take longer to find.

Niklaus Wirth(Switzerland, Swiss Federal Institute of Technology).

From the Turing Award speech (San Francisco, USA, October 1984).

When there were no computers yet, programming was not a problem. When we had several low-power computers, programming became a problem of medium complexity. Now that we have giant computers, programming becomes a gigantic problem.

Edsger Dijkstra(Netherlands, Eindhoven University of Technology).

Almost anything in software can be implemented, sold, and even used with enough persistence... But there is one quality that cannot be bought, and that is reliability. The price of reliability is the pursuit of extreme simplicity. This is the price that is most difficult for the very rich to pay.

Anthony Hoare(Great Britain, Oxford University).

Share with friends or save for yourself:

Loading...