Niklaus Wirth

Niklaus Emil Wirth, (born Feb. 15, 1934, Winterthur, Switz.), Swiss computer scientist and winner of the 1984 A.M. Turing Award, the highest honour in computer science, for “developing a sequence of innovative computer languages, EULER, ALGOL-W, MODULA and PASCAL.”

Wirth earned a bachelor’s degree (1959) in electronics engineering from the Swiss Federal Institute of Technology (ETH), a master’s degree (1960) in electronics engineering from Laval University, in Quebec city, and a doctorate (1963) in computer science from the University of California, Berkeley.

After a stint on the Stanford faculty, he returned to ETH in 1968. He was a driving force behind the creation in 1981 of what quickly became one of the world’s leading computer science departments, serving as its head for much of the 1980s. Wirth retired in 1999, but remained a frequent presence on its beautiful hilltop campus for many more years.

Wirth began his rise to prominence in computer science by creating two languages: Euler (based on his dissertation work), and the systems programming language PL360 (for the IBM System/360 series of computers). This early work broke new ground in formal separation of syntax and semantics, in novel implementation techniques, and in careful language design for efficient implementation with specific parsing methods.

Both languages were heavily influenced by Algol.

Starting in 1957, when academic departments and regular conferences for computer scientists did not yet exist, the Algol project laid a vital foundation for the emerging discipline. Through Algol, Wirth collaborated with other future Turing Award winners including C.A.R. (Tony) Hoare, Edsger Dijkstra, and Peter Naur. Like Wirth, all had joined the group after showing early promise as designers of compilers and other systems software, production of which was the major practical challenge facing computer scientists during this era.

Wirth used Algol-W as the basis for what would prove his most influential creation, the language Pascal. Following his personal aesthetic, Pascal was simple, flexible and designed for rapid compilation into efficient code. It retained Algol’s code structures, logical completeness, and support for recursion, but stripped away some of its complexity and added support for complex and user-defined data types. Wirth later wrote that the “single most important guideline” was “to include features that were well understood, in particular by implementors, and to leave out those that were still untried and unimplemented.”

Pascal was adopted in 1971 for teaching at ETH, and it spread rapidly to other universities. To help implement Pascal on computers of all kinds, Wirth created a new kind of compiler which was written for, and generated code to run on, a virtual machine. Simulating this virtual machine on a new computer made it easy to port his compiler. Pascal’s great leap into mainstream use came a few years later, with the spread of personal computers. The simplicity and efficiency of Pascal made it a natural fit to their limited memory and disk space. Borland’s cheap and fast Turbo Pascal compiler cemented Pascal’s position as the leading high level computer language of the 1980s for serious personal computer software development.

During the 1970s Wirth shared the interest of other veterans of the Algol project, such as Edsger Dijksta and Tony Hoare, in programming methodologies and formal methods. He participated in the IFIP Working Group on Programming Methodology, proposing the idea of stepwise refinement of code as a complement to the various visions of “structured programming” they put forward. His books "Systematic Programming and Algorithms + Data Structures = Programs" are among the most influential contributions to the literature on programming methods and concepts.

Wirth’s involvement in hardware design deepened during the 1980s. Computer scientists know that hardware and software design are similarly challenging, but most tend to focus on one or the other. Wirth did both. He seized on the new Field Programmable Gate Array (FPGA), a special chip that can be reprogrammed for a particular application, and developed languages and tools to configure them efficiently from a high level specification.

Decades after pioneering computer science groups at MIT and the Universities of Cambridge and Manchester stopped building their own computers and operating systems, Wirth made ETH a place where computer science students and faculty used internally produced hardware, operating systems, and programming tools. He believed that students should read and understand the code of real systems before trying to write their own. He had a life-long drive for simple, elegant, and efficient systems as part of a broader commitment to the integration of theory and practice.

As Wirth put it in his 1984 Turing Award lecture, one must “distinguish early between what is essential and what ephemeral” and ensure that “the ephemeral never impinge on the systematic, structured design of the central facilities.” He observed that:

…every single project was primarily a learning experiment. One learns best by inventing. Only by actually doing a development project can I gain enough familiarity with the intrinsic difficulties and enough confidence that the inherent details can be mastered.

The effectiveness of his systems, and his ability to build complex systems with small teams, relied on his constant search for elegant simplicity—for what could be left out. Over time his language designs and compiler techniques became, in some respects, simpler and more efficient rather than, as is almost universal, slower and more complex. In 1995 he warned that “The plague of software explosion is not a ‘law of nature.’ It is avoidable, and it is the software engineer's task to curtail it.


Wirth - Algorithms plus Data Structures = Programs_removed.pdf
Wirth - Project Oberon.pdf
Wirth - Compiler Construction.pdf