Free Pascal

Free Pascal (повна назва Free Pascal Compiler, часто використовується скорочення FPC) - вільно поширюваний компілятор мови програмування Pascal.


1. Платформи

Компілятор існує для різних апаратних і програмних платформ, гілка 2.4.x підтримує наступні:

  • Архітектура x86
  • Архітектура x86-64
    • Linux
    • FreeBSD
    • Mac OS X
    • Windows (тільки крос-компіляція з використанням версії для Windows x86)
  • Архітектура SPARC
    • Linux
    • Solaris (експериментальна версія)
  • Архітектура PowerPC
    • Linux
    • Mac OS X
  • Архітектура PowerPC 64
    • Linux
    • Mac OS X
  • Архітектура ARM

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

У розробці підтримка створення коду для Java Virtual Machine [3]


2. Бібліотеки та оболонки

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

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

Інша альтернатива Lazarus'u fpGUI, проста бібліотека віджетів, не містить додаткових бібліотек зразок роботи з БД, XML і т. п. До її складу включено візуальний редактор форм, що генерує вихідний код створення форми на паскалі.

Крім того, в даний час для створення Windows-додатків можна використовувати відому Невізуальні бібліотеку KOL.


3. Режими сумісності

Важливою особливістю даного компілятора, на відміну, наприклад, від GNU Pascal, є орієнтація на поширені комерційні діалекти мови: Object Pascal і Delphi.

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

  • TP - режим сумісності з Turbo Pascal : сумісність практично повна, за винятком декількох моментів, пов'язаних з тим, що FPC компілює програми для захищеного режиму процесора, де неможливо пряме звернення до пам'яті, портів і т. д.
  • FPC - власний діалект: відповідає попередньому, розширеному додатковими можливостями, такими як, наприклад, перевантаження операцій.
  • DELPHI - режим сумісності з Borland Delphi: включає підтримку класів і інтерфейсів.
  • OBJFPC - поєднує об'єктно-орієнтовані можливості Delphi і власні розширення мови.
  • MACPAS - режим сумісності з Mac Pascal.

Free Pascal версій до 2.4 підтримував також режим часткової сумісності з GNU Pascal. В останніх версіях цього режиму немає, замість нього розвивається (але поки не включається в документацію) режим сумісності зі стандартом ISO Extended Pascal.


4. Особливості

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

5. Коротка історія

  • 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

6. Ліцензія

Компілятор поширюється на умовах GNU General Public License, а значна частина бібліотек, у тому числі ядро RTL - на умовах більш м'якої GNU Lesser General Public License.

Примітки

  1. Репозиторій Free Pascal. - sourceforge.net / projects / freepascal / files /
  2. [Fpc-pascal] 1.0.4 Solaris i386 port available - community.freepascal.org: 10000/lists/fpc-pascal/2001-January/000961
  3. FPC JVM - wiki.freepascal.org / index.php? title = FPC_JVM & oldid = 53643. Читальний - www.webcitation.org/65Bj2IwGD з першоджерела 4 лютого 2012.

Література