Object Pascal was created in 1985
by
Apple computer in cooperation with
Niklaus Wirth.
Apple released their Object Pascal in 1986, and
Borland Turbo Pascal
5.5 with objects was not relaesed until 1989.
Delphi wasn't released
until 1995, ten years after the creation of Object Pascal.
Some deluded critics do not even consider Delphi to be a real programming language,
as it is a
RAD system or visual programming language,
hiding most of pascal under menus.
Borland also isn't the only company producing a pascal compiler.
Other compilers include Compaq Pascal, Prospero Pascal, THINK pascal (Mac),
Metrowerks CodeWarrior, and several free pascal compilers.
Unfortunately, since Object Pascal was never standardized, each of these
implements fixes to pascal's flaws (enumerated by
Kernighan)
in different ways.
Timeline:
1974 Pascal: User Manual and Report by Niklaus Wirth and Kahtleen Jensen<
br>
1977 pascal standardizing started
1979 ISO committee formed
1980 extended pascal committee formed
1981 Why Pascal is not my Favorite Language by Kernighan
1983 Unextended pascal: published ANSI/IEEE770X3.97-1983 / ISO 7185
1983 extended pascal: 12 candidate extensions published
1985 Object Pascal: Apple worked on (released in 86)
1986 extended pascal draft
1989 unextended pascal ISO vs. ANSI issues resolved
1989 Turbo Pascal 5.5 with Objects
1989 extended pascal standard
1991 extended pascal final standard
1992 (last version) Turbo Pascal 7
1995 Delphi
brief summary of differences:
- 1983 ISO 7185 unextended pascal (included goto)
- ANSI/IEEE770X3.97-1983
- ISO 7185 : 1983 (added conformant array)
- differences resolved 1989
- ISO 7185 : 1990 final standard
- 1989 ISO 10206 extended pascal (final 1991)
ANSI/IEEE 770X3.160-1989.
- import and external linkage
- short circuit or_else and_then
- otherwise/case,
- value initalized data,
- shemata: type families
- string types: unify fixed and variable strings
- constant expressions
- functions may return structures
- object pascal -- no official standard ever released
- 1993 draft report
- extension of type system
- syntax
- type coercion
Here's a few features and how each compiler implemented them.
This information was extremely difficult to find without having the manuals,
so if you know more detail, please let me know so I can add it!
(x indicates it is implemented as shown in the first column.)
compaq codewarrior turbo delphi Sun Workshop Pascal
otherwise ? ? else else x
return x x ? x x
continue,break x cycle,leave x x next,exit
type casting :: mytype(myvar) ? mytype(myvar) ?
If you can help fill in the ?'s above, please /msg me!!
Sources:
http://www.pascal-central.com/ppl/index.html
http://pascal-central.com/ooe-stds.html (1993 draft report)
http://www.pascal-central.com/extpascal.html
timeline partly from http://www.pascal-central.com/extpascal.html