Free Pascal コンパイラ (FPC) について
Free Pascal
コンパイラ(FPC)は、オープンソースのObject Pascal
コンパイラであり、その柔軟性と多機能性から、世界中の開発者に利用されています。複数のCPUアーキテクチャと
オペレーティングシステム(OS)に対応しており、幅広いプラットフォームでの開発が可能です。
概要
FPCは、Object Pascalの言語仕様に準拠しつつ、Turbo Pascal、
Delphi、そして過去のMacintosh
コンパイラの方言にも対応しています。この広範な互換性により、既存のPascalコード資産を有効活用できるだけでなく、異なる開発環境からの移行も容易になっています。FPCは、以前はFPK Pascalという名前で知られていましたが、開発者コミュニティの拡大に伴い、現在の名称に変更されました。
FPCのドキュメントは非常に詳細であり、合計1800ページに及ぶマニュアルは、
コンパイラのあらゆる側面を網羅しています。また、FPCには、Turbo Pascal風のテキストモード
統合開発環境(IDE)も含まれています。このIDEは、かつてはメンテナンス不足で不安定な時期もありましたが、近年では活発な開発により、安定性が向上しています。macOS環境では、コマンドラインからだけでなく、
Xcodeの一部としても利用可能です。
言語仕様
FPCは、Pascalの方言の中でも
デファクトスタンダードとなっているBorland Pascalと
Delphiをベースにしています。
バージョン2.0以降、
Delphi 7との互換性が継続的に改善されており、
Delphiで開発されたコードの多くをFPCでコンパイル可能です。また、Mac OSとの連携を容易にするため、Apple Pascalの文法も一部サポートされています。
コンパイラには、複数のコンパイル
互換モードが用意されており、ANSI/ISO標準、
Delphi互換、Turbo Pascal互換など、様々なモードを選択できます。これにより、特定の環境に特化したコードを記述することも、幅広い互換性を確保することも可能です。
歴史
誕生
FPCは、Borland社が「Borland Pascal 8はリリースせず、次期
バージョンはWindows専用になる」と発表したことをきっかけに誕生しました。学生だったFlorian Paul Klämpfl氏が、自ら
コンパイラを作成しようと決意したことが、FPC開発の始まりでした。当初の
コンパイラはTurbo Pascalの方言を基にし、DOSエクステンダ向けの
32ビットコードを生成していました。最初は
16ビットのDOSアプリケーションとして開発されましたが、二年後には自己コンパイル(ブートストラップ)を達成し、
32ビットアプリケーションへと進化しました。
拡大
最初の
32ビットコンパイラが公開されると、多くの開発者がプロジェクトに協力するようになりました。Michael van Canneyt氏の手によって
Linuxへの移植が実現し、その後、OS/2 + EMX環境への移植も行われました。DOS版の改良も進み、より広範囲に利用されるようになりました。この過程で、Turbo Pascal互換性だけでなく、
Delphi互換モードも追加されていきました。
新時代
バージョン1.0.xの安定化作業と並行して、コード生成部分の設計上の限界が明らかになりました。新しいプロセッサへの対応や、レジスタ割当の柔軟性に課題があったため、1.1.xシリーズとしてコード生成部分の再設計と書き直しが行われました。この改良によって、
Delphi互換性が大幅に向上しました。その後、
PowerPC、ARM、
SPARC、AMD64など、様々なアーキテクチャへの移植も進められ、
64ビットコンパイラとしての機能も追加されました。
バージョン1.9.4ではMac OS Xのサポートが開始され、2.0.0ではより多くの機能と安定性が導入されました。2012年の2.6.0では、ネストされた型、クラス変数、クラス/型ヘルパーなど、
Delphiとの互換性がさらに強化され、Objective Pascalの方言もサポートされました。
バージョン3.0では、名前空間ユニット、動的配列コンストラクタ、Default関数、型ヘルパー、コードページ情報を含むANSI文字列など、
Delphi互換の機能が多数追加されました。また、コード生成の最適化や、ユニット・パッケージの改良、新しいユーティリティの追加、macOS/iOS対応の強化も行われました。
新しい
コンパイラターゲットとして、Java Virtual Machine、Dalvik(Android)、
AIX、
16ビットリアルモードMS-DOS、Android(ARM、x86、MIPS)、armhf EABI、AROSなどがサポートされました。
ライブラリ
FPCのライブラリは、プログラムの基本機能を提供する「Run-Time Library(RTL)」と、多様なクラスやコンポーネントを提供する「Free Component Library(FCL)」で構成されています。また、Lazarus IDEには、
DelphiのVCLと互換性のあるLazarus Component Library(LCL)が含まれており、GUIアプリケーションの開発を強力にサポートしています。
その他の情報
FPCは、Pascal言語を用いたクロスプラットフォーム開発において、重要な役割を果たしています。そのオープンソース性と、幅広いプラットフォームへの対応は、多くの開発者にとって魅力的な選択肢です。
関連プロジェクト
Lazarus - FPCを用いたRAD環境
Turbo Pascal
Delphi
外部リンク
Free Pascal
Lazarus - FPC用RAD
FPC on Mac - Classic Mac OSへの移植状況
Introduction to Free Pascal 2.0 - Daniël Mantioneによる新版の詳しい紹介
CrossFPC - さまざまな環境向けに、FPCをDelphi IDE風に統合する無料ツールキット
FPS - FPC用Win32ベースのIDE
Pixel image editor - FPCで記述したPhotoshop風画像エディタ
*
FPC 4 GBA Initiative - ゲームボーイアドバンス向けFPCプロジェクト
これらの情報を通じて、Free Pascal
コンパイラの多様な側面を理解し、自身の開発に活用していただければ幸いです。