What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

Free Pascalの公式Language Reference Guideは、Pascal/Object Pascalの構文、データ型、制御構文、クラスなどを調べるためのリファレンスです。初心者向けチュートリアルやLazarusのGUI開発マニュアルではありません。2026年8月18日時点で公式サイトが案内する最新安定版はFPC 3.2.2で、本記事も基本的にこのバージョンを前提に説明します。

公式リファレンスはHTML版とPDF版で利用できます。まず実際にFree Pascalを動かし、必要な箇所をリファレンスで確認するのが最も効率的です。

Free Pascalとは

Free Pascal Compiler(FPC)は、PascalおよびObject Pascal向けのオープンソースコンパイラです。ISO Pascal、Turbo Pascal、Delphi系のコードとのソースレベル互換性を意識して設計されており、複数のOSやCPUターゲットを扱えます。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

ただし、「対応している」ことと「同じソースがすべての環境でそのまま動く」ことは別です。コンパイラモード、利用するユニット、OS、CPUターゲットによって構文や動作、利用可能なAPIが変わります。

LazarusはFPCを利用する代表的なGUI IDEです。FPCがコンパイラ、LazarusがIDEおよびGUI開発環境という関係であり、両者は同一製品ではありません。

公式の概要はFree Pascalの公式説明、コンパイラと互換性の詳しい説明はUser’s Guideで確認できます。

Language Reference Guideの役割

Language Reference Guideは、FPCが実装するPascal言語の仕様を辞書のように調べる文書です。文法を学ぶことはできますが、プログラミングを最初から順に学ぶチュートリアルではありません。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
文書 主な用途
Language Reference Guide 構文、型、式、制御構文、Object Pascal機能を調べる
User’s Guide コンパイラの使い方、オプション、基本操作を確認する
Programmer’s Guide 高度なプログラミング、拡張機能、低レベル機能を調べる
RTL Reference SysUtilsなど標準ランタイムユニットのAPIを調べる
FCL Reference Free Component Libraryのユニットを調べる
Lazarus/LCL文書 GUI、フォーム、コンポーネント、IDEを扱う

公式マニュアル一覧では、これらが別々の文書として整理されています。たとえば「クラスの書き方」はLanguage Reference、「FormatDateTimeの引数」はRTL Reference、「ボタンをフォームに置く方法」はLazarus/LCL文書を参照します。

公式リファレンスの入手先

HTML版

HTML版Language Reference Guideは、ブラウザで章を移動しながら読むのに向いています。ページ内検索やリンクによる関連項目の確認も容易です。

ただしURLに含まれるcurrentは、固定されたFPC 3.2.2の版番号を意味するとは限りません。安定版向け文書と開発ソースから日次生成される文書が混在する可能性があるため、ページ内のバージョンや文書日付を確認してください。

PDF版

公式PDFは、オフライン参照、印刷、保存、全文検索に便利です。PDFとHTMLは同じ公式文書ですが、版や更新時期が一致するとは限りません。特定のコードを確認するときは、使用中のコンパイラのバージョンと文書の対象バージョンを揃えるのが安全です。

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

コンパイラと文書のダウンロード

公式ダウンロードページでは、OS向けのFPC本体、文書、公式リリース、開発スナップショットが案内されています。開発版の3.3.x系列は新しい修正を含む可能性がある一方、安定版より未知の不具合が入りやすいため、学習や本番開発ではまず3.2.2を基準にするのが無難です。

Free Pascalをインストールして確認する

FPC単体は、コマンドラインでコンパイルしたい場合、CIやサーバー環境、小規模なコンソールプログラムに向いています。GUIのフォーム設計、統合デバッグ、プロジェクト管理を重視するなら、Lazarusを検討できます。Lazarusのセットアップ情報は公式セットアップページにあります。

インストール後、ターミナルまたはコマンドプロンプトで次を実行します。

fpc -iV

バージョン番号が表示されれば、fpcコマンドを利用できます。コマンドが見つからない場合は、FPC未インストール、PATH未設定、またはLazarus同梱版とシステム版の混在を確認してください。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

最小プログラムをコンパイルする

hello.pasという名前で、次の内容を保存します。

program HelloFreePascal;

begin
  WriteLn('Hello, Free Pascal!');
