はじめに
Pascal の勉強をしていると、Pascal を実際に動かしてみたくなります。現物があると理解も早いですからね。
各 Pascal について
書籍のサンプルコードを試すには対象となっている Pascal を用意しなくてはなりません。Pascal を日本語で解説した書籍の殆どが、
- 標準 Pascal
- Turbo Pascal
- Delphi
このいずれかを対象としているようです。
■ 標準 Pascal / ISO 準拠 Pascal
標準 Pascal は Pascal-P5 で試せます。Pascal-P5 は ISO 7185 (水準 0) 準拠 の Pascal コンパイラ / インタプリタです。
See also:
■ Turbo Pascal 3.0
Turbo Pascal 3.0 (MS-DOS 版) はアンティークソフトウェアとして Embarcadero のサイトから DL 可能です。
1.0 / 2.0 用に書かれたコードの多くは 3.0 でもそのまま動作します。後述の Turbo Pascal 5.5 でも代替できるかもしれませんが、Turbo Pascal 関連書籍の多くでは ver3.0 以前が使われているようです。
- Antique Software: Turbo Pascal v3.02 (EDN)
- Turbo Pascal 3.02 (Embarcadero)
- Embarcadero が公開しているアンティークソフト一覧 (Qiita)
- Turbo Pascal 3.0 の使い方 (Qiita)
- Turbo Pascal 3.02 を Windows 10 (64bit) / 11 にインストールしてみる (Qiita)
- PUG BOOKS の Turbo Pascal 関連書籍を読んでみる (Qiita)
※Turbo Pascal 3.0 によって生成される実行ファイルの形式は *.COM です。
・DOSBox(-X) で実行
Turbo Pascal 3.0 は DOSBox(-X) で動作させる事ができます。TURBO.COM
が Turbo Pascal の本体です。
環境設定ツール TINST.COM
を動かそうとするとエラーが発生します。
*** FATAL ERROR: File TURBO.COM not found
これは解凍したファイルに読み取り専用属性
が付いているからです。
読み取り専用属性を外せば TINST を実行できます。
See also:
・MS-DOS Player で実行
Turbo Pascal 3.0 は MS-DOS Player でも動作するようです。
msdos TURBO.EXE <ソースファイル名>
64bit Windows で動作する EXE
MS-DOS Player は -c
コマンドで EXE を 64bit 実行ファイルにコンバートする事ができるため、64bit Windows のコマンドプロンプトで直接動作する turbo64.exe なんていうのを作る事もできます。
msdos -cTURBO64.EXE -x TURBO.COM
msdos -cTINST64.EXE -x TINST.COM
TINST.COM も一緒にコンバートしておくといいと思います。
但し、TURBO64.EXE が吐く実行可能ファイルは MS-DOS 形式なので、これを実行するにはやっぱり msdos.exe を使う必要があります。IDE からプログラムを実行する分には問題ありません。
See also:
■ Turbo Pascal 5.5
Turbo Pascal 5.5 はアンティークソフトウェアとして Embarcadero のサイトから DL 可能です。
Turbo Pascal 5.5 以降を前提として書かれた書籍はそう多くはないと思われますが、見かけたら一冊持っておくと便利です。
- Antique Software: Turbo Pascal v5.5 (EDN)
- Turbo Pascal 5.5 (Embarcadero)
- Turbo Pascal 5.5 Object-Oriented Programming Guide (Embarcadero)
- Turbo Pascal 5.5 (Mr.XRAY)
- Embarcadero が公開しているアンティークソフト一覧 (Qiita)
- Turbo Pascal 5.5 を Windows 10 (64bit) / 11 にインストールしてみる (Qiita)
- PUG BOOKS の Turbo Pascal 関連書籍を読んでみる (Qiita)
※Turbo Pascal 5.5 によって生成される実行ファイルの形式は *.EXE です。
・DOSBox(-X) で実行
Turbo Pascal 5.5 は DOSBox(-X) で動作させる事ができます。TURBO.EXE
が Turbo Pascal の本体です。
See also:
・MS-DOS Player で実行
Turbo Pascal 5.5 の本体は TURBO.EXE
です。
MS-DOS Player を使えば 64bit Windows のコマンドプロンプトでも TURBO.EXE
を実行する事ができます。
chcp 437
msdos TURBO.EXE <ソースファイル名>
フォントの関係で、TURBO.EXE
を起動する前にコードページを 437 に切り替える必要があります。切り替えないとこうなってしまいます。
コードページを元に戻すには chcp 932
を実行します。
64bit Windows で動作する EXE
Turbo Pascal 3.0 同様、MS-DOS Player で TURBO64.EXE を作る事もできます。
msdos -cTURBO64.EXE -x TURBO.EXE
但し、TURBO64.EXE が吐く実行可能ファイルは MS-DOS 形式なので、これを実行するにはやっぱり msdos.exe を使う必要があります。IDE からプログラムを実行する分には問題ありません。
・MS-DOS Player で実行 (コマンドラインコンパイラ)
Turbo Pascal 5.5 には tpc.exe というコマンドラインコンパイラも付属します。
MS-DOS Player を使えば 64bit Windows のコマンドプロンプトでも tpc.exe を実行する事ができます。
msdos TPC.EXE <ソースファイル名>
64bit Windows で動作する EXE (コマンドラインコンパイラ)
MS-DOS Player で TPC64.EXE を作る事もできます。
msdos -cTPC64.EXE -x TPC.EXE
但し、tpc64.exe が吐く実行可能ファイルは MS-DOS 形式なので、これを実行するにはやっぱり msdos.exe を使う必要があります。
See also:
■ UCSD P-System
MS-DOS で動作する UCSD P-System が pascal.hansotten.com から DL 可能です。
- UCSD P-SYSTEM (Pascal for small machines)
- UCSD p-System IV 2.2 への直接リンク
- UCSD Pascal を触るためだけの UCSD P-System 操作ガイド (Qiita)
・DOSBox(-X) で実行
UCSD P-System は DOSBox(-X) で動作させる事ができます。
See also:
・MS-DOS Player で実行
UCSD P-System は MS-DOS Player で動作させる事ができます。
msdos PSYSTEM.COM PSYSTEM.VOL PUTIL.VOL
64bit Windows で動作する EXE
MS-DOS Player で PSYSTEM64.EXE を作る事もできます。
msdos -cPSYSTEM64.EXE -x PSYSTEM.COM
UCSD P-System での実行ファイルは P コード形式なので、ホスト OS が何であっても動作します。
See also:
■ Delphi 1
今となっては Delphi 1 の入手は難しいのですが、幾つか手段があります。
雑誌付属の体験版 (EEP = Early Experience Program) を入手する。- Delphi 2 ~ Delphi 4 の CD-ROM 内に格納されている Delphi 1 を使う。
追記: 2020/02/15
Delphi 1.0 Client/Server (英語版) がアンティークソフトウェアとして公開されました。
有償版 (Professional 版以上) を購入すると入手できる Delphi 7 だと IDE がほぼ同じです。また、一部を除けば最新版の Delphi Community Edition (無償版) でも通用すると思います。
なお、Delphi 1 は Windows XP (32bit) 以前のバージョンにインストールする事ができます。Vista 以降の Windows では未確認です。
See also:
- Delphi 1.0 Client/Server が無償公開されたので Windows 7 の XP Mode にインストールしてみる (Qiita)
- Delphi 1.0 Client/Server が無償公開されたので Windows 10 (64bit) / 11 にインストールしてみる (Qiita)
- "常に新しい、不変のDelphi - Delphi 2009以降の新機能" のソースコードが何だったのかを検証してみる (Qiita)
- Delphi 旧バージョン情報 (Embarcadero)
■ Delphi Community Edition
Delphi 2 以降に関するものは最新版の Delphi でも殆ど通用すると思います。無償版である Community Edition は Embarcadero のサイトから DL できます。
個人学習にはこれでいいかと思いますが、同一サブネットで 5 台までしか同時利用できないという制限があるため、教室などでの利用には向いていません。アカデミック版を含め、教育用途の場合にはエンバカデロさんに相談してみてください。
See also:
- Delphi Community Edition (Qiita: @pik)
- Delphi Community Edition と過去の無償版との比較 (Qiita)
- Delphi 10.3 Community Edition をインストール (Qiita: @CYonezawa)
- Community Edition Q&A (Embarcadero)
- Object Pascal Handbook (Embarcadero)
- Delphi で始めるビジュアルプログラミング (Embarcadero)
- C++Builderで始めるビジュアルプログラミング (Embarcadero)
■ ideone
ブラウザで各種言語が試せるサイトです。FreePascal (FPC) / Lazarus や GNU Pascal (GPC) をインストールせずに試すことができます。簡単なものならこれでいいかもしれません。
右下のボタンで言語を切り替えられます。Pascal (fpc) または Pascal (gpc) を選んでください。
GPC はほぼ標準 Pascal です。FPC は Turbo Pascal に近いと思います (コンパイラモードを切り替え可能)。いずれも拡張が施されているので、純粋な標準 Pascal として使うのは難しいかもしれません。
See also:
おわりに
Pascal を気軽に試せるのはいい事ですね。
MS-DOS Player での動作についてですが、表示が崩れる事があったらコマンドプロンプトのフォントを欧文フォントに変更してみてください。
折角なので、どの処理系でも動作するであろう (ちょっと凝った) FizzBuzz を貼っておきますね。
program FizzBuzz(Output);
{$APPTYPE CONSOLE}
const
NUM1 = 3;
NUM2 = 5;
LOOP = 100;
var
i, n: Integer;
function GCD(X, Y: Integer): Integer;
begin
if Y = 0 then
GCD := X
else
GCD := GCD(Y, X mod Y);
end; { GCD }
function LCM(X, Y: Integer): Integer;
begin
LCM := Y * (X div GCD(X, Y));
end; { LCM }
begin
n := LCM(NUM1, NUM2);
for i:=1 to LOOP do
begin
if (i mod n) = 0 then
writeln('FizzBuzz')
else if (i mod NUM1) = 0 then
writeln('Fizz')
else if (i mod NUM2) = 0 then
writeln('Buzz')
else
writeln(i);
end;
end.
Delphi で試す場合にはファイルの拡張子を *.dpr
にしてください。Delphi 以外では {$APPTYPE CONSOLE}
は不要です。