{{language|Pascal |strength=strong |safety=safe |express=explicit |checking=static |parampass=both |gc=no |LCT=yes |bnf=}} {{language programming paradigm|Imperative}} '''Pascal''' is an [[imperative programming|imperative]] computer programming language, developed in 1970 by [[wp:Niklaus Wirth|Niklaus Wirth]] as a language particularly suitable for [[wp:structured programming|structured programming]]. A derivative known as [[:Category:Object Pascal|Object Pascal]] was designed for [[object-oriented]] programming. Pascal can be used very easily in conjunction with fundamental [[wp:discrete mathematics|discrete mathematics]] as sets are built into the language.

There are actually several varieties of Pascal. The most important ones are:

  • Standard Pascal ([[ISO]] 7185) is the original Pascal standard. However, there are many features missing from that language version, which has led to a wide variety of nonstandard extensions. On the other hand, there are features of Standard Pascal which are seldom implemented by Pascal compilers. A compiler which implements all features of Standard Pascal is [[GNU Pascal]].
  • Extended Pascal (ISO 10206) is a later Pascal standard which adds a lot to the original Pascal standard. However, compilers implementing Extended Pascal are even more rare than those implementing Standard Pascal. GNU Pascal implements most of Extended Pascal as well.
  • [[Turbo Pascal]] was a very successful Pascal implementation for [[DOS]] and 16 bit [[Windows]] (the latest version was sold under the name "Borland Pascal 7.0") and became the de-facto standard for Pascal on DOS. Even today many Pascal compilers provide compatibility to Turbo Pascal.
  • [[Object Pascal]] is the Pascal dialect used in [[Delphi]], Borland's successor product to Turbo/Borland Pascal. It extends Pascal with a new object model (in addition to the object model introduced in Turbo Pascal 5.5). This language is also implemented by [[Free Pascal]] and [[Lazarus]].

==Grammar== The [[wp:ISO 7185|ISO 7185]] standard for Pascal uses [[wp:Extended Backus–Naur Form|Extended Backus–Naur Form]]. Also [[wp:Van Wijngaarden grammar|Van Wijngaarden's grammar]] can be used to define [[Pascal]]'s grammar[]. ==See also==

  • [[wp:Pascal (programming language)|Pascal on Wikipedia]]