Free Pascal Language Guide

Free Pascal is a strongly typed compiled language supporting both functional and object oriented programming. It is based on two primary precursors, Turbo Pascal and Delphi for Microsoft DOS and Windows respectively. Free Pascal extends these languages as a free open source community project by adding support to most all other widely recognized platforms and operating systems. Benefits of Free Pascal include easy code readability, fast compilation speeds, and the modular programming with unit files and packages.
The Free Pascal community has extended the these benefits with the production and distribution of a free open source multi-platform integrated development environment (IDE) known as Lazarus. Inheriting features such as properties, events and run-time type information (RTTI) from Delphi, Free Pascal supports defining component frameworks and a rapid application design (RAD) environment. These language features allow for the creation of the live two way components and visual designers that pervade the Lazarus IDE.
If you intend to work through the examples presented in this guide, or desire to follow along with a hands on approach to learning Free Pascal, we strongly recommend that you use one of our setup bundles to get started. The setup programs will install both Free Pascal and Lazarus on your system and they are specifically designed to not interfere with any other development tools you many already have on your computer.

Styling Conventions

Style conventions in all guides are organized as follows. Inline snippets of Pascal source code are presented in a white box with a monospaced font like so:
S := 'Hello World';

Blocks or multiple lines of Pascal code are presented in monospaced font using syntax highlighting and lines numbers like so:
program Hello;

  WriteLn('Hello World');
Terminal output, which can be interpreted as program output, is presented using a gray area with a bold white monospaced font like so:
pascaluser:~/examples$ ./Hello
Hello World


The following topics are covered in this guide: