<<

Free Pascal

An Open Source, Cross Platform,

By PascalDragon (DECT 3723), Leipzig, 36C3 History

● Started by Florian Klämpfl on 8th June 1993

● Written in for GO32v1 DOS Extender – 16-bit application generating 32-bit code ● 1995: ability to compile itself → FPC became a 32-bit program

● Port to other OSes (, OS/2) and CPUs (Motorola 68000)

● 2005: first Open Source compiler for Win64 (thanks to internal assembler and ) Open Source

● Compiler and tools licensed as GPLv2 (or newer)

● RTL and code licensed as LGPLv2 with static linking exception – Allows closed source applications to statically link against RTL and code library Cross Platform

● Various processor architectures supported – (16/32/64-bit) – ARM (32/64-bit) – PowerPC (32/64-bit) – M68k – RISC V (32/64-bit) – AVR (8-bit) ● Others: JVM (including Android), WebAssembly (in development)

● Special: Pascal → JavaScript transpiler pas2js Cross Platform

● Various Operating Systems supported – Windows (32 & 64-bit), Windows CE, Windows 3.11 – Unix-like: Linux, Mac OS X / macOS, Free-/Open-/Net-/DragonFlyBSD – Amiga-like: Amiga 3.x (M68k), Amiga 4.x (PPC), MorphOS, AROS – Others: OS/2, DOS (with and without extender), Atari ST, MacOS Classic, GameBoy Advance, Nintendo DS, Nintendo Wii, (Nintendo Switch) ● Barebone Hardware (e.g. AVR, ARM) Object Pascal

● Multiple Pascal dialects through “Mode” concept: – Selectable per compilation unit – Existing dialects: TP, , MacPascal, ISO, ExtendedPascal – Custom dialects: FPC, ObjFPC ● Supports namespace/module-like concept through “Unit”

● Object Oriented Programming – Virtual methods, Interfaces, Class Metatype ● Extensive RunTime Type Information

● Support for generics Give it a try

● Check current release (3.0.4) at https://www.freepascal.org

● Use IDE (2.0.6) at https://www.lazarus-ide.org Thank you for your attention! “Running Cheetah” from https://www.freepascal.org/pic/running_cheetah_dan_gerh_01.svg licensed as Public Domain ( http://web.resource.org/cc/PublicDomain )