Free Pascal

Free Pascal (полное название Free Pascal Compiler, часто используется сокращение FPC) — свободно распространяемый компилятор языка программирования Object Pascal.
Содержание

Платформы

Компилятор существует для различных аппаратных и программных платформ, ветвь 2.4.x поддерживает следующие:

Архитектура ARM
    Game Boy Advance
    Nintendo DS
    Linux
    Windows CE (только кросс-компиляция с использованием версии для Windows x86)
    Android
Архитектура Intel/i386
    DOS (с использованием Go32v2)
    FreeBSD
    Linux
    Mac OS X (and cross-compilers for PowerPC(64)/Mac OS X, iOS & iPhoneSimulator, JVM/Java and JVM/Android).
    Haiku
    OS/2 (and eComStation)
    Solaris
    Microsoft Windows 32-bit (and a cross-compiler ARM/MIPS/i386-Android)
    Android
Архитектура PowerPC
    AIX
    Linux
    Mac OS X
    Nintendo Wii
Архитектура PowerPC64
    AIX
    Linux
    Mac OS X
Архитектура SPARC
    Linux
    Solaris
Архитектура AMD64/Intel 64/x86_64
    FreeBSD
    Solaris
    Linux
    Windows 64-bit
Архитектура i8086
    MS-DOS
Архитектура MIPS
    Android
    Linux
Архитектура MIPSEL
    Linux (Experimental, not tested)

Более ранние версии также поддерживали архитектуру m68k (операционные системы NetBSD, Linux и AmigaOS), а также операционные системы Solaris, QNX и BeOS для x86.

В разработке — поддержка создания кода для Java Virtual Machine[4].
Библиотеки и оболочки

В настоящее время в рамках проекта также разрабатывается Lazarus — свободный аналог среды разработки Delphi и Lazarus Components Library (LCL) — свободная библиотека виджетов, аналогичная VCL в Delphi.

Существуют и альтернативные проекты визуального программирования на базе Free Pascal, наиболее зрелым из которых является MSEide, использующий собственную, несовместимую с VCL библиотеку компонентов MSEgui.

Альтернатива Lazarus’u fpGUI — простая библиотека виджетов, не содержащая дополнительных библиотек вроде работы с БД, XML и тому подобным. В её состав включён визуальный редактор форм, генерирующий исходный код создания формы на паскале.

Кроме того, в настоящее время для создания Windows-приложений можно использовать известную невизуальную библиотеку KOL.
Режимы совместимости

Важной особенностью данного компилятора, в отличие, например, от GNU Pascal, является ориентация на распространённые коммерческие диалекты языка: Object Pascal и Delphi.

Free Pascal поддерживает компиляцию в нескольких режимах, обеспечивающих совместимость с различными диалектами и реализациями языка.

Режим FPC — собственный диалект: соответствует предыдущему, расширенному дополнительными возможностями, такими как, например, перегрузка операций.
Режим ObjFPC — совмещает объектно-ориентированные возможности Delphi и собственные расширения языка.
Режим Delphi — данный режим предоставлен для совместимости с компилятором Delphi от компании Embarcadero с целью упрощения портирования существующих исходных файлов на Free Pascal. Для этого вам необходимо включить этот режим директивой ${mode Delphi} в исходном файле или с помощью опции -Mdelphi в командной строке компилятора.
Режим TP/BP — Этот режим обеспечивает максимальную совместимость с компиляторами Turbo Pascal / Borland Pascal , чтобы упростить перенос существующего кода на FPC. Он использует возможности, которые не рассматриваются в качестве рекомендуемых, несколько изменяя правила синтаксиса. В случае необходимости, он вносит изменения в стандартный режим ассемблера $ASMMODE INTEL и т.п. Для этого вам необходимо включить этот режим директивой ${mode TP} в исходном файле или с помощью опции -Mtp в командной строке компилятора.
Режим MacPas — режим совместимости с Mac Pascal.
Режим ISO 7185
Режим ExPas
Режим GPas — был режимом компилятора, с помощью которого Free Pascal пытался компилировать только допустимый код GNU Pascal. Данный режим удален из компилятора Free Pascal начиная с версии 2.2.

Особенности

Поддержка перегрузки арифметических операторов (+, -, *, **, /, div, mod), операторов сравнения (<, >, =, >=, <=) и оператора присваивания :=.
Поддержка операторов присваивания с выполнением арифметической операции в стиле Си (+=, -=, *=, /=).
Наличие собственной системы сборки (fpcmake) и генератора документации (fpcdoc).
Встроенный ассемблер по умолчанию использует синтаксис AT&T, синтаксис Intel включается отдельной директивой.

Поделитесь своим мнением или задайте вопрос