Pascal 日和 ホームページ



更新:2026-01-03



備忘録インデックス

Object Pascal 備忘録  (Free Pascal OBJFPCモード)



プログラム言語Pascal




1. はじめに


プログラミング言語(ソフトウェアの開発環境)の選択はどう考えるでしょうか。

会社の業務や既存のプロジェクトに参加している場合は、すでに使用している開発環境を指定されるでしょう。新しくプロジェクトを起こす場合も大抵は既存のプロジェクトの開発環境を踏襲することが多いと思います。プログラム言語も必然的に決まってしまいます。

会社でローカル(個人的)に効率化のためのツールやアプリを作る場合や、学生さんの研究などでは自分でプログラミング環境を選択できる場合もあると思います。テーマによって向いているプログラム言語を選択することになるでしょう。この場合はよく耳にするメジャーなプログラム言語から、自分が習得しているまたは習得可能なもの、できれば今後のスキルアップにつながればなおよい。という感じだと思います。

C/C++, Java, C#, PHP, Python, JavaScript, Golang, Rust...等々。

私の場合、仕事ではC言語を主に使用していましたが、40年ほど前にBorland社のTurbo Pascalに出会ってからPascal系言語をよく使います。

現在では、Pascal言語が注目されることは少なくなりました。名前だけは知っているけど実際にどんなものか知らない人も多いでしょう。現在ではObject Pascalとなり、商用ではEmbarcadero社のDelphi、オープンソースではFree Pascal / Lazarus / CodeTyphonなどがあります。これらは開発バージョンの更新も続いています。開発が終ってないということは使い続けるうえで重要なことです。

「備忘録」では、Object Pascalについて備忘録を残していきたいと思います。

私は、Windowsしかよく知らないので、基本的にWindows限定の話となります。




2. Pascal言語とは


1970年にニクラウス・ヴィルト(Niklaus Wirth)によって開発されたプログラミング言語です。プログラミングの教育に適していて、多くの教育現場や研究に使用されていました。アルゴリズムのプログラム表現にも多く利用され、Pascal関連の書籍も多く出版されていました。現在ではC/C++やPythonなどの言語に焼き直された感じですが、アルゴリズムのプログラム化はその言語の表現力で左右されてしまうため実装イメージは微妙に変わってしまいます。

Pascal表現は今でも分かりやすい表現のひとつだと思います。




3. 標準Pascal (Standard Pascal)


標準Pascalは正式な規格があります。参考文献[1]は標準Pascalの本です。


3.1 国際規格


ISO 7185:1983 Programming languages Pascal (制定)

ISO 7185:1990 Programming languages Pascal (改正)


3.2 日本産業規格


国際標準ベースのJIS規格版です。


JIS X 3008:1990 プログラム言語Pascal (制定)

JIS X 3008:1994 プログラム言語Pascal (改正)


3.3 プログラム例


「Hello, world!」を表示するプログラムの標準Pascal版。


 HelloWorld.pas
program HelloWorld(Output);
begin
  WriteLn('Hello, world!');
end.




4. 拡張Pascal (Extended Pascal)


拡張Pascalも正式な規格があります。


4.1 国際規格


ISO/IEC 10206:1991 Progamming languages Extended Pascal


日本産業規格(JIS)には、対応する規格はないようです。


4.2 プログラム例


「Hello, world!」を表示するプログラムの拡張Pascal版。

プログラムをメインプログラム(HelloEx.pas)とモジュール(HelloMod.pas)に分けて構成することができます。


 HelloEx.pas
{ メインプログラム }
program HelloEx(Output);
import
  HelloProcs;
begin
  SayHello(Output);
end.

 HelloMod.pass
{ モジュール }
{ インターフェース部 }
module HelloMod interface;
export
  HelloProcs = (SayHello);
procedure SayHello(var F: Text);
end.
{ 実現部 }
module HelloMod implementation;
procedure SayHello;
begin
  WriteLn(F, 'Hello, World!');
end;
end.




5. Object Pascal


Object Pascal自体にはISO規格などはありません。そのため統一的な定義はなく、発祥の経緯などもWebで検索するといろいろ出てきます。という感じです。

基本的には、Standard Pascalにオブジェクト指向の概念を導入したもので、ベンダーの製品やオープンソースでそれぞれ機能拡張されています。定義については各々のドキュメントを参照することになります。

現在、ベンダー製品ではEmbarcadero社のDelphi、オープンソースではFree Pascalが有名です。その他にもMicrosoft .NET Frameworkで動作するRemObjects社のOxygeneやオープンソースのPascalABC.NETなどもあります。


Delphi

Free Pascal

Oxygene

PascalABC.NET


Delphi, Oxygene, PascalABCなどはIDE(統合開発環境)も付属しています。

Free Pascalには、別途Lazarus IDEとCodeTyphon StudioというFree Pascalを開発言語とするIDEが存在します。Lazarusはリリース版のFree Pasca(現在3.2.2)を同梱し、CodeTyphonは開発版(現在3.3.1)のスナップショットを同梱します。これらを使用するとDelphiのような開発環境イメージになります。


Lazarus IDE

CodeTyphon Studio


5.1 プログラム例


「Hello, world!」を表示するプログラムのObject Pascal(Free Pascal)版。

プログラムをメインプログラム(HelloFPC.pas)とユニット(HelloUnit.pas)に分けて構成することができます。


 HelloFPC.pas
{ メインプログラム }
program HelloEx(Output);
{$MODE OBJFPC}{$H+}{$J-}
{$MINFPCONSTPREC 64}
{$CODEPAGE UTF8}
uses
  SysUtils, HelloUnit;
begin
  SayHello(Output);
end.

 HelloUnit.pas
{ ユニット }
unit HelloUnit;
{$MODE OBJFPC}{$H+}{$J-}
{$MINFPCONSTPREC 64}
{$CODEPAGE UTF8}
{ インターフェース部 }
interface
uses
  SysUtils;
procedure SayHello(var F : Text);
{ 実現部 }
implementation
procedure SayHello(var F : Text);
begin
  WriteLn(F, 'Hello, World!');
end;
end.




6. 前提とするWindowsでの開発環境について


Object Pascal 備忘録」では、Object Pascalの中でも、Free Pascal / Lazarus / CodeTyphon を中心に備忘録を残す予定です。

開発環境は以下の設定を前提とします。


共通設定 - Windowsターミナル(wt.exe)の設定

Free Pascal のインストール

Free Pascal のコンパイル環境

Free Pascal のデバッグ環境

Lazarus のインストール

Lazarus の設定

Lazarus のパッケージインストール1

Lazarus のパッケージインストール2

CodeTyphon のインストール

Typhon IDE の設定


6.1 おまけ


ISOの拡張Pascal(Extended Pascal)はGNU Pascalがサポートしています。

ただし、開発は止まっているようです。


GNU Pascal のインストール(Dev+GNU Pascal版)




7. 参考文献


[1] Kathleen Jensen, Niklaus Wirth : Pascal User Manual and Report, Springer-Verlag, 1991. 原田 賢一 (訳) : PASCAL (原書第4版), 培風館, 1993.

[2] ANSI-ISO PASCAL

[3] Free Pascal - Online documentation

[4] ISO - International Organization for Standardization

[5] 日本産業規格(JIS) (METI/経済産業省関東経済産業局)



[ライセンスについて]