end.

保存したディレクトリでコンパイルします。

fpc hello.pas

通常は実行ファイルが生成されます。Unix系では次のように実行します。

./hello

Windowsでは通常、次の形式です。

hello.exe

実際のファイル名や出力先はOS、ターゲット、コンパイラオプションで変わる場合があります。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Pascalソースの基本構造

program Example;

uses
  SysUtils;

const
  AppName = 'Example';

type
  TNumber = Integer;

var
  Value: TNumber;

begin
  Value := 42;
  WriteLn(AppName, ': ', Value);
end.
  • programはプログラム単位を宣言します。
  • usesは利用するユニットを指定します。
  • const、type、varは定数、型、変数の宣言部です。
  • begin ... end.が実行部で、最後のピリオドがプログラム全体の終端です。
  • セミコロンは文や宣言の区切りに使います。最後のendの後ろはピリオドです。

識別子の大文字・小文字の扱いは、言語要素や利用環境の規則を確認してください。特に大文字・小文字を区別するOSでは、ユニットのファイル名と指定名の不一致が問題になることがあります。

コンパイラモードを選ぶ

FPCでは同じコンパイラでもモードによって使用できる構文や互換性が変わります。ソース内では{$MODE ...}、コマンドラインでは-Mを使います。

{$mode objfpc}
{$mode delphi}
{$mode tp}
{$mode iso}
fpc -Mobjfpc example.pas
モード 用途の目安
objfpc FPCのObject Pascal拡張を使う一般的な選択肢
delphi Delphi系コードとの互換性を意識する場合
tp Turbo Pascal系コードを移植する場合
iso ISO Pascal互換性を重視する場合

これらを完全互換モードと考えてはいけません。モードを変えても、ライブラリAPI、文字列型、例外処理、メモリモデル、GUIコンポーネント、OS依存コードの差は残ります。最終的な挙動と利用可能な機能は、対象バージョンの公式Language Reference Guideで確認してください。

リファレンスで調べる主な言語要素

宣言と型

プログラム、ユニット、ライブラリの構造、interface部とimplementation部、定数、型、変数、手続き、関数、プロパティ、前方宣言を確認できます。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

基本型では、整数、実数、Boolean、文字、文字列、列挙型、部分範囲型、集合、ポインタ、レコード、配列が重要です。単に型名を覚えるだけでなく、代入互換性、型互換性、型変換、サイズやターゲット依存性も確認してください。

式、演算子、制御構文

算術、比較、論理、集合の演算子、if、case、for、while、repeat ... until、with、break、continue、exitなどを調べられます。

複雑な式では、評価順序や短絡評価を当然の前提にしてコードを書くと、想定外の結果になることがあります。副作用のある式は分割し、対象モードと公式仕様を確認するのが安全です。

手続きと関数

値渡し、var、const、outパラメータ、デフォルト引数、オーバーロード、再帰、手続き型、無名メソッド、関数結果、呼び出し規約を確認します。呼び出し規約は外部ライブラリや別言語との連携で特に重要です。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Object Pascal機能

クラス、オブジェクト、継承、仮想メソッド、オーバーライド、抽象メソッド、コンストラクタ、デストラクタ、クラス参照型、インターフェース、RTTI、プロパティ、クラス変数、クラスメソッド、メモリ管理を順に調べると理解しやすくなります。

ジェネリックでは、ジェネリック型・関数、特殊化構文、型制約、delphiモードとobjfpcモードの構文差を確認してください。エラーが型定義の行ではなく、特殊化や呼び出し側に現れることもあります。

コンパイラディレクティブと条件コンパイル

OS、CPU、コンパイラバージョン、チェック設定などを切り替えるには、コンパイラディレクティブと条件コンパイルを使います。

{$IFDEF WINDOWS}
  WriteLn('Windows');
{$ELSE}
  WriteLn('Other platform');
{$ENDIF}

範囲チェック、I/Oチェック、オーバーフローチェック、デバッグ用設定とリリース用設定も、対象プロジェクトの方針に合わせて管理します。条件分岐を増やしすぎると可読性が下がるため、OS依存処理をユニットに隔離する設計も有効です。ディレクティブの正確な意味は、対象バージョンの公式リファレンスで確認してください。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

