Free Pascal
| Free Pascal | |||
|---|---|---|---|
| | |||
| Free Pascal, запущенный в командной строке | |||
| Тип | компилятор | ||
| Автор | Free Pascal team | ||
| Разработчики | Флориан Клэмпфль и другие участники проекта | ||
| Написана на | Object Pascal, Паскаль[2] и язык ассемблера | ||
| Операционные системы | 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[3] | ||
| Сайт | 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[4][5]
- Android
- Архитектура i8086
- Архитектура Intel/i386
- Архитектура AMD64/Intel 64/x86_64
Более ранние версии также поддерживали архитектуру m68k (операционные системы NetBSD, Linux и AmigaOS), а также операционные системы Solaris, QNX и BeOS для x86.
В разработке — поддержка создания кода для Java Virtual Machine[16].
Библиотеки и оболочки
В настоящее время в рамках проекта также разрабатывается 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[17]
- 28 ноября 2017 года — выход версии 3.0.4[18]
- 19 июня 2020 года — выход версии 3.2.0[19]
Лицензия
Компилятор распространяется на условиях GNU General Public License, а значительная часть библиотек, в том числе ядро RTL — на условиях более мягкой GNU Lesser General Public License.
См. также
Примечания
- ↑ https://forum.lazarus.freepascal.org/index.php/topic,54712.0.html
- ↑ The freepascal Open Source Project on Open Hub: Languages Page — 2006.
- ↑ 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.
Ссылки
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.