Home
Main website
Loading Sidebar...
Hide Ads
Recent Changes
View Source:
Pascal
Edit
PageHistory
Diff
Info
LikePages
You are viewing an old revision of this page.
View the current version
.
An ImperativeProgrammingLanguage 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 __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} (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 began teaching in Pascal, because it was a very good language to demonstrate structured programming in -- a new idea and as such 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'' BrianKernighan wrote this paper. In some places BrianKernighan 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 Pascal grammer has maps very nicely to a RecursiveDescentParser struture and for this reason in it the language of choice when writing a RecursiveDescentParser by hand. 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/] 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. It's educational to read just as an extended critique of a non-trivial program. ----- CategoryProgrammingLanguages, CategoryImperativeProgrammingLanguages, CategoryMachineOrientedProgrammingLanguages
14 pages link to
Pascal
:
MarcelVanDeSteeg
Acorn
TurboPascal
DonaldKnuth
Oberon
Algol
Function
C
Modula2
NicolasWirth
BASIC
WhyIHatePerl
AlgolWCompiler
WlugLibrary