Free Pascal
Free Pascal | |||
---|---|---|---|
| |||
Тип | компилятор | ||
Автор | Free Pascal team | ||
Разработчики | Флориан Клэмпфль и другие участники проекта | ||
Написана на | Object Pascal и язык ассемблера | ||
Операционные системы | Linux, macOS и др. UNIX-подобные, Windows, DOS, OS/2, Novell Netware, Android, AmigaOS, AmigaOS 4, AROS, MorphOS | ||
Первый выпуск | 1997 | ||
Аппаратные платформы | x86/64, SPARC, m68k, PowerPC/64, ARM | ||
Последняя версия | |||
Репозиторий | gitlab.com/freepascal.org | ||
| |||
| |||
Состояние | активное | ||
Лицензия | GNU GPL 2[2] | ||
Сайт | freepascal.org | ||
Медиафайлы на Викискладе |
Free Pascal (полное название Free Pascal Compiler, часто используется сокращение FPC) — свободно распространяемый компилятор языка программирования Object Pascal.
Платформы
Компилятор существует для различных аппаратных и программных платформ, ветвь 3.0.x поддерживает следующие:
- Архитектура ARM
- Game Boy Advance
- Nintendo DS
- Linux
- Windows CE (только кросс-компиляция с использованием версии для Windows x86)
- AROS[3][4]
- Android
- Архитектура i8086
- Архитектура Intel/i386
- Архитектура AMD64/Intel 64/x86_64
Более ранние версии также поддерживали архитектуру m68k (операционные системы NetBSD, Linux и AmigaOS), а также операционные системы Solaris, QNX и BeOS для x86.
В разработке — поддержка создания кода для Java Virtual Machine[15].
Библиотеки и оболочки
В настоящее время в рамках проекта также разрабатывается 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[16]
- 28 ноября 2017 года — выход версии 3.0.4[17]
- 19 июня 2020 года — выход версии 3.2.0[18]
Лицензия
Компилятор распространяется на условиях GNU General Public License, а значительная часть библиотек, в том числе ядро RTL — на условиях более мягкой GNU Lesser General Public License.
См. также
Примечания
- ↑ https://forum.lazarus.freepascal.org/index.php/topic,54712.0.html
- ↑ http://svn.freepascal.org/svn/fpc/trunk/compiler/COPYING.txt
- ↑ FPC from trunk for arm-aros . Дата обращения: 12 января 2021. Архивировано 14 января 2021 года.
- ↑ FreePascal 3.2.0 for arm AROS ABIv0 . Дата обращения: 12 января 2021. Архивировано из оригинала 16 апреля 2021 года.
- ↑ Stable FPC 3.0.1 for i386-aros . Дата обращения: 12 января 2021. Архивировано 14 января 2021 года.
- ↑ FreePascal 3.2.0 for i386 AROS ABIv0 . Дата обращения: 12 января 2021. Архивировано из оригинала 16 апреля 2021 года.
- ↑ FPC from trunk for x86_64-aros . Дата обращения: 12 января 2021. Архивировано 14 января 2021 года.
- ↑ FreePascal 3.2.0a for AmigaOS 3.x . Дата обращения: 12 января 2021. Архивировано из оригинала 14 января 2021 года.
- ↑ FPC Amiga/AROS m68k . Дата обращения: 12 января 2021. Архивировано 14 января 2021 года.
- ↑ FPC AmigaOS 4 . Дата обращения: 12 января 2021. Архивировано 14 января 2021 года.
- ↑ Free Pascal 3.2.0 for AmigaOS4 . Дата обращения: 8 мая 2022. Архивировано 17 апреля 2021 года.
- ↑ FreePascal 3.2.0a for AmigaOS 4.x . Дата обращения: 12 января 2021. Архивировано из оригинала 16 апреля 2021 года.
- ↑ FPC MorphOS . Дата обращения: 12 января 2021. Архивировано 13 января 2021 года.
- ↑ FreePascal 3.2.0 for MorphOS . Дата обращения: 12 января 2021. Архивировано из оригинала 16 апреля 2021 года.
- ↑ FPC JVM . Дата обращения: 4 декабря 2011. Архивировано 4 февраля 2012 года.
- ↑ Free Pascal — News . Дата обращения: 25 июня 2017. Архивировано из оригинала 20 июля 2017 года.
- ↑ Free Pascal — News . Дата обращения: 25 июня 2017. Архивировано из оригинала 20 июля 2017 года.
- ↑ FPC 3.2.0 Released ! forum.lazarus.freepascal.org. Дата обращения: 1 августа 2020. Архивировано 20 июля 2017 года.
Литература
- Алексеев Е. Р., Чеснокова О. В., Кучер Т. В. Free Pascal и Lazarus: Учебник по программированию. — М.: Альт Линукс, ДМК Пресс, 2010. — 438 с. — ISBN 978-5-94074-611-9.
- Статьи по Freepascal . Дата обращения: 4 декабря 2011.
- Книги по Freepascal . Дата обращения: 4 декабря 2011.