Previous Table of Contents Next


Part IV
Pascal

5  Turbo Pascal

Chapter 5
Turbo Pascal

by Glenn Grotzinger

5.1. The History of Pascal

The first part of this chapter gives a brief history of Pascal, including a description of the pre-creation history of Pascal, its growth to prominence and eventual assignment of a Pascal standard, its growth since then (Pascal variants, platforms, and its descendants), and the status of Pascal today.

5.1.1. Birth

The story of the Pascal language begins in 1964 with a man named Niklaus Wirth, while he was in a group referred to as Working Group 2.1. The purpose of this group was to define a working standard for what was to become Algol 68. Ultimately, the group’s deliberations to determine this new standard were reduced to two proposals, Wirth’s and another individual’s. Wirth’s proposal was rejected in 1965, in favor of the other proposal, referred to as Algol X. Undaunted by the rejection and encouraged by the amount of dissent Algol X received, Wirth moved on to develop his proposal, which was referred to as Algol W.

In the current state of programming at that time, Algol 60 was the predominant academic language, whereas COBOL was predominant in business, and Fortran was common for scientific purposes. Fortran was clearly superior to Algol 60 in performance and features, and this is what the group sought to change.

Meanwhile, it took four years for the Algol 68 standard to reach the implementation stage. It was projected that people would abandon Algol in that time period, and many did. In this same time period, Wirth took a professorship at the Federal Institute of Technology in Zurich, Switzerland. Because of the lack of a suitable implementation of Algol (only Fortran and assembler existed) at his institution, Wirth set out to create a single pass, top-down recursive descent compiler to fill the void he saw, the necessity to teach structured programming techniques. He named this compiler Pascal, after the French mathematician and philosopher Blaise Pascal, of the seventeenth century.

Pascal was completed in 1970. In creating the language, Wirth sought to extend Algol with new data types and new abilities to combine different data types. He also sought to remove or simplify structures that were deemed confusing and unnecessary, such as the ability to place the keyword IF in the middle of a statement. The most notable additions to Pascal, inspired from other languages, was the COBOL-like record types, and the simplified for statement from Fortran (eliminating the step clause).

5.1.2. Growth

Eventually, Pascal caught on for teaching purposes but was still not efficient enough for most uses. Wirth then removed all functions but those considered useful for teaching purposes, and he called the resulting compiler Pascal-S.

After the publication of Pascal in 1970, others expressed interest in porting Pascal to other platforms besides the CDC platform which was at Zurich at the time. This led to the development of what was referred to as the “p-kit,” which included most of what was needed to be able to implement a Pascal compiler in about any environment. This led to the porting of Pascal to many other platforms, though the unwillingness of people to proceed beyond the interpretative phase of porting the code led Pascal to be known as a slow language.

One group that received a copy of the p-kit was at the University of California at San Diego. At this time, the first microcomputers (PCs) were being developed, and what was to become USCD Pascal, the first compiler developed for a PC environment, was developed. What was unique for the entire case with Pascal compilers was that an interactive debugger and source editor were included along with the compiler itself.

During this time, Pascal grew to be one of the most popular languages to use in teaching, with the prevalent ability to teach the language on the microcomputers that were becoming popular (the Apple II and others). In this time, the Pascal User’s Group of the University of Minnesota gained prominence in promoting the further development of Pascal, so much so that when Wirth chose to move on to other projects in 1975, this group took over much of the distribution and further development of Pascal.

Discussions to devise an official Pascal standard first occurred in 1977. As deliberations grew raucous, many factions grew out of the efforts. For this reason, standards organizations took a long time and even ratified the standard at different times. The IEEE adopted it in 1981; the ANSI, in 1982; and ISO, in 1983. Even so, after the standards were set, current distributors of Pascal compilers were very reluctant to drop many of their own extensions. The raucousness and recalcitrant nature of the participants led to several factions and standards, which still are seen today in portability problems.

5.1.3. Prominence

What was probably the single most important event to the spread and popularization of Pascal as it is today was the marketing of a Pascal compiler in 1984 from a company named Borland International. This compiler was called Turbo Pascal (Gillin, 1995). With the lack of copy protection and lower costs (the average price of work-related software at that time was $400), the Borland variant became the prominent, true compiler and development environment available to the masses, so much so that Niklaus Wirth was quoted at the HOPL-II convention as saying, “But the point is well taken that the actual [de-facto] standard for Pascal has been defined by Borland, just by producing a compiler and distributing it cheaply and widely. If you talk to anyone about Pascal today, probably Turbo Pascal from Borland is meant” (Wirth, 1996).

In the subsequent period, Borland added several extensions related to events of the period. Borland is recognized as one of the innovators and encouraging forces for the addition of object orientation to Pascal (1985) and the (agreed to be not-so-innovative) inclusion of the Borland Graphics Interface and Turbo Vision to Turbo Pascal.

Eventually, with Turbo Pascal 6 and 7, there were separated versions (Turbo Pascal and Turbo Pascal Professional for Version 6 and Turbo Pascal and Borland Pascal for Version 7). The separation was due to the inclusion of Windows compilers and later, in Version 7, a 32-bit DPMI compiler.


Previous Table of Contents Next