Free Pascal (или FPK Pascal) е 32-битов и 64-битов компилатор за Pascal.
Free Pascal е 32/64-битов мултиплатформен (поддържащ както различни операционни системи, така и различни процесорни архитектури) компилатор. Компилаторът реализира диалектите на Borland (Turbo Pascal и Delphi) и е достъпен за най-често срещаните операционни системи.
Free Pascal първоначално се е казвал FPK Pascal, тъй като FPK са инициалите на автора Florian Paul Klämpfl. Въпреки популярното мнение, FPK Pascal не означава „Free Pascal Kompiler“, най-малкото поради факта, че „Compiler“ на немски не съдържа "k". В края на 1997 името на проекта е променено на Free Pascal Compiler (FPC).
3.2.2 е последната стабилна версия на Free Pascal.
FPC е доста добре документиран свободен софтуер, с документация от около 1800 страници.
Free Pascal се разпространява със среда за разработка, работеща в текстов режим. Тя наподобява тази на Turbo Pascal.
Отделно е създаден проект, който дава възможност за визуално програмиране на FPC, наречен Lazarus. Интерфейсът му наподобява този в Borland Delphi, а бибилиотеката с визуални компоненти LCL съдържа аналози на голяма част от функциите и компонентите, намиращи се във VCL.
FPC се придържа към реалността и реализира де факто стандартните диалекти на Pascal: диалектите на Borland. (По-точно: Borland Pascal 7 и Delphi 2 за версия 1.0.x и Delphi 6/7 за 2.0.x).
Въпреки това обаче проектът има концепция за режим на компилиране и разработчиците са дали ясен знак че няма да отхвърлят работещи patch-ове, които добавят режим на компилиране съвместим с Ansi/ISO стандарта.
Също така известни усилия са положени и за поддръжка на част от синтаксиса на Apple-ския Pascal за да се улесни интерфейса към Mac OS (X).
Следната функционалност от Delphi все още липсва във Free Pascal:
Компилаторът FreePascal се съпровожда от богат набор библиотеки и солидна документация.
Библиотеките за UNIX среда дават възможност за комуникация с различни мрежови услуги и бази данни, както и за директен достъп до ядрото. Това прави FPC удобен за изграждане на големи приложения. FPC през последните години стана реален инструмент за програмистите, които предпочитат простия и ясен стил на езика Pascal. След отказа на Borland да поддържа езика Pascal за други платформи (освен Windows – от версия XE5 вече поддържа iOS и Android), FreePascal е дефакто стандарт за езика.
Компилаторът е един от 4-те, които официално се използват на международните състезания по информатика.
Free Pascal се заражда когато Borland обявяват че няма да има Borland Pascal 8 и следващата версия ще бъде продукт само за Windows (който впоследствие излиза под името Delphi). Тогава един студент (Florian Paul Klämpfl) започва работа по свой собствен компилатор. Компилаторът, макар и писан на 16-битовия Turbo Pascal е генерирал 32-битов код, използвайки DOS extender-а go32v1 (същия, който е използван от gcc (DJGPP) под DOS). След две години компилаторът вече може сам да компилира себе си.
32-битовият компилатор е публикуван в мрежата и първите разработчици се присъединяват към проекта. В първите години след появата му в интернет е направена Linux версия от Michael van Canneyt (цели 5 години преди Kylix), DOS версията е адаптирана към OS/2 EMX extender-а, за ползване под OS/2, а самата DOS версия постепенно е подобрена и пренесена върху go32v2 extender-а. Това води до появата на версия 0.99.5 която става много по-използвана от версиите преди нея, и също последната, която поддържа само Turbo Pascal, тъй като следващите вече включват и Delphi-съвместим режим. Също така 0.99.5 е пренесена и на системи с процесор Motorola 680x0.
Във версия 0.99.8 е добавена Win32 поддръжка и е започнат процеса на добавяне на Delphi разширенията към Pascal. Започва стабилизиране за версия 1.0 и окончателно тя излиза през юли 2000. 1.0.x серията (заедно с последвалите я версии, последната, 1.0.10 през юли 2003) стават широко използвани както професионално, така и в обучението. 1.0.x версиите отново са прехвърлени и на процесор 680x0 и компилаторът генерира стабилен код за редица Unix-подобни OS и за AmigaOS.
По време на стабилизирането на бъдещото тогава 1.0.x, и по-специално по време на пренасянето на m68k системи става ясно, че дизайнът на генератора на код е твърде ограничен по много начини. Двата принципни проблема са: добавянето на поддръжка на нови процесори означава пренаписване на целия генератор на код и заделянето на регистрите е основано на принцип (винаги да се пазят 3 свободни регистъра между градивните блокове) който е твърде труден за спазване и негъвкав.
Поради тези причини, FPC 1.1.x клонът е създаден от 1.0.x бета клона през декември 1999. В началото промените са основно почистване на кода и пренаписване/дизайн на всички части от компилатора, след това генератора на код и register allocator-а са пренаписани. Като бонус и липсващите неща за Delphi съвместимост са добавени.
Работата по 1.1.x продължава бавно но сигурно и в ранната 2003 поддръжката на процесор PowerPC започва да работи, бързо последвана от AMD64 (разработена с помощта на емулатор – по това време разработчиците не са имали истински чип) и първоначалните версии за ARM и Sparc. Поддръжката на AMD64 реално прави компилатора 32 и 64-битов.
През ноември 2003 е направена първата бета версия на 1.1.x клона и по повод случая номерът на версията е увеличен на 1.9. Това бързо е последвано от излизането на версии 1.9.2 и 1.9.4. 1.9.4 е специална защото е първата която поддържа Mac OS X.
Работата по компилатора продължава с версии 1.9.6 (януари 2005) и 1.9.8 (края на февруари 2005). Версия 2.0.0 излиза окончателно през май 2005.
На 10 септември 2007 излиза новата стабилна версия 2.2.0 на продукта. Промените спрямо предишната версия са доста, като най-важните са:
Планове за бъдещето (версия 2.1.x)
Част от тази функционалност (по-специално нещата касаещи link-ването) може да иска преструктуриране свързано с
Платформите поддържани от FPC зависят от версията.
Текущата стабилна версия 2.0.x поддържа следните процесори
и следните операционни системи
Предишната стабилна версия 1.0.x поддържаше следните процесори
и следните операционни системи:
и бета платформите: