Early Apple Pascal was based entirely on the UCSD system, and the same comments apply to it as to UCSD Pascal above.
This assertion has often been used to imply that Pascal is a toy language. I can't state the answer any better than Niklaus Wirth himself did:
"Occasionally, it has been claimed that Pascal was designed as a language for teaching. Although this is correct, its use in teaching was not the only goal. In fact, I do not believe in using tools and formalisms in teaching that are inadequate for any practical task." - Niklaus Wirth, from the 1984 ACM A.M. Turing award lecture.
Pascal is a structured language, using if-then-else, while, repeat-until, and for-to/downto control structures. It differs primarily from proceeding languages in that data structures were also included, with records (a feature borrowed from COBOL), arrays, files, sets and pointers.
Pascal is also unusual for forging an effective compromise between language simplicity, power, and matching of language structures to underlying machine implementation.
Pascal also has many features for compiler writers. The language is constructed to have a minimum of ambiguity. Pascal, with few exceptions, can be processed "forward" with all of the smaller elements (like constants, types, etc) being defined before they are used. Pascal requires the types and exact sizes of operands to be known before they are operated on, again leading to simplified language processing and efficient output code (although this feature has often been called a problem). For this reason, Pascal still remains a popular language to implement compilers for as part of a compiler science class.
Recently, I have had some folks email me that they are surprised I am supporting advanced extentions for Pascal.
Pascal always had extentions. The original compiler created by Niklaus Wirth had extentions specific to the CDC 6000 series computers. The idea of the standard was never to forbid extentions, but rather that the basic implementation be as standardized across processors and implementations as possible.
In the old days of the mainframe and line printers, there was actually a chance that a program completely coded within the language standard would be all that was needed. Now, with advanced graphics and sound, and advanced devices like video editing, the general portable program is thought by many to be dead. I would say that nothing is further from the truth. We need clean and portable interfaces and programs more than ever. What has changed is that we rely more on library construction and interfaces. Windows, OS X and Linux/X Windows can be thought of as advanced intefaces with somewhat limited portability. Advanced graphics libraries such OpenGL are paving the way to new levels of functionality and portabilty.
Unlike many commercial products, IP Pascal is not designed according to the "hit software" mentality. I use IP Pascal here, I am its first customer. Because of this, I won't be creating phone support for the product. IP Pascal will be supported by email, web site, and usenet forum without charges or restrictions. Emails will be typically answered within 48 hours.
Because this support model does not require hiring large support staffs (and then firing them later as demand decreases), there is no plans to limit or charge for support.
No. IP Pascal originated in 1980. IP Pascal is used here in electronic integrated circuit CAD programs. IP Pascal was written as a core in assembly language, but the majority of the system rewritten in Pascal by 1985. In 1987, like many other developers, I moved to the IBM-PC and began using off the shelf standard ISO/ANSI compilers. By 1990, I started to have extensive problems with Pascal vendors not keeping up with changing technologies, and foresaw the fallout of many existing vendors from the market.
At that time, I made a decision whether I would stay with my extensive code base in Pascal, or move to a more generally accepted language, most likely C. I decided that I would stay with Pascal, and take back control of our compiler as it was abandoned in 1987. That work was completed in 1995, in time for the advent of Windows 95. Since that year, the platform for IP has been extensively expanded.
IP was never coined to be a particular acronym. Present definitions are Internet Pascal, Intellectual Property Pascal, InterPlatform Pascal. The name IP Pascal was chosen to represent the flavor of today's machine and process independent design processes.
As some of you may know, I am heavily involved in the networking industry. Internet Protocol was originally envisioned as a way to "bridge" different networks together. The principle was that one carefully constructed standard would be able to bridge any number of different networks together, and the overhead of a second level protocol would only be incurred once. This is much like saying that designing one standard plug, then designing a series of adapters to that plug from other plug types, can unify incompatible systems.
IP Pascal is definitely designed to do just that
A. IP Pascal was designed to follow the original Pascal standard since 1980, following Niklaus Wirth's "The Pascal User Manual and report" [Jensen and Wirth] from 1974. In 1983, the ISO 7185 standard was released, and the minor changes to J&W Pascal were implemented in IP Pascal.
Unfortunately, none of the Borland products followed either the "User Manual and Report" nor the ISO 7185 Pascal standard, even though it preceeded Borland® implementations by a decade. Borland® products have a large user base, and we respect that, and hope to provide tools to convert user's Borland® compatible products to IP Pascal for interoperation.
For IP Pascal to have been compatible with Borland® products, considerable changes away from standard Pascal would have been required. Also, since there is no official published Borland® language standard, there would be no way to guarantee perfect compatibility with Borland® products. Finally, IP Pascal is directed at a long term standard implementation. Borland® products have traditionally been machine and operating system dependent. The different Borland® products, Turbo Pascal, Borland® Pascal, Borland® Windows Pascal, Delphi® and Kylix, are not completely compatible with each other, and would have been a moving target during the many years IP Pascal has been in operation.
ISO 7185 standard is the original language as created by N. Wirth, more precisely defined and more secure than the original. The standard makers refrained from making large improvements or extensions to the language. In fact, because Pascal is one of the most carefully designed languages and also one of the most carefully standardized, there is a high degree of ability to determine, unambiguously, if a given program construct is legal according to ISO 7185 rules.
Pascal, almost from the first of its use, was widely extended and changed. One reason for this may be that the language was also very popular in compiler classes, and tended to produce many experimental versions.
The original language, Pascal/1972 or J&W Pascal, has been around since 1972, standardized in 1982, and only minor changes were required to programs to bring them into compliance with it (see below). The basis of the language is still very strong, and the ISO 7185 standard is freely available. Further, there are many books written with the standard in mind.
A few Turbo Pascal "units" that aid program porting have been created, and these have shown to dramatically simplify porting from that language. Similar procedures will be used for other Pascals. However, these are just rapid porting aids, and these Pascals do not enjoy full language compatibility. There will always be a minimum amount of work required to change programs to work under IP. Further, porting using these units won't give you a program that takes advantage of the features of IP, and I consider it to be only a step in the process of fully porting a program to IP.
IPs main focus is to be a language that is not tied to any operating system or hardware, and IP will, therefore, always be unable to fully emulate the machine dependent features of many Pascal implementations. The failure of many Pascals that are single machine based has shown that the future lies in very portable Pascal languages and compilers.
A. IP is an interplatform Pascal. It supports the following platforms in its current configuration:
A port for Mac OS X is under way, and a port for Sun Solaris/Sparc is planned.
IP both provides, and itself is run, on a set of porting modules that allow IP, and its client programs, to run on any of the supported platforms without source change. To move within operating systems on the same machine type, only a relink is required. To move within different CPU based systems, a recompile and link is required.
There have been many implementations of Pascal, both those that follow and those that don't follow the ISO 7185 standard. For the most part, ISO 7185 was followed on large computer installations during the early days of Pascal (1973-1990), and some installations on microcomputers. The other dialect that became popular was the UCSD (University of California at San Diego) Pascal, followed by Borland's Turbo Pascal. Although there are virtually no current implementations of UCSD Pascal, Borland's products exist today for advanced IBM-PC compatibles under Borland's Delphi name.
When the IBM-PC became 32 bit with the introduction of the Intel 80386, virtually all of the 32 bit implementations of Pascal on the PC were ISO 7185 conforming. However, there was a large shakeout of compiler vendors in the early 1990's that removed many of these installations from the market.
In 1989, ISO 7185 was revised to correct various errors and ambiguities found in the original document. This resulted in ISO 7185:1990.
The original Pascal standard was an unofficial standard documented by the author, Niklaus Wirth, in "The Report". The first official standard was ISO 7185 issued in 1983. This was followed by the extended standard, ISO 10206, in 1990. Another standard was the Object-Oriented Extension to Pascal. However, this standard was never finished, and was basically abandoned for lack of interest.
Pascal is in the Algol family of languages. Algol, whose first version was called IAL or "International Algebraic Language", was the first language created by international committee. The resulting language was rather odd for its time. The committee had the goal of designing a unified computer language, but also saw Algol as a way to cleanly express computer algorithms, and so was not directly concerned with creating a practical language for compilation. That is, the language would serve a purpose even if it was only used for publishing algorithms, not running them.
This resulted in Algol not having many data types, or built in I/O. Also, Algol was generally free of the limits common to programming languages of that time, such as number of array dimensions. One of the goals of Algol was for it to be as close to mathematical notation as possible. In particular, Algol used a special operator for assignment, ':=', because '=' had a different meaning in mathematics.
Pascal is one of a series of languages put forth by one of the most prolific computer language creators, Niklaus Wirth, a professor at Institut fur informatik, ETH, Zurich, Switzerland. Professor Wirth participated in various versions of Algol, a language put forth by international cooperation that introduced the basic concepts of structured programming to the world. Wirth terms Pascal as a descendant of Algol 60 (for Algol, 1960 standard). The "official" descendant of Algol 60 was Algol 68, famous for having assignment as an expression operator (a basic feature of the later language C). Wirth felt that the design committee for Algol, after Algol 60, was losing focus and creating an unnecessarily complex language.
While Algol W has had it's fans, the language Pascal was considered to be a new high of consistent language design. The first draft of Pascal was created in 1968. The first compiler was operational in 1970, and the language was generally published in 1971. In 1973, after two years of testing and use, the language was revised into it's final form. That was detailed by "The Pascal User Manual and Report".
Pascal was named after the French mathematician Blaise Pascal, who created a calculating machine (not a true computer).