Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Pascal の勉強に使えそうな Pascal 処理系

はじめに

Pascal の勉強をしていると、Pascal を実際に動かしてみたくなります。現物があると理解も早いですからね。

各 Pascal について

書籍のサンプルコードを試すには対象となっている Pascal を用意しなくてはなりません。Pascal を日本語で解説した書籍の殆どが、

  • 標準 Pascal
  • Turbo Pascal
  • Delphi

このいずれかを対象としているようです。

■ 標準 Pascal / ISO 準拠 Pascal

標準 Pascal は Pascal-P5 で試せます。Pascal-P5 は ISO 7185 (水準 0) 準拠 の Pascal コンパイラ / インタプリタです。

image.png

See also:

■ Turbo Pascal 3.0

Turbo Pascal 3.0 はアンティークソフトウェアとして Embarcadero のサイトから DL 可能です。

2.0 用に書かれたコードの多くは 3.0 でもそのまま動作すると思います。後述の Turbo Pascal 5.5 でも代替できるかもしれませんが、書籍の多くは Turbo Pascal 3.0 以前が使われています。

※Turbo Pascal 3.0 によって生成される実行ファイルの形式は *.COM です。

・DOSBox(-X) で実行

Turbo Pascal 3.0 は DOSBox(-X) で動作させる事ができます。TURBO.COM が Turbo Pascal の本体です。
image.png
環境設定ツール TINST.COM を動かそうとするとエラーが発生します。

*** FATAL ERROR: File TURBO.COM not found

これは解凍したファイルに読み取り専用属性が付いているからです。
image.png
読み取り専用属性を外せば TINST を実行できます。
image.png

See also:

・MS-DOS Player で実行

Turbo Pascal 3.0 は MS-DOS Player でも動作するようです。 
image.png

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 も一緒にコンバートしておくといいと思います。
image.png
但し、TURBO64.EXE が吐く実行可能ファイルは MS-DOS 形式なので、これを実行するにはやっぱり msdos.exe を使う必要があります。IDE からプログラムを実行する分には問題ありません。

See also:

■ Turbo Pascal 5.5

Turbo Pascal 5.5 はアンティークソフトウェアとして Embarcadero のサイトから DL 可能です。

Turbo Pascal 5.5 以降を前提として書かれた書籍はそう多くはないと思われますが、見かけたら一冊持っておくと便利です。

※Turbo Pascal 5.5 によって生成される実行ファイルの形式は *.EXE です。

・DOSBox(-X) で実行

Turbo Pascal 5.5 は DOSBox(-X) で動作させる事ができます。TURBO.EXE が Turbo Pascal の本体です。
image.png

See also:

・MS-DOS Player で実行 (コマンドラインコンパイラ)

Turbo Pascal 5.5 の本体は TURBO.EXE です。
image.png
MS-DOS Player を使えば 64bit Windows のコマンドプロンプトでも TURBO.EXE を実行する事ができます。

chcp 437
msdos TPC.EXE <ソースファイル名>

フォントの関係で、TURBO.EXE を起動する前にコードページを 437 に切り替える必要があります。切り替えないとこうなってしまいます。
image.png
コードページを元に戻すには chcp 932 を実行します。

64bit Windows で動作する EXE

Turbo Pascal 3.0 同様、MS-DOS PlayerTURBO64.EXE を作る事もできます。

msdos -cTURBO64.EXE -x TURBO.EXE

但し、TURBO64.EXE が吐く実行可能ファイルは MS-DOS 形式なので、これを実行するにはやっぱり msdos.exe を使う必要があります。IDE からプログラムを実行する分には問題ありません。
image.png

・MS-DOS Player で実行 (コマンドラインコンパイラ)

Turbo Pascal 5.5 には tpc.exe というコマンドラインコンパイラも付属します。
image.png
MS-DOS Player を使えば 64bit Windows のコマンドプロンプトでも tpc.exe を実行する事ができます。

msdos TPC.EXE <ソースファイル名>

image.png

64bit Windows で動作する EXE

MS-DOS PlayerTPC64.EXE を作る事もできます。

msdos -cTPC64.EXE -x TPC.EXE

但し、tpc64.exe が吐く実行可能ファイルは MS-DOS 形式なので、これを実行するにはやっぱり msdos.exe を使う必要があります。
image.png

See also:

■ UCSD P-System

MS-DOS で動作する UCSD P-System が pascal.hansotten.com から DL 可能です。

・DOSBox(-X) で実行

UCSD P-System は DOSBox(-X) で動作させる事ができます。
image.png

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

image.png
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 (英語版) がアンティークソフトウェアとして公開されました。

image.png
有償版 (Professional 版以上) を購入すると入手できる Delphi 7 だと IDE がほぼ同じです。また、一部を除けば最新版の Delphi Community Edition (無償版) でも通用すると思います。

なお、Delphi 1 は Windows XP (32bit) 以前のバージョンにインストールする事ができます。Vista 以降の Windows では未確認です。

See also:

■ Delphi Community Edition

Delphi 2 以降に関するものは最新版の Delphi でも殆ど通用すると思います。無償版である Community Edition は Embarcadero のサイトから DL できます。

image.png
個人学習にはこれでいいかと思いますが、同一サブネットで 5 台までしか同時利用できないという制限があるため、教室などでの利用には向いていません。アカデミック版を含め、教育用途の場合にはエンバカデロさんに相談してみてください。

See also:

■ ideone

ブラウザで各種言語が試せるサイトです。FreePascal (FPC) / Lazarus や GNU Pascal (GPC) をインストールせずに試すことができます。簡単なものならこれでいいかもしれません。

image.png
右下のボタンで言語を切り替えられます。Pascal (fpc) または Pascal (gpc) を選んでください。
image.png
GPC はほぼ標準 Pascal です。FPC は Turbo Pascal に近いと思います (コンパイラモードを切り替え可能)。いずれも拡張が施されているので、純粋な標準 Pascal として使うのは難しいかもしれません。

See also:

おわりに

Pascal を気軽に試せるのはいい事ですね。

MS-DOS Player での動作についてですが、表示が崩れる事があったらコマンドプロンプトのフォントを欧文フォントに変更してみてください。
image.png
折角なので、どの処理系でも動作するであろう (ちょっと凝った) FizzBuzz を貼っておきますね。

FizzBuzz.pas
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} は不要です。

ht_deko
とある熊本の障害復旧(トラブルシューター)
https://ht-deko.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away