RTL・FCL・LCLとの境界

「どの文書を開くべきか」は、調べたい対象で決まります。

  • FPC言語仕様:文法、型、制御構文、クラス、ジェネリック。
  • RTL:ファイル、文字列、日付、入出力、システム依存処理。
  • FCL:RTLより高水準の標準コンポーネント群。
  • LCL:LazarusのGUIコンポーネント、フォーム、イベント。
  • Lazarus IDE:編集、フォーム設計、デバッグ、プロジェクト管理。

たとえばfor文の構文はLanguage Reference、SysUtilsのルーチンはRTL、ボタンのイベントはLCLの文書を参照します。Lazarusを導入しても、LCL APIがFPCの言語仕様に追加されるわけではありません。

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Delphiコードを移植するとき

FPCはDelphi互換性を重視していますが、Delphiアプリケーションの完全移植を保証するものではありません。まず{$MODE DELPHI}を含め、次の項目を個別に確認します。

  • Delphi固有ユニットがFPC側に存在するか
  • VCLとLCLのAPI・コンポーネント差
  • Unicode文字列と旧来の文字列型
  • ジェネリック、匿名メソッド、属性、RTTI
  • メモリ管理と所有権
  • Windows APIや外部DLLへの依存
  • 32ビット/64ビット差と呼び出し規約

「ソースの一部がコンパイルできる」と「GUIを含むアプリがそのまま動く」は別の主張です。依存ユニットとコンポーネントを置き換え、ターゲット環境でテストする必要があります。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Turbo Pascalコードを移植するとき

tpモードはTurbo Pascal系コードを調べる出発点になりますが、古いコードの前提まで現代環境に戻すものではありません。

  • 16ビット整数やポインタ、古いメモリモデル
  • DOS固有APIやテキストモードUI
  • インラインアセンブリ
  • 短い文字列など古い文字列型
  • 旧式のコンパイラ指令

構文の修正後も、DOS APIやハードウェア依存部分は別の実装に置き換える必要があります。

よくあるエラーと対処

fpcコマンドが見つからない

FPCの未インストール、PATH未設定、Lazarus同梱版とシステム版の混在が考えられます。まずfpc -iVを試し、失敗する場合は公式ダウンロードページから対象OS向けパッケージを確認します。

unit not found

ユニット検索パス不足、FCLや追加パッケージの未導入、LazarusとFPC単体での設定差、ファイル名の大文字・小文字不一致を確認します。検索パスは-Fuで追加できます。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
fpc -Fu./src -Fu./lib example.pas

そのユニットがRTL、FCL、LCLのどれに属するかも確認してください。

文法エラーや型エラー

  1. FPCのバージョンを確認する
  2. ソースの{$MODE ...}を確認する
  3. uses不足を確認する
  4. Delphi専用・Lazarus専用構文の混入を探す
  5. 文字列型、Unicode、ジェネリックの差を確認する
  6. OS依存コードや呼び出し規約を確認する

モードを変更して解決するのは構文規則の差である場合に限られます。APIや外部ライブラリの不一致は、モード変更だけでは解決しません。

目的別の読み方

読者 おすすめの進め方
初心者 入門教材で基本を学び、動作確認後にLanguage Referenceで構文を調べる
コマンドライン開発者 FPC 3.2.2、User’s Guide、Language Reference、RTL Referenceを併用する
Lazarus利用者 言語仕様とLCL/IDE文書を分けて参照する
Delphi移植者 モード、ユニット、VCL/LCL、文字列、RTTI、API依存を順に確認する
Turbo Pascal保守者 tpモードを試し、DOS・16ビット・古い文字列型の依存を分離する

まとめ

Free PascalのLanguage Reference Guideは、FPCのPascal/Object Pascal言語仕様を調べるための中心的な公式文書です。HTMLはリンクと検索、PDFは固定版の保存とオフライン参照に向いています。

まずFPCのバージョンを確認し、最小プログラムをfpc hello.pasでコンパイルしてください。そのうえで、言語構文はLanguage Reference、コンパイラ操作はUser’s Guide、標準APIはRTL/FCL、GUIはLazarus/LCL文書という使い分けを徹底すると、必要な情報に早く到達できます。

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.