Nikolaus Wirth and PASCAL – Programming Language for the Masses

Niklaus Wirth (*15 February 1934)

Niklaus Wirth (*15 February 1934)

On February 15, 1934, Swiss computer scientist Niklaus Emil Wirth was born. He is best known for designing several programming languages, including Pascal, and for pioneering several classic topics in software engineering. If there is (or better ‘was’) one programming language that I really loved in the same way I hated it, then it was Pascal. On the one hand it was a rather easy to understand beginners programming language, but when trying to build ‘real world’ software projects based on Pascal, most of them in my experience were doomed to fail. The largest project based on Pascal that I was involved in was a 2 mio lines of code near realtime application for the military in the 1990s. Everybody knew Ada or C++, would have been a better choice, but the decision to use Pascal was not ours. Believe me, you wouldn’t want to be responsible for the maintenance of 2 mio lines of Pascal code. Nevertheless, the concept of the language designed by Niklaus Wirth was a great achievement for computer science!

“A good designer must rely on experience, on precise, logic thinking; and on pedantic exactness. No magic will do.” (Niklaus Wirth)

Niklaus Wirth – Academic Education

Niklaus Wirth was born in Winterthur, Switzerland, in 1934. In 1959 he earned a degree in Electronics Engineering from the Swiss Federal Institute of Technology Zürich (ETH Zürich), an M.SC. from Laval University (1960), and a Ph.D. in electrical engineering and computer science from UC Berkeley (1963). Upon graduation, Wirth became an assistant professor at the newly created computer science department at Stanford University. Then in 1968 he became Professor of Informatics at ETH Zürich, where he stayed until his retirement in 1999.

Modula and Pascal

It was at the ETH Zürich, where he developed the programming languages Pascal (1970), Modula-2 (1979), and also Oberon (1988). Pascal was by far the most popular of them and became a widely used programming language in computer science education. It influenced a generation of students and professional programmers. The basis of the development of Pascal was the programming language Algol-W with the explicit goals of producing a language that would be efficient both in the compiler and at run-time, allow for the development of well-structured programs, and to be useful for teaching students structured programming.

A Coherent Syntax

Pascal, like many programming languages of today, allows nested procedure definitions to any level of depth, and also allows most kinds of definitions and declarations inside subroutines. This enables a very simple and coherent syntax where a complete program is syntactically nearly identical to a single procedure or function. The peculiar simplicity and beauty of a Pascal program can easily be demonstrated via ‘Hello World‘:

program HelloWorld;
 begin
  writeln('Hello World');
 end.

Implementation and Applications

The first Pascal compiler was designed in Zurich for the CDC 6000 computer family, and it became operational in 1970. Already in 1972 Pascal was used in introductory programming courses. One of the early successes for language was the introduction of UCSD Pascal, a version that ran on a custom operating system that could be ported to different platforms. A key platform was the Apple II, where it saw widespread use. This led to the use of Pascal becoming the primary high-level language used for development in the Apple Lisa,[3] and later, the Macintosh.[4] Parts of the original Macintosh operating system were hand-translated into Motorola 68000 assembly language from the Pascal sources. The typesetting system TeX by Donald E. Knuth [5] was written in WEB, the original literate programming system, based on DEC PDP-10 Pascal, while applications like Total Commander, Skype and Macromedia Captivate were written in Delphi (Object Pascal). Apollo Computer used Pascal as the systems programming language for its operating systems beginning in 1980.

During work on the Apple Lisa,[3] Larry Tesler began corresponding with Wirth on the idea of adding object oriented extensions to the language, which led to the development of Object Pascal. The Object Pascal extensions were later added to Turbo Pascal, and over the years became the Delphi system for Microsoft Windows.

Turing Award and Wirth’s Law

Wirth has contributed to both hardware and software aspects of computer design and has written influential books on software engineering and structured programming. He received the ACM Turing Award for the development of these languages and in 1994 he was inducted as a Fellow of the ACM.

Niklaus Wirth also popularized the so-called Wirth’s law, a computing adage in 1995. It states a simple fact that should give us computer scientists a lot to think about:

“Software is getting slower more rapidly than hardware becomes faster.” (Wirth’s Law)

And this now is an insider only for programmers: Wirth has reportedly told the joke that, because Europeans pronounce his name properly (“VEER-t“), while Americans pronounce it as “nickel’s worth“, he is called by name in Europe and called by value in America.


Niklaus Wirth, Reviving a computer system of 25 years ago – Wirth, 2014, [8]

References and Further Reading:

3 comments

  • Pingback: Whewell’s Gazette: Year 2, Vol. #32 | Whewell's Ghost

  • Pingback: Pascal – P.A.M.

  • I have written programs using pascal that were not “doomed to fail” in fact one of the early workstations (Apollo workstation) had used pascal to build its operating system AEGIS which was truly superior to unix but not as well known… try working in Ibm assembly and an old version of JOVIAL… (tell you the truth, the problem wasn’t JOVIAL, some of the assembly code was lacking in comments, I remember taking about an hour to write an assembly language subroutine, but then spending 2 months looking through the code to determine where to call it from…)

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

Relation Browser
Timeline
0 Recommended Articles:
0 Recommended Articles: