As a matter of fact, the adaptability of a program to changes in its objectives (often called maintainability) and to challenges in its environment in terms of the degree to which it is neatly structured.
But active programming consists of the design of new programs, rather than contemplation of old programs.
Clearly, programming courses should teach methods of design and construction, and the selected examples should be such that a gradual development can be nicely demonstrated.
During the process of stepwise refinement, a notation which is natural to the problem in hand should be used as long as possible.
Experience shows that the success of a programming course critically depends on the choice of these examples.
In the practical world of computing, it is rather uncommon that a program, once it performs correctly and satisfactorily, remains unchanged forever.
Programming is usually taught by examples.
Niklaus Emil Wirth is a
SwissSwitzerland name of one of the Swiss cantons. ; ; ; or ), in its full name the Swiss Confederation , is a federal republic consisting of 26 cantons, with Bern as the seat of the federal authorities. The country is situated in Western Europe,Or Central Europe depending on the definition....
computer scientistComputer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...
, best known for designing several
programming languageA programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
s, including
PascalPascal is an influential imperative and procedural programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.A derivative known as Object Pascal...
, and for pioneering several classic topics in
software engineeringSoftware Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...
. In 1984 he won the
Turing AwardThe Turing Award, in full The ACM A.M. Turing Award, is an annual award given by the Association for Computing Machinery to "an individual selected for contributions of a technical nature made to the computing community. The contributions should be of lasting and major technical importance to the...
for developing a sequence of innovative computer languages.
Biography
Wirth was born in
WinterthurWinterthur is a city in the canton of Zurich in northern Switzerland. It has the country's sixth largest population with an estimate of more than 100,000 people. In the local dialect and by its inhabitants, it is usually abbreviated to Winti...
,
SwitzerlandSwitzerland name of one of the Swiss cantons. ; ; ; or ), in its full name the Swiss Confederation , is a federal republic consisting of 26 cantons, with Bern as the seat of the federal authorities. The country is situated in Western Europe,Or Central Europe depending on the definition....
, in 1934. In 1959 he earned a degree in Electronics Engineering from the Swiss Federal Institute of Technology Zürich (ETH Zürich). In 1960 he earned an M.Sc. from
Université LavalLaval University is the oldest centre of education in Canada and was the first institution in North America to offer higher education in French...
,
CanadaCanada is a North American country consisting of ten provinces and three territories. Located in the northern part of the continent, it extends from the Atlantic Ocean in the east to the Pacific Ocean in the west, and northward into the Arctic Ocean...
. Then in 1963 he was awarded a
Ph.D.Doctor of Philosophy, abbreviated as Ph.D., PhD, D.Phil., or DPhil , in English-speaking countries, is a postgraduate academic degree awarded by universities...
in Electrical Engineering and Computer Science (EECS) from the
University of California, BerkeleyThe University of California, Berkeley , is a teaching and research university established in 1868 and located in Berkeley, California, USA...
, supervised by the computer designer pioneer
Harry HuskeyHarry Douglas Huskey is an American computer designer pioneer.Huskey was born in the Smoky Mountains region of North Carolina and grew up in Idaho. He gained his Master's and then his PhD in 1943 from the Ohio State University on Contributions to the Problem of Geocze...
.
From 1963 to 1967 he served as assistant professor of
Computer ScienceComputer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...
at
Stanford UniversityThe Leland Stanford Junior University, commonly referred to as Stanford University or Stanford, is a private research university on an campus located near Palo Alto, California. It is situated in the northwestern Santa Clara Valley on the San Francisco Peninsula, approximately northwest of San...
and again at the
University of ZurichThe University of Zurich , located in the city of Zurich, is the largest university in Switzerland, with over 25,000 students. It was founded in 1833 from the existing colleges of theology, law, medicine and a new faculty of philosophy....
. Then in 1968 he became Professor of
InformaticsInformatics is the science of information, the practice of information processing, and the engineering of information systems. Informatics studies the structure, algorithms, behavior, and interactions of natural and artificial systems that store, process, access and communicate information...
at ETH Zürich, taking two one-year sabbaticals at
Xerox PARCPARC , formerly Xerox PARC, is a research and co-development company in Palo Alto, California, with a distinguished reputation for its contributions to information technology and hardware systems....
in
CaliforniaCalifornia is a state located on the West Coast of the United States. It is by far the most populous U.S. state, and the third-largest by land area...
(1976–1977 and 1984–1985). Wirth retired in 1999.
Programming languages
Wirth was the chief designer of the
programming languageA programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
s Euler,
Algol WALGOL W is a programming language. It was based on a proposal for ALGOL X by Niklaus Wirth and C. A. R. Hoare as a successor to ALGOL 60 in IFIP Working Group 2.1. When the committee decided that the proposal was not a sufficient advance over ALGOL 60, the proposal was published as A contribution...
,
PascalPascal is an influential imperative and procedural programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.A derivative known as Object Pascal...
,
ModulaThe Modula programming language is a descendent of the Pascal programming language. It was developed in Switzerland in the late 1970s by Niklaus Wirth, the same person who designed Pascal...
,
Modula-2Modula-2 is a computer programming language designed and developed between 1977 and 1980 by Niklaus Wirth at ETH Zurich as a revision of Pascal to serve as the sole programming language for the operating system and application software for the personal workstation Lilith...
, Oberon,
Oberon-2Oberon-2 is an extension of the original Oberon programming language that adds limited reflection and object-oriented programming facilities, open arrays as pointer base types, read-only field export and reintroduces the FOR loop from Modula-2....
, and Oberon-07 . He was also a major part of the design and implementation team for the
LilithLilith is the name of custom built workstation using the AMD 2901 bit-slice processor by the group of Niklaus Wirth at ETH Zürich. The project started in 1977 and by 1984 several hundred workstations were in use. It had a high resolution full page display, a mouse, a laser printer interface, and a...
and
OberonOberon is an operating system developed in the late 1980s at ETH Zürich using the Oberon programming language. It has an innovative visual text-based user interface for activating commands.- History :...
operating systems, and for the
LolaLola is designed to be a simple hardware description language for describing synchronous, digital circuits. Niklaus Wirth developed the language to teach digital design on field-programmable gate arrays to computer science students while a professor at ETH Zürich.The purpose of Lola is to...
digital hardware design and simulation system. He received the
ACMThe Association for Computing Machinery is a learned society for computing. It was founded in 1947 as the world's first scientific and educational computing society. Its membership is more than 92,000 as of 2009...
Turing AwardThe Turing Award, in full The ACM A.M. Turing Award, is an annual award given by the Association for Computing Machinery to "an individual selected for contributions of a technical nature made to the computing community. The contributions should be of lasting and major technical importance to the...
for the development of these languages and in 1994 he was inducted as a Fellow of the ACM.
He designed the simple programming language
PL/0At least two programming languages are known as PL/0. One is a subset of IBM's general-purpose programming language PL/I.The other PL/0, covered here, is similar to but much simpler than the general-purpose programming language Pascal, intended as an educational programming language. It serves as...
to illustrate
compilerA compiler is a computer program that transforms source code written in a programming language into another computer language...
design. It has formed the basis for many university compiler design classes.
Notable publications
His article
Program Development by Stepwise Refinement, about the teaching of programming, is considered to be a classic text in
software engineeringSoftware Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...
.
In 1975 he wrote the book "
Algorithms + Data Structures = ProgramsAlgorithms + Data Structures = Programsis a 1976 book written by Niklaus Wirth covering some of the fundamental topics of computer programming, particularly that algorithms and data structures are inherently related...
", which gained wide recognition and is still useful today.
Wirth's law
In 1995, he popularized the adage now known as
Wirth's lawWirth's law is a computing adage made popular by Niklaus Wirth in 1995:Wirth attributed the saying to Martin Reiser, who, in the preface to his book on the Oberon System, wrote: The hope is that the progress in hardware will cure all software ills...
: "Software is getting slower more rapidly than
hardwareHardware is a general term for equipment such as keys, locks, hinges, latches, handles, wire, chains, plumbing supplies, tools, utensils, cutlery and machine parts. Household hardware is typically sold in hardware stores....
becomes faster." In his 1995 paper
A Plea for Lean Software he attributes it to Martin Reiser.
Quotes
See also
- Extended Backus–Naur form
In computer science, Extended Backus–Naur Form is a family of metasyntax notations used for expressing context-free grammars: that is, a formal way to describe computer programming languages and other formal languages. They are extensions of the basic Backus–Naur Form metasyntax notation.The...
- Wirth syntax notation
Wirth syntax notation is a metasyntax, that is, a formal way to describe formal languages. Originally proposed by Niklaus Wirth in 1977 as an alternative to Backus-Naur form , it has several advantages over BNF in that it can be defined using itself, it contains an explicit iteration construct,...
- Bucky bits
In computing, bucky bit in a binary representation of a character, is a bit that is set by pressing on a computer keyboard additional modifier key, other than ordinary shift key.-Overview:Setting a bucky bit changes the output character...
- Wirth-Weber precedence relationship
The Wirth-Weber relationship between a pair of symbols is necessary to determine if a formal grammar is a Simple precedence grammar, and in such case the Simple precedence parser can be used....
External links
- Biography at ETH Zürich
The Swiss Federal Institute of Technology Zurich or ETH Zürich is an engineering, science, technology, mathematics and management university in the City of Zurich, Switzerland....
.
- Personal home page at ETH Zürich.
- Program Development by Stepwise Refinement, Communications of the ACM
Communications of the ACM is the flagship monthly journal of the Association for Computing Machinery . First published in 1957, CACM is sent to all ACM members, currently numbering about 80,000. The articles are intended for readers with backgrounds in all areas of computer science and information...
, 14(4):221–227, April 1971.
- Pascal and its Successors paper by Niklaus Wirth – also includes short biography.
- A Few Words with Niklaus Wirth
- The School of Niklaus Wirth: The Art of Simplicity, by László Böszörményi, Jürg Gutknecht, Gustav Pomberger (editors). dpunkt.verlag / Morgan Kaufmann Publishers
Morgan Kaufmann Publishers is a Massachusetts based publisher specializing in computer science and engineering content.Since 1984, Morgan Kaufmann has published content on information technology, computer architecture, data management, computer networking, computer systems, human computer...
, 2000. ISBN 3-932588-85-1 / ISBN 1-55860-723-4.
- The book about the Oberon language and Operating System is now available as a PDF file. Project Oberon - The Design of an Operating System and Compiler The PDF file has an additional appendix Ten Years After: From Objects to Components.
- The book Compiler Construction
- a lot more books in PDF format : http://fruttenboel.verhoeven272.nl/Oberon/index.html