Back to Top

The Pascal Family of Programming Languages

The Pascal programming language
The Pascal programming language

The computer programming language Pascal, was designed by Niklaus Wirth in 1968-69 while he was Professor of Informatics at the ETH in Zürich, Switzerland and was published in 1970. Pascal utlimately evolved to Oberon, the first version of which was created in 1986, as a successor to Modula-2, which had its roots in Pascal.

Introduction

All of these programming languages trace their roots back to the ALGOL family of programming languages - the first generation of high level programming languages developed at the ETH Zürich (Federal Technical University) in the 1950s and 60s. One of the main characteristics of a high level programming language is to provide an abstraction that does not require the programmer to understand the underlying hardware architecture in order to program and Pascal embodied this philosophy like no other programming language through the 1990s, when object oriented programming languages became more popular.

An important goal of the Pascal programming language was to teach good programming practices based on structured programming and data structuring. It was named after the French mathematician and philosopher Blaise Pascal.

Innovation and Influence

Niklaus Emil Wirth, born in 1934 in Winterthur, Switzerland, is the Swiss computer scientist best known for inventing the programming language Pascal and its successors Modula-2 and Oberon. After getting his Ph.D. in Electrical Engineering and Compute Science in 1963 at the University of California in Berkely, he went on to become an assistant Professor of Computer Science before become Professor of Informatics at the ETH (Federal Technical University) in Zürich Switzerland. Pascal and its successor programming languages were the result of Niklaus Wirth’s work at the ETH. He received the ACM Turing award for the development of these programming languages in 1984 and was inducted as a fellow of the ACM in 1994.

Pascal is best known from the commercially successful TurboPascal by Borland which evolved to Delphi, which initiated a trend of powerful Integrated Development Environments (IDE) for software development. Other widely used versions of Pascal include UCSD Pascal (from the University of California, San Diego) and Waterloo Pascal (from the University of Waterloo in Canada). Pascal was also very popular among users of the Apple II computer family and became an important tool for programming on the early Mac.

Philosophy

Pascal and its successors followed a philosophy which involved:

  • An abstract programming paradigm, which meant the programmer did not need to understand the architecture of the underlying hardware, but could work with a high level programming paradigm. By keeping this paradigm simple, it was possible to write compilers which generated efficient machine code from Pascal.
  • A simple and precisely defined syntax (BNF: Backus Nauer Form) which made it easy to implement compilers.
  • Strongly typed language: the programming language enforced prevented common programming mistakes, making programming much more efficient. This meant that many common errors could be detected at compile time before the program ran, rather than have end users be confronted with runtime errors.
  • Runtime checking and enforcing of array bounds. This made it easy to find a problem when it occurred, because the Pascal run time environment noticed it immediately and threw an error. This sort of error often goes undetected in other commonly used programming languages like C, where these sorts of errors may not be detected immediately and can lead to an error many days later in a completely different context, often making the detection of the real cause of the error a time consuming process.

Today, the programming language Oberon-7 is the standard bearer of the Pascal family of programming languages. Pascal was characterised by its philosophy of high level abstraction combined with a precise syntax definition which leads to efficient code. It has been enhanced to provide support for more modular programming (Modula-2) as well Type Extensions which is Oberon’s mechanism for object oriented programming.

Quotes

Analogous to Moore’s law, which states that computing power doubles every 18 months, Wirth’s law, named after NIklaus Wirth, states that “Software is getting slower more rapidly than hardware becomes faster”. His philosophy of programming and programming languages were meant to prevent this.

Some quotes from Niklaus Wirth:

“But quality of work can be expected only through personal satisfaction, dedication and enjoyment. In our profession, precision and perfection are not a dispensible luxury, but a simple necessity.”

“But quality of work can be expected only through personal satisfaction, dedication and enjoyment. In our profession, precision and perfection are not a dispensible luxury, but a simple necessity.”

“Indeed, the woes of Software Engineering are not due to lack of tools, or proper management, but largely due to lack of sufficient technical competence.”

“Usually its users discover sooner or later that their program does not deliver all the desired results, or worse, that the results requested were not the ones really needed.”

References and further reading:

  1. Pascal programming language: https://en.wikipedia.org/wiki/Pascal_(programming_language)
  2. Niklaus Wirth: https://en.wikipedia.org/wiki/Niklaus_Wirth#Notable_publications
  3. Oberon: https://en.wikipedia.org/wiki/Oberon_(programming_language)
  4. Quotes: https://www.brainyquote.com/authors/niklaus_wirth
  5. Niklaus Wirth’s home page at the ETH Zürich: https://www.inf.ethz.ch/personal/wirth/

 

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <h2> <h3> <h4> <h5> <h6> <!--break--> <p> <div> <img>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.