Pascal is the most famous--and arguably the most influential--of the WirthLanguages. Its initial implementation was completed in 1970, on a CDC 6000-series mainframe at ETH in Zurich, Switzerland, and soon reported by NiklausWirth (1971a).
The Pascal source code, and a later p-kit, were widely distributed. Wirth (1971b) wrote that his new language, named after the mathematician BlaisePascal, was designed, in part, "[t]o gain more insight into the methods of organizing large programs and managing software projects." Just a few years later (1975), he had not gained much objectivity about its shortcomings. More than a decade later, Wirth (1982) insisted that Pascal was "designed as a general-purpose language", but it was widely used -- perhaps mostly used -- as a LanguageForTeaching in the 1980s (i.e., as a tool to introduce students to ImperativeProgramming).
Pascal was originally an ImperativeLanguage in which the source code for an entire program was expected to be contained in a single file, to allow StaticTyping (i.e.: CompileTime type-checking). That was sometimes too restrictive, because in Pascal as originally designed, array dimensions are part of an array's type. Thus, the language did not allow generalized array-handling or character-string-handling functions or procedures. Pascal does allow explicit storage allocation, via the predefined new procedure, and later its reverse by the dispose procedure.
Because of the proven usefulness of StaticTyping for avoiding run-time errors, programmers began increasingly to try to use Pascal for serious programming beyond what was supportable by a LanguageForTeaching. A ModularProgramming construct was very high on the list of extensions made to Wirth's Pascal to make it practical for teams of programmers to develop software in Pascal. The UcsdPascal unit was a very usable example of a modularity extension.
Later, several extensions for ObjectOrientedProgramming were developed.
See also:
You can find an out of date Pascal syntax description at http://www.csci.csusb.edu/dick/samples/pascal.syntax.html
This predates the last revision that added some object-oriented stuff.
One thing I loved about Pascal was sub-functions (sometimes called NestedFunctions). See LongFunctionHeresy. They simplified a lot of scope and function name collision issues.
One thing I love about Pascal is the order of declarations. It forces programmers to design before coding using a technique known as top-down design/bottom-up implementation. Code developed using bottom-up techniques is much easier to verify for correctness because it supports "unit testing," which is not supported very well by top-down implementation methods. Top-down coding requires one to perform "string testing" to verify correctness. String testing is both more labor intensive and less reliable.
This is the result of Pascal using a single-pass compiler.
{I found that feature annoying. I like the "main" stuff at the top and the details at the bottom. Just about every other writing technique puts the details toward the bottom, why change that?}