Generated by GPT-5-mini| Free Pascal | |
|---|---|
| Name | Free Pascal |
| Paradigm | Imperative programming, Structured programming, Object-oriented programming |
| Designer | Wolfram Gloger |
| Developer | Free Pascal team |
| First appeared | 1993 |
| Latest release | 3.2.2 |
| Typing | Static typing, Strong typing |
| License | GNU General Public License |
| Influences | Pascal (programming language), Turbo Pascal, Delphi (software), Modula-2 |
| Influenced | Lazarus (IDE), Oxygene (programming language) |
Free Pascal is a free and open-source native-code compiler implementing the Pascal (programming language) and extensions compatible with Turbo Pascal and Delphi (software). It provides a modern compiler toolchain used in systems programming, application development, and education, maintained by a community of contributors and corporate users. The project emphasizes cross-platform support, language compatibility, and performance comparable to proprietary compilers.
The project began in 1993 when Wolfram Gloger and other contributors sought to create a portable compiler supporting Turbo Pascal features and later Borland Delphi compatibility. During the 1990s and 2000s the development intersected with efforts from users of MS-DOS, Microsoft Windows, Linux, FreeBSD, and NetBSD platforms, and engaged with communities around Borland International and Inprise Corporation. The emergence of Delphi (software) versions in the mid-1990s and early 2000s drove compatibility work; interactions involved reverse-engineering aspects influenced by releases from Borland and later Embarcadero Technologies. The project adapted to shifts such as the rise of Linux distributions like Debian and Ubuntu and to the proliferation of ARM architecture and x86-64 systems. Over time notable contributors from open-source ecosystems and independent developers expanded support for platforms including macOS, Solaris, and embedded targets informed by ARM Ltd. and RISC-V communities.
The compiler supports the original Pascal (programming language), Turbo Pascal, and many Delphi (software) language constructs including object-oriented programming features derived from Delphi (software). It implements generics, operator overloading, advanced record methods, and modern exception handling mechanisms paralleling features introduced by Borland International. Compatibility includes language extensions for interfacing with C libraries, runtime type information used in Delphi (software), and platform-specific calling conventions seen on Microsoft Windows and POSIX systems. The compiler offers optimizations like inline expansion, register allocation strategies akin to those in GCC, and link-time improvements similar to LLVM-based toolchains. It provides extensive support for integer and floating-point types as standardized by IEEE 754, and supports multiple endianness models required by targets such as ARM and PowerPC.
The architecture uses a multi-pass compilation pipeline with separate frontends and backends; frontends parse syntaxes compatible with Turbo Pascal and Delphi (software), while backends generate code for multiple instruction sets. Backends include code generation for x86, x86-64, ARM, ARM64, PowerPC, MIPS, and RISC-V, enabling deployment across desktop, server, and embedded environments. The toolchain integrates with assemblers like GNU Assembler and linkers such as those from GNU Binutils and platform-specific linkers on Microsoft Windows and macOS. Cross-compilation capabilities target systems like FreeBSD, OpenBSD, NetBSD, Linux, Windows CE, and various embedded RTOSes influenced by FreeRTOS and VxWorks ecosystems. The compiler supports object file formats including ELF, PE, and Mach-O, and interoperates with C ABI conventions established by System V and Microsoft platforms.
Integration with development environments includes tight coupling with Lazarus (IDE), which offers a visual form designer, project management, and debugging support leveraging GDB on POSIX systems and native debuggers on Windows. The compiler is usable from command-line environments familiar to users of Unix-like shells and Windows Command Prompt, and integrates with build systems and continuous integration servers such as Jenkins (software), GitLab, and Travis CI. It supports package managers and deployment workflows used in Debian, FreeBSD Ports, and Homebrew, and can be combined with GUI toolkits like GTK+, Qt, and platform UI frameworks from Microsoft and Apple Inc.. Editors and IDEs with plugins include Visual Studio Code, Emacs, Vim, and JetBrains CLion through language server or tooling adapters.
The compiler is distributed under the GNU General Public License with exceptions for linking, permitting use in proprietary projects in many scenarios. Development is coordinated via mailing lists, issue trackers, and version control systems similar to those used by GNU Project and Debian contributors. The community comprises individual maintainers, academic users, and companies in embedded and desktop markets; collaboration occurs through forums, conferences, and events where participants often intersect with Open Source Initiative-aligned projects. Commercial entities have provided sponsorship, consultancy, and ecosystem tooling, while hobbyist communities maintain ports and libraries shared across repositories influenced by SourceForge and modern hosting on GitHub.
The compiler has been used in educational settings alongside curricula referencing Niklaus Wirth's original works and in projects targeting embedded systems for vendors who produce ARM-based devices and microcontrollers similar to products from STMicroelectronics and NXP Semiconductors. Notable application areas include desktop applications developed with Lazarus (IDE), cross-platform utilities for Linux distributions such as Debian packages, and specialized tools in fields involving GIS datasets interoperable with formats used by projects like GRASS GIS and QGIS. It has been employed in tooling for scientific computing where integrations with libraries from GNU Scientific Library and formats associated with HDF Group are relevant, and in legacy code maintenance for Delphi (software)-era applications migrated to modern platforms. Open-source projects leveraging the compiler include GUI applications, database front-ends connecting to SQLite, MySQL, and PostgreSQL, and emulators referencing CPU architectures like x86 and MIPS.
Category:Pascal compilers