RogueBasin
Menu (Edit):
Contents:
  1. Pascal
    1. Language origins
    2. Main characteristics
    3. Implementations of Pascal
      1. VMS Pascal
      2. Turbo Pascal
      3. Delphi
      4. Free Pascal
    4. See also

Pascal


Pascal is a programming language used by several roguelikes. It was named for Blaise Pascal, a French mathematician.

Language origins


Niklaus Wirth completed development of the original Pascal programming language in 1970. Its design was based on Algol. There were two main reasons leading to birth of Pascal (quoting ISO-7185):

  • To make available a language suitable for teaching programming as a systematic discipline based on fundamental concepts clearly and naturally reflected by the language.
  • To define a language whose implementations could be both reliable and efficient on then-available computers.

Main characteristics


The language has evolved significantly since 1970 but basic elements have been kept throughout the years:

  • Easy to read though verbose syntax. Suitable for teaching.
  • Case insensitive.
  • Strongly typed.
  • Procedural, allows for nested procedures.
  • Input/output routines built-in.

More features are added by Object Pascal.

Implementations of Pascal


Implementations of Pascal used by roguelike games:

VMS Pascal

Used to code VMS Moria and variants thereof. Nowadays unused and only of interest for maintainers and people doing ports of lost variants.

Example games written in VMS Pascal: Moria, BOSS.

Turbo Pascal

It is dialect of Pascal produced by Borland that comes with integrated development environment. Since Borland turned to Delphi it is no longer maintained and has fallen into disuse.

Very few games remain not ported to more recent dialect of Pascal. One example is Deep.

Delphi

Delphi programming language is an object-oriented development of Pascal.

Kharne has been developed in Delphi until it was discontinued.

Free Pascal

Most often used Pascal implementation nowadays. It is mostly compatible with Turbo Pascal and Delphi.

See separate article: Free Pascal

See also