Free Pascal

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Free Pascal
Логотип программы Free Pascal
Скриншот программы Free PascalFree Pascal, на рабочем столе Workbench 1.3
Автор Free Pascal team
Разработчик Флориан Клэмпфль и другие участники проекта
Разработчики Флориан Клэмпфль и другие участники проекта
Написана на Object Pascal и язык ассемблера
Операционная система Linux, Mac OS X и др. UNIX-подобные, Windows, DOS, OS/2, Novell Netware, Android, AmigaOS, AmigaOS 4, AROS, MorphOS
Аппаратная платформа x86/64, SPARC, m68k, PowerPC/64, ARM
Состояние активное
Ссылки
Сайт freepascal.org
Среда разработки FreePascal для Windows

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

Платформы

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

  • Архитектура MIPSEL
    • Linux (Экспериментальная поддержка, не тестирован)

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

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

Библиотеки и оболочки

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

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

Альтернатива Lazarus’у 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, **), операторов сравнения (<, >, =, >=, <=), логических операторов (and, or, xor, not, shl, shr), операторов над множествами (><, in) и оператора присваивания :=.
  • Поддержка операторов присваивания с выполнением арифметической операции в стиле Си (+=, -=, *=, /=).
  • Наличие собственной системы сборки (fpcmake) и генератора документации (fpcdoc).
  • Встроенный ассемблер по умолчанию использует синтаксис AT&T, синтаксис Intel включается отдельной директивой.

Краткая история

  • 1993 год — начало работы над проектом.
  • 1995 год — компилятор успешно компилирует сам себя.
  • 1996 год — проект опубликован в интернете под лицензией GNU GPL.
  • 12 июля 2000 года — выход версии 1.0.
  • 2003 год — выход версии 1.0.10, завершение работы над ветвью 1.0.x.
  • 15 мая 2005 года — выход версии 2.0.
  • 10 сентября 2007 года — выход версии 2.2.
  • 30 декабря 2009 года — выход версии 2.4.
  • 12 ноября 2010 года — выход версии 2.4.2.
  • 20 мая 2011 года — выход версии 2.4.4
  • 1 января 2012 года — выход версии 2.6.0
  • 23 февраля 2013 года — выход версии 2.6.2
  • 11 марта 2014 года — выход версии 2.6.4
  • 25 ноября 2015 года — выход версии 3.0.0
  • 15 февраля 2017 года — выход версии 3.0.2[14]
  • 28 ноября 2017 года — выход версии 3.0.4[15]
  • 19 июня 2020 года — выход версии 3.2.0[16]

Лицензия

Компилятор распространяется на условиях GNU General Public License, а значительная часть библиотек, в том числе ядро RTL — на условиях более мягкой GNU Lesser General Public License.

См. также

Примечания

  1. FPC from trunk for arm-aros. Дата обращения: 12 января 2021. Архивировано 14 января 2021 года.
  2. FreePascal 3.2.0 for arm AROS ABIv0 (недоступная ссылка). Дата обращения: 12 января 2021. Архивировано 16 апреля 2021 года.
  3. Stable FPC 3.0.1 for i386-aros. Дата обращения: 12 января 2021. Архивировано 14 января 2021 года.
  4. FreePascal 3.2.0 for i386 AROS ABIv0 (недоступная ссылка). Дата обращения: 12 января 2021. Архивировано 16 апреля 2021 года.
  5. FPC from trunk for x86_64-aros. Дата обращения: 12 января 2021. Архивировано 14 января 2021 года.
  6. FreePascal 3.2.0a for AmigaOS 3.x (недоступная ссылка). Дата обращения: 12 января 2021. Архивировано 14 января 2021 года.
  7. FPC Amiga/AROS m68k. Дата обращения: 12 января 2021. Архивировано 14 января 2021 года.
  8. FPC AmigaOS 4. Дата обращения: 12 января 2021. Архивировано 14 января 2021 года.
  9. Free Pascal 3.2.0 for AmigaOS4. Дата обращения: 8 мая 2022. Архивировано 17 апреля 2021 года.
  10. FreePascal 3.2.0a for AmigaOS 4.x (недоступная ссылка). Дата обращения: 12 января 2021. Архивировано 16 апреля 2021 года.
  11. FPC MorphOS. Дата обращения: 12 января 2021. Архивировано 13 января 2021 года.
  12. FreePascal 3.2.0 for MorphOS (недоступная ссылка). Дата обращения: 12 января 2021. Архивировано 16 апреля 2021 года.
  13. FPC JVM. Дата обращения: 4 декабря 2011. Архивировано 4 февраля 2012 года.
  14. Free Pascal — News (недоступная ссылка). Дата обращения: 25 июня 2017. Архивировано 20 июля 2017 года.
  15. Free Pascal — News (недоступная ссылка). Дата обращения: 25 июня 2017. Архивировано 20 июля 2017 года.
  16. FPC 3.2.0 Released !. forum.lazarus.freepascal.org. Дата обращения: 1 августа 2020. Архивировано 20 июля 2017 года.

Литература

Ссылки