Free Pascal

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の新機能



バージョン3.0では、名前空間ユニット、動的配列コンストラクタ、Default関数、型ヘルパー、コードページ情報を含むANSI文字列など、Delphi互換の機能が多数追加されました。また、コード生成の最適化や、ユニット・パッケージの改良、新しいユーティリティの追加、macOS/iOS対応の強化も行われました。

新しいコンパイラターゲットとして、Java Virtual Machine、Dalvik(Android)、AIX16ビットリアルモード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コンパイラの多様な側面を理解し、自身の開発に活用していただければ幸いです。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。