Home
Main website
Display Sidebar
Hide Ads
Recent Changes
View Source:
Pascal
Edit
PageHistory
Diff
Info
LikePages
An imperative ProgrammingLanguage designed by NicolasWirth as a teaching language. Once very popular in schools before students started whining that they wanted to learn [C]. The ancestor of the language in [Borland]'s [Delphi] and [Kylix] [GUI] development environments, which added ObjectOrientation. !!! A Sample <verbatim> function plural (noun : string) : string; { Returns the plural version of a noun. } var i : integer; begin case noun[[length(noun)] of 's': if noun[[length(noun)-1] = 'e' then plural := noun else plural := noun + 'es'; 'y': begin delete(noun, length(noun), 1); plural := noun + 'ies'; end; else plural := noun + 's'; end; end; {plural} </verbatim> (This is in the TurboPascal dialect of Pascal.) !!! History Pascal became popular very quickly because the original compiler was designed to be very easy to [Port]. It was written in Pascal and compiled to [ByteCode]s, called ''P-Code''. All anyone had to do to get a Pascal compiler working on a new machine was to write the simple P-Code VirtualMachine for it -- they could hack the compiler around to generate proper MachineCode later. This meant that Pascal spread very quickly through the world's Universities. They soon began teaching in Pascal -- it was a very good language for demonstrating structured programming, a hot topic at the time. Standard Pascal was a nice language with terrible limitations: Pascal programs could not open files by name, could barely handle strings and could only pass arrays of predetermined sizes to functions. BrianKernighan famously described Pascal's problems in [Why Pascal is Not My Favorite Programming Language |http://www.lysator.liu.se/c/bwk-on-pascal.html]. (It has to be noted that NicolasWirth had already addressed most of Pascal's problems in his follow-up language [Modula2] ''before'' Kernighan wrote this paper, and in some places Kernighan seems to be just complaining that Pascal is not [C].) At any rate, these limitations meant that Pascal splintered into dialects as people hacked in missing features in incompatible ways. [C] did not have this problem, so it gradually took over from the Pascal dialects. !!! Implementations The most successful Pascal dialect has been Borland's TurboPascal. There are two OpenSource Pascal compilers for [Linux]: * [GNU Pascal | http://www.gnu-pascal.de/] * [Free Pascal | http://www.freepascal.org/]. __Note__ this is written in Pascal, so you need an existing Free Pascal binary to build the source! Free Pascal tends more towards TurboPascal compatibility. The online book [Pascal Implementation: A Book and Sources | http://www.cwi.nl/~steven/pascal/] walks you through the source code to the original Pascal compiler (implemented in Pascal as a RecursiveDescentParser). It's educational to read just as an extended critique of a non-trivial program. ----- Part of CategoryProgrammingLanguages, CategoryImperativeProgrammingLanguages, CategoryMachineOrientedProgrammingLanguages
14 pages link to
Pascal
:
MarcelVanDeSteeg
Acorn
TurboPascal
DonaldKnuth
Oberon
Algol
Function
C
Modula2
NicolasWirth
BASIC
WhyIHatePerl
AlgolWCompiler
WlugLibrary