Free Pascal Compiler (
FPC for short, and formerly known as
FPK Pascal) is a
freeFree software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
Pascal and
Object PascalObject Pascal refers to a branch of object-oriented derivatives of Pascal, mostly known as the primary programming language of Embarcadero Delphi.-Early history at Apple:...
compilerA compiler is a computer program that transforms source code written in a programming language into another computer language...
.
In addition to its own
Object PascalObject Pascal refers to a branch of object-oriented derivatives of Pascal, mostly known as the primary programming language of Embarcadero Delphi.-Early history at Apple:...
dialect, Free Pascal supports, to varying degrees, the dialects of several other compilers, including those of
Turbo PascalTurbo Pascal is a software development system that includes a compiler and an integrated development environment for the Pascal programming language running on CP/M, CP/M-86, and DOS, developed by Borland under Philippe Kahn's leadership...
, Delphi, and some historical
MacintoshThe Macintosh , or Mac, is a series of several lines of personal computers designed, developed, and marketed by Apple Inc. The first Macintosh was introduced by Apple's then-chairman Steve Jobs on January 24, 1984; it was the first commercially successful personal computer to feature a mouse and a...
compilers. Dialect is selected on a
per-unit (module)Modular programming is a software design technique that increases the extent to which software is composed of separate, interchangeable components called modules by breaking down program functions into modules, each of which accomplishes one function and contains everything necessary to accomplish...
basis, and more than one dialects can be used to produce a single program.
A member of the
write once, compile anywhereWrite once, compile anywhere refers to writing software that compiles, and is thus usable, on all platforms. As opposed to Sun's write once, run anywhere slogan, cross-platform compatibility is implemented at the source code level, rather than at the compiled binary code level.There are many...
campaign, Free Pascal is available for many architectures and
operating systemAn operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
s (see Targets). It has an excellent support for integration of
assembly languageAn assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...
, and supports internal assembler in a number of dialects.
Separate projects exist to facilitate the development of
cross-platformIn computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...
graphicalGui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...
applications, the most prominent one being the
LazarusLazarus is a free cross-platform IDE which provides a Delphi-like development experience for Pascal and Object Pascal developers. It is developed for, and supported by, the Free Pascal compiler. Since early 2008, Lazarus has been available for Microsoft Windows, several Linux distributions,...
IDEAn integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
.
Supported dialects
Free Pascal adopted the
de facto standard dialect of Pascal programmers,
BorlandBorland Software Corporation is a software company first headquartered in Scotts Valley, California, Cupertino, California and finally Austin, Texas. It is now a Micro Focus subsidiary. It was founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad and Philippe Kahn.-The 1980s:...
Pascal and, later, Delphi. From version 2.0 on, the Delphi 7 compatibility has been continuously implemented or improved.
In fact, the project has a
compilation mode concept, and the developers made it clear that they would incorporate working patches for the
ANSIAnsi is a village in Kaarma Parish, Saare County, on the island of Saaremaa, Estonia....
/ISO standardized dialects to create a standards-compliant mode.
A small effort has been made to support some of the Apple Pascal syntax, to ease interfacing to
Mac OSMac OS is a series of graphical user interface-based operating systems developed by Apple Inc. for their Macintosh line of computer systems. The Macintosh user experience is credited with popularizing the graphical user interface...
and
Mac OS XMac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
. Since the Apple dialect implements some Standard Pascal features that Turbo Pascal and Delphi omit, Free Pascal is a bit more ISO-compatible than these.
The 2.2.
x series does not significantly change the dialect objectives beyond Delphi 7, instead they aim for closer compatibility. The project still lacks the Delphi functionality of compiler-supported exporting of classes from shared libraries, which is for example useful for
LazarusLazarus is a free cross-platform IDE which provides a Delphi-like development experience for Pascal and Object Pascal developers. It is developed for, and supported by, the Free Pascal compiler. Since early 2008, Lazarus has been available for Microsoft Windows, several Linux distributions,...
, which implements packages of components.
in the current development branch several Delphi 2006-specific features have been added, and some of the starting work for the features new in Delphi 2009 (most notably the addition of the
UnicodeString type) has been done. The development branch also features an “Objective-Pascal” extension for
Objective-CObjective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it...
(
CocoaCocoa is Apple's native object-oriented application programming interface for the Mac OS X operating system and—along with the Cocoa Touch extension for gesture recognition and animation—for applications for the iOS operating system, used on Apple devices such as the iPhone, the iPod Touch, and...
) interfacing.
The current trunk (2.5.1) version implements basic ISO Pascal mode, though many things such as
Get and
Put procedure and file buffer variable concept for file handling are still missing.
The early years
Free Pascal emerged when
BorlandBorland Software Corporation is a software company first headquartered in Scotts Valley, California, Cupertino, California and finally Austin, Texas. It is now a Micro Focus subsidiary. It was founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad and Philippe Kahn.-The 1980s:...
made it clear that Borland Pascal development for MS-DOS would stop with version 7, to be replaced by a
WindowsMicrosoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
-only product (which became Delphi later on).
Student Florian Paul Klämpfl started developing his own compiler, written in the Turbo Pascal dialect, and produced
32-bitThe range of integer values that can be stored in 32 bits is 0 through 4,294,967,295. Hence, a processor with 32-bit memory addresses can directly access 4 GB of byte-addressable memory....
code for the go32v1
extenderA DOS extender is a computer software program which enables software to run under a protected mode environment even though the host operating system is only capable of operating in real mode....
, which was used and developed by the
DJGPP projectDJGPP is a development suite for 386+ IBM PC compatibles which supports DOS-enabled operating systems. It is guided by DJ Delorie, who began the project in 1989. It is a port of the popular GCC compiler, as well as mostly GNU utilities such as bash, find, tar, ls, awk, sed, and ld to DPMI...
at that time.
Originally, the compiler itself was a
16-bit-16-bit architecture:The HP BPC, introduced in 1975, was the world's first 16-bit microprocessor. Prominent 16-bit processors include the PDP-11, Intel 8086, Intel 80286 and the WDC 65C816. The Intel 8088 was program-compatible with the Intel 8086, and was 16-bit in that its registers were 16...
DOS executable compiled by
Turbo PascalTurbo Pascal is a software development system that includes a compiler and an integrated development environment for the Pascal programming language running on CP/M, CP/M-86, and DOS, developed by Borland under Philippe Kahn's leadership...
. After two years the compiler was able to
compile itselfIn computer science, bootstrapping is the process of writing a compiler in the target programming language which it is intended to compile...
, and became a 32-bit executable.
Expansion
The initial 32-bit compiler was published on the
InternetThe Internet is a global system of interconnected computer networks that use the standard Internet protocol suite to serve billions of users worldwide...
, and the first contributors joined the project. Later a
LinuxLinux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
port was made by Michael van Canneyt, five years before
KylixKylix was a compiler and integrated development environment formerly sold by Borland but later discontinued. It is a Linux version of the Borland Delphi software development environment and C++ Builder, which runs under Microsoft Windows. Continuing Delphi's classical Greek theme, Kylix is the name...
became available.
The DOS port was adapted for use in
OS/2OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. The name stands for "Operating System/2," because it was introduced as part of the same generation change release as IBM's "Personal System/2 " line of second-generation personal...
using the EMX extender which made OS/2 the second supported compilation target - apart from support of Florian Klämpfl as the original author, Daniël Mantione contributed significantly to make this happen and provide the original port of the run-time library to OS/2 / EMX. The compiler improved gradually, and the
MS-DOSMS-DOS is an operating system for x86-based personal computers. It was the most commonly used member of the DOS family of operating systems, and was the main operating system for IBM PC compatible personal computers during the 1980s to the mid 1990s, until it was gradually superseded by operating...
version migrated to the go32v2 extender. This culminated in release 0.99.5, which was much more widely used than previous versions, and was the last release aiming only for Turbo Pascal compliance—later releases added a Delphi compatibility mode. This release was also ported to systems using a 680x0 processor.
With release 0.99.8 the Win32 target was added, and a start was made with incorporating some Delphi features. Stabilizing for a non-beta release began, and version 1.0 was released in July 2000. The 1.0.
x series was widely used, both as an enterprise and educational tool. For the 1.0.
x releases, the port to 68k CPU was redone, and the compiler produced stable code for a number of 68k
UnixA Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....
and
AmigaOSAmigaOS is the default native operating system of the Amiga personal computer. It was developed first by Commodore International, and initially introduced in 1985 with the Amiga 1000...
operating systems.
The second generation
During the stabilization of what would become 1.0.
x, and specially when porting to the
MotorolaMotorola, Inc. was an American multinational telecommunications company based in Schaumburg, Illinois, which was eventually divided into two independent public companies, Motorola Mobility and Motorola Solutions on January 4, 2011, after losing $4.3 billion from 2007 to 2009...
68k systems, it was clear that the design of the code generator was far too limited in many ways. The principal problems were that adding processors basically meant rewriting the code generator, and that the register allocation was based on the principle of always keeping three free registers between building blocks, which was inflexible and hard to maintain.
For these reasons, the 1.1.
x branchedBranching, in revision control and software configuration management, is the duplication of an object under revision control so that modifications can happen in parallel along both branches....
from the 1.0.
x main branch in December 1999. At first, changes were mostly clean-ups and rewrite/design to all parts of the compiler, and then the code generator and register allocator were rewritten. As a bonus, remaining missing Delphi compatibility was added.
The work on 1.1.x continued slowly but steadily, and in late 2003 a working
PowerPCPowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
port became available, followed by an
ARMARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...
port in summer 2004, a
SPARCSPARC is a RISC instruction set architecture developed by Sun Microsystems and introduced in mid-1987....
port in fall 2004, and an AMD64 port—which made the compiler available for a 64-bit platform—in early 2004.
In November 2003 a first beta release of the 1.1.
x branch was packaged and numbered 1.9.0. These were quickly followed by versions 1.9.2 and 1.9.4; version 1.9.4 introduced Mac OS X support. The work continued with version 1.9.6 (January 2005), 1.9.8 (late February 2005), 2.0.0 (May 2005), 2.0.2 (December 2005), and 2.0.4 (August 2006).
Consolidation: the 2.2 series
In 2006 some of the major reworks planned for 2.2, such as the rewrite of the unit system, had not started, and it was decided to start stabilizing the already implemented features.
Some of the motivations for this
roadmapA plan is typically any diagram or list of steps with timing and resources, used to achieve an objective. See also strategy. It is commonly understood as a temporal set of intended actions, through which one expects to achieve a goal...
change were the needs of the
LazarusLazarus is a free cross-platform IDE which provides a Delphi-like development experience for Pascal and Object Pascal developers. It is developed for, and supported by, the Free Pascal compiler. Since early 2008, Lazarus has been available for Microsoft Windows, several Linux distributions,...
project, particularly the internal linker, support for Win64,
Windows CEMicrosoft Windows CE is an operating system developed by Microsoft for embedded systems. Windows CE is a distinct operating system and kernel, rather than a trimmed-down version of desktop Windows...
, and Mac OS X on x86, and related features like
DWARFDWARF is a widely used, standardized debugging data format. DWARF was originally designed along with Executable and Linkable Format , although it is independent of object file formats...
. After betas 2.1.2 and 2.1.4, version 2.2.0 was released in September 2007, followed by version 2.2.2 in August 2008 and version 2.2.4 in March 2009.
The 2.2.
x series vastly improved the
ActiveXActiveX is a framework for defining reusable software components in a programming language-independent way. Software applications can then be composed from one or more of these components in order to provide their functionality....
/
COMComponent Object Model is a binary-interface standard for software componentry introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in a large range of programming languages...
,
interfaceIn the field of computer science, an interface is a tool and concept that refers to a point of interaction between components, and is applicable at the level of both hardware and software...
, and
OLEObject Linking and Embedding is a technology developed by Microsoft that allows embedding and linking to documents and other objects. For developers, it brought OLE Control eXtension , a way to develop and use custom user interface elements...
support, though bugs are still being found. The delegation to interface using the
implements keyword is partially implemented, but was not complete . Library support for ActiveX was also improved.
Another major highlight was the internal linker for Win32, Win64, and Windows CE, which much improves linking time and memory use, and makes the compile-link-run cycle in Lazarus much faster. The efficiency for smart-linking, or dead code elimination, has also been improved.
Minor new features are improved DWARF (2/3) debug format support, and optimizations such as tail recursion, omission of unneeded stack frames and register-based
CSE optimizationIn computer science, common subexpression elimination is a compiler optimization that searches for instances of identical expressions , and analyses whether it is worthwhile replacing them with a single variable holding the computed value.- Example :In the following code: a = b * c + g; d = b * c...
. A first implementation of
genericsIn a broad definition, generic programming is a style of computer programming in which algorithms are written in terms of to-be-specified-later types that are then instantiated when needed for specific types provided as parameters...
support is also available, but only for exploration purposes.
The 2.4.x series
The 2.4.
x series had a less clear set of goals than earlier releases. The unit system rewrite was postponed again, and the branch that became 2.4 was created to keep risky commits from 2.2 to stabilize it. Mostly these risky commits were more involved improvements to the new platforms, Mac
PowerPCPowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
64, Mac
x86-64x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets. x86-64 also provides 64-bit general purpose registers and numerous other...
, iPhone, and many fixes to the ARM and x86-64 architectures in general, as well as
DWARFDWARF is a widely used, standardized debugging data format. DWARF was originally designed along with Executable and Linkable Format , although it is independent of object file formats...
.
Other compiler improvements included
whole program optimizationIn computer programming, whole program optimization is the compiler optimization of a program using information about all the modules in the program...
(WPO) and devirtualization and ARM EABI support.
Later, during the 2.2 cycle, a more Delphi-like resource support (based on special sections in the binary instead of Pascal constants) was added; this feature, direly needed by
LazarusLazarus is a free cross-platform IDE which provides a Delphi-like development experience for Pascal and Object Pascal developers. It is developed for, and supported by, the Free Pascal compiler. Since early 2008, Lazarus has been available for Microsoft Windows, several Linux distributions,...
, became the main highlight of the branch.
Other more minor points were a
memory managerIn IBM PC compatible computing, DOS memory management refers to software and techniques employed to give applications access to more than 640K of "conventional memory". The 640kB limit was specific to the IBM PC and close compatibles; other machines running MS-DOS had different limits, for example...
that improved heap manager performance in
threadedIn computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...
environments, small improvements in Delphi compatibility such as
OleVariant, and improvements in
interfaceIn the field of computer science, an interface is a tool and concept that refers to a point of interaction between components, and is applicable at the level of both hardware and software...
delegationIn object-oriented programming, there are two related notions of delegation.* Most commonly, it refers to a programming language feature making use of the method lookup rules for dispatching so-called self-calls as defined by Lieberman in his 1986 paper "Using Prototypical Objects to Implement...
.
Free Pascal 2.4.0 was released on January 1, 2010, followed by bug fix release 2.4.2 on November 13, 2010, containing support for
for..in loops, and
sealed and
abstract classes, and other changes.
Targets
| Architecture |
OS/Device |
Version 2.4.2 |
Version 2.4.0 |
Version 2.2.4 |
Version 2.0.x |
Version 1.0.x |
i386
| DOSDOS, short for "Disk Operating System", is an acronym for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows versions 95, 98, and Millennium Edition.Related... (GO32v2 extenderA DOS extender is a computer software program which enables software to run under a protected mode environment even though the host operating system is only capable of operating in real mode.... ) |
|
|
|
|
|
>-
| FreeBSDFreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...
(6.x and 7.x)
|
|
|
|
|
>-
| LinuxLinux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
|
|
|
|
|
>-
| Mac OS XMac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
|
|
|
|
|
>-
| OS/2OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. The name stands for "Operating System/2," because it was introduced as part of the same generation change release as IBM's "Personal System/2 " line of second-generation personal...
|
|
|
|
|
>-
| Windows
|
|
|
|
|
>-
| Windows CEMicrosoft Windows CE is an operating system developed by Microsoft for embedded systems. Windows CE is a distinct operating system and kernel, rather than a trimmed-down version of desktop Windows...
|
|
|
|
|
>-
| HaikuHaiku is a free and open source operating system compatible with BeOS. Its development began in 2001, and the operating system became self-hosting in 2008, with the first alpha release in September 2009, the second in May 2010 and the third in June 2011....
|
|
|
|
|
>-
| Netware
|
|
|
|
|
>-
| Solaris
|
|
|
|
|
>-
x86-64x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets. x86-64 also provides 64-bit general purpose registers and numerous other...
| FreeBSDFreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant... |
|
|
|
|
|
>-
| Linux
|
|
|
|
|
>-
| Mac OS X
|
|
|
|
|
>-
| Windows
|
|
|
|
|
>-
| Solaris
|
|
|
|
|
>-
ARMARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...
| iOS |
|
|
|
|
|
>-
| Game Boy AdvanceThe is a 32-bit handheld video game console developed, manufactured, and marketed by Nintendo. It is the successor to the Game Boy Color. It was released in Japan on March 21, 2001; in North America on June 11, 2001; in Australia and Europe on June 22, 2001; and in the People's Republic of China...
(GBA)
|
|
|
|
|
>-
| Nintendo DSThe is a portable game console produced by Nintendo, first released on November 21, 2004. A distinctive feature of the system is the presence of two separate LCD screens, the lower of which is a touchscreen, encompassed within a clamshell design, similar to the Game Boy Advance SP...
|
|
|
|
|
>-
| Linux
|
|
|
|
|
>-
| Windows CE
|
|
|
|
|
>-
PowerPCPowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
| Linux |
|
|
|
|
|
>-
| Mac OS X
|
|
|
|
|
>-
| Mac OS Classic
|
|
|
|
|
>-
| MorphOSMorphOS is an Amiga-compatible computer operating system. It is a mixed proprietary and open source OS produced for the Pegasos PowerPC processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale development boards that use the Genesi firmware, including the...
|
|
|
|
|
>-
PowerPC 64-bit
| Linux |
|
|
|
|
|
>-
| Mac OS X
|
|
|
|
|
>-
SPARCSPARC is a RISC instruction set architecture developed by Sun Microsystems and introduced in mid-1987....
| Solaris |
32bit only |
|
|
|
|
>-
| Linux
|
|
|
|
|
>-
As of version 3.0, Free Pascal will also support byte code generation for the
Java Virtual MachineA Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...
Integrated development environments (IDEs)
Like most modern compilers, Free Pascal can be used with an
integrated development environmentAn integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
(IDE).
Lazarus
LazarusLazarus is a free cross-platform IDE which provides a Delphi-like development experience for Pascal and Object Pascal developers. It is developed for, and supported by, the Free Pascal compiler. Since early 2008, Lazarus has been available for Microsoft Windows, several Linux distributions,...
is the most popular IDE used by Free Pascal programmers. It provides a Delphi-like development experience, and can be used to create
consoleA console application is a computer program designed to be used via a text-only computer interface, such as a text terminal, the command line interface of some operating systems or the text-based interface included with most Graphical User Interface operating systems, such as the Win32 console in...
and
graphicalIn computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
applications.
Lazarus provides a cross-platform user interface framework, called Lazarus Component Library (LCL). Graphical applications created with LCL can be ported to another platform
with a recompilationWrite once, compile anywhere refers to writing software that compiles, and is thus usable, on all platforms. As opposed to Sun's write once, run anywhere slogan, cross-platform compatibility is implemented at the source code level, rather than at the compiled binary code level.There are many...
.
MSEide
MSEide is another Free Pascal-based IDE that is . MSEgui, like LCL to Lazarus, is the class library that comes with MSEide. It communicates directly with X11 via
XlibXlib is an X Window System protocol client library written in the C programming language. It contains functions for interacting with an X server. These functions allow programmers to write programs without knowing the details of the protocol...
on
LinuxLinux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, and gdi32 under Windows, with support for
multiple document interfaceGraphical computer applications with a multiple document interface are those whose windows reside under a single parent window , as opposed to all windows being separate from each other . Such systems often allow child windows to embed other windows inside them as well, creating complex nested...
(MDI) and visual form
inheritanceIn object-oriented programming , inheritance is a way to reuse code of existing objects, establish a subtype from an existing object, or both, depending upon programming language support...
.
Software produced with Free Pascal
- Free Pascal itself is written in Object Pascal
Object Pascal refers to a branch of object-oriented derivatives of Pascal, mostly known as the primary programming language of Embarcadero Delphi.-Early history at Apple:...
and assembly languageAn assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...
, and compiled by itselfIn computer science, bootstrapping is the process of writing a compiler in the target programming language which it is intended to compile...
.
- Lazarus: Free Pascal’s affiliated Delphi-like software package for rapid development of graphical applications.
- Pixel image editor
Pixel Image Editor is an Image editor written by the Slovak programmer Pavel Kanzelsberger. It is written with Free Pascal.-Features:...
: a Photoshop-like image editor, arguably among the best-known software created with Free Pascal.
- SFS Technology: Linux technology to use portable stand-alone applications on various Linux distributions (such as Ubuntu
Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu...
).
- Peazip
PeaZip is a file manager and file archiver for Microsoft Windows and GNU/Linux. It supports its native PEA archive format and other mainstream formats, with special focus on handling open formats...
: an open source archiver.
- Morfik
Morfik Technology Pty Ltd., an Australian company, is the developer of Morfik, a set of visual designers, compilers and a Framework combined in an Integrated development environment aimed at developing Ajax applications in a high-level language such as Java, C#, BASIC or Object Pascal. Morfik...
: Morfik WebOS AppBuilder uses Free Pascal to produce the resulting CGI binaries.
- Northworld: Northworld, an AD&D based fantasy RPG written entirely in FreePascal. Utilizes colored extended ASCII in 80x50 textmode to simulate low res 2D topographical graphics providing a nostalgic early Ultimate style game experience.
- Hedgewars
Hedgewars is a turn-based free and open-source strategy game, artillery game, skill game. It is cross-platform and runs on FreeBSD, Linux, Mac OS X, Microsoft Windows, iOS, and Android. It features a single-player mission/tutorial mode, in addition to multi-team multiplayer gameplay...
: a Worms-like turn based strategy game.
- MRIcron: a medical image visualization and analysis package. The software provides tools for drawing volumes of interest and volume rendering. In addition, it includes non-parametric statistical mapping (NPM) and conversion of images from DICOM format to NIfTI format (dcm2nii). It is currently available for Windows (using WinAPI), Linux (GTK1, GTK2 or QT), and Mac OS X (Carbon or GTK1).
- Virtual Magnifying Glass: a simple and customizable free, open source, screen magnification tool for Windows, Linux and FreeBSD. It has been downloaded over 170.000 times over 5 years.
- Cactus Jukebox: an audio player with a database to organize music file collections, for Linux and Win32.
- Becape: an open source backup (and restore) tool for personal and desktop usage.Can create incremental backups; stores backups in a SQLite
SQLite is an ACID-compliant embedded relational database management system contained in a relatively small C programming library. The source code for SQLite is in the public domain and implements most of the SQL standard...
database.
- Master Maths: Software for computer based mathematics training. Developed with fpGUI Toolkit
fpGUI, the Free Pascal GUI toolkit, is a cross-platform graphical user interface toolkit developed by Graeme Geldenhuys. fpGUI is open source and free software, licensed under a Modified LGPL license...
, and makes use of Firebird RDBMS and tiOPF v2 for object persistence. Runs under Linux and Windows.
- OutKafe: next-generation free and open source cybercafe management suite. OutKafe is running hundreds of cybercafes around the world.
- CQRLOG: an advanced amateur radio logger based on the Firebird database. It provides radio control based on hamlib libraries (currently supports 140+ radio types and models), DX cluster connection, QRZ callbook (web version), a grayliner, ON6DP QSL manager database support and a country resolution algorithm based on country tables developed by OK1RR.
- Dedalu: a collection of small and simple projects (games, editors, utilities, etc.) developed with Lazarus
Lazarus is a free cross-platform IDE which provides a Delphi-like development experience for Pascal and Object Pascal developers. It is developed for, and supported by, the Free Pascal compiler. Since early 2008, Lazarus has been available for Microsoft Windows, several Linux distributions,...
and Free Pascal by Giuseppe Ridinò (a.k.a. Pepecito).
- TruckBites: USA-specific business management software for independent trucking operators.
- Mundo The Game: an in-progress open-source multi-platform 3D MMORPG
Massively multiplayer online role-playing game is a genre of role-playing video games in which a very large number of players interact with one another within a virtual game world....
.
- Arkadia.com: a real-estate website that uses Free Pascal to implement the 64-bit ISAPI module.
- EZlect: masking plug-in for Photoshop, written using Delphi for Windows, and Free Pascal for Mac OS X.
- WinFF: a GUI for the command line video converter, FFMPEG. It will convert almost any video file that FFmpeg can convert, and can handle multiple files in multiple formats at one time. WinFF is open source and cross platform, written in Free Pascal and Lazarus.
See also
- Morfik
Morfik Technology Pty Ltd., an Australian company, is the developer of Morfik, a set of visual designers, compilers and a Framework combined in an Integrated development environment aimed at developing Ajax applications in a high-level language such as Java, C#, BASIC or Object Pascal. Morfik...
: an RAD IDE for AjaxAjax is a group of interrelated web development methods used on the client-side to create asynchronous web applications...
-based Web applications that uses Free Pascal as the back-endFront end and back end are generalized terms that refer to the initial and the end stages of a process. The front end is responsible for collecting input in various forms from the user and processing it to conform to a specification the back end can use...
for server-side compiling.
- fpGUI Toolkit
fpGUI, the Free Pascal GUI toolkit, is a cross-platform graphical user interface toolkit developed by Graeme Geldenhuys. fpGUI is open source and free software, licensed under a Modified LGPL license...
: an Object Pascal toolkit for cross-platform application development developed with the Free Pascal compiler; custom-drawn to reduce library dependencies and simplify deployment. It provides single-source portability across Linux, MS Windows, *BSD and embedded devices such as those using Embedded Linux and Windows CE.
Official websites
General introduction
Development tools
- FPS Complete Win32 based IDE for FPC, including debugger (trace
A stack trace is a report of the active stack frames at a certain point in time during the execution of a program.It is commonly used during interactive and post-mortem debugging...
, breakpointIn software development, a breakpoint is an intentional stopping or pausing place in a program, put in place for debugging purposes. It is also sometimes simply referred to as a pause....
and watchIn software development, a breakpoint is an intentional stopping or pausing place in a program, put in place for debugging purposes. It is also sometimes simply referred to as a pause....
windows).
- DevPascal Win32 based IDE for FPC.
- MSEide+MSEgui - a RAD/Cross Platform GUI Development System for FPC.
- Morfik Win32 based IDE for build Ajax-based web applications that uses FPC for compiling back-end server side logic.
Sites specialized in game development