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.