インターネット&PC120%活用:PC活用編

APLの入手

1 APLの入手
1) APLとは
APLはIBMのメインフレームで動く言語として開発されたものです。IBMによりDOS/Vマシン用に移植され
フリーウェアとして「APLV100」が提供されています。

特徴は、行列演算が得意な言語と言われています。インタプリタです。
その他、特殊な文字(ギリシャ文字の記号)をプログラム上使用します。おそらく、一般のDOS/Vマシンの
DOS窓上では、文字化けして正確な文字(プログラム上の記号)を表示できないでしょう。
それ以外にも、通常のプログラム言語(Basic,Fortran,C)とはかなり異なった特徴をもっています。

APL用のキーボードのキー配列はかなり特殊です。また文字も一般には使わないギリシャ文字などが
使用されます。APL用のキーボードは以下のとおり


2) APLの入手
IBMからフリーウェアで提供されている、APLが
Vector/ベンダー提供/IBMのページにあります。
そこから、APLV100.LZHをダウンロードして下さい。おじさんは、とりあえずこれを使ってみました。
他にも、いくつかフリーのAPLはあるようです。
Free Compilerのページに紹介した、各サイトで
探してみて下さい。


2 APLV100を使って見る

(1) インストール
APLV100.LZHを解凍するだけで使えます。解凍したら全てのファイルを同じフォルダ(ディレクトリ)に
入れておいてください。いろんなファイルがありますが、主要なものは以下の通りです。

APL.EXE * APLのプログラム本体
$SCR.COM * スクリーン制御プログラム
$SVP.COM *共用変数のプロセッサー
$8087.COM * 数値演算プロセッサーのエミュレーター
EXAPL.COM * 制御プログラム
APLFONT.FNT * APL Font File
APLFULL.BAT すべての補助プロセッサーをロードしてAPLを起動する

APL補助プロセッサー
AP2.COM 非APLプログラム・インターフェース補助プロセッサー
AP80.COM 印刷装置用補助プロセッサー
AP101.COM 代替入力補助プロセッサー
AP103.COM BIOS/DOS割り込み補助プロセッサー
AP205.COM 全画面補助プロセッサー
AP210.COM ファイル入出力補助プロセッサー
AP232.COM 非同期通信用補助プロセッサー
AP440.COM ミュージック補助プロセッサー
AP555.COM * 漢字データ変換補助プロセッサー
AP611.COM グラフィクス処理プロセッサー(サンプル)


(2) 起動
APLを起動するにはDOSのコマンドプロンプトからCDコマンドでAPLが導入されたディレクトリーに
移動してAPLとタイプします。同時に組み込みたい補助プロセッサーがある時には
>APL AP2 AP210 AP232
のように補助プロセッサーの名前をパラメーターとしてタイプします。
また、APLFULL.BAT のBATファイルから起動しても構いません。そうすると、全補助プロセッサーが
組み込まれて起動します。

(3) 終了
起動すると
CLEAR WS
と表示してコマンド入力待ちになるので、
)OFF
とタイプします。DOSに戻ります。

(4) 簡単な計算をやってみる
CLEAR WS と表示してコマンド入力待ち状態になっているので、続けて以下のコマンドをタイプして
下さい。

足し算
4+6 とタイプしてみましょう。 10と答えがでますね。
掛け算
4×5 をやってみましょう。(残念ながら、おじさんのPCでは文字化けして 4ホ5 と表示されて
しまいます) 20 とでましたね。
割り算
割り算です。4÷8 これも文字化けして4ヘ8 と表示されてしまいますが、答えは0.5とでています。

では負の数です。
4+(-5)をやってみます。  -5は~5です。APLでは 
4+~5 という表記になります。結果は~1(-1)ですね。
APLでは演算としての引き算(-)と、負の数(~)を明確に区別して表記します。
この点、他のプログラム言語とかなり違う点なので、注意して下さい。
従って 4~5は意味をなしません。 

CLEAR WS        
    4+6
10
    4ホ5
20
    4ヘ8
0.5
    4+~5
~1
   

(5) 計算順序
それでは、少しづつAPLのオリジナル仕様の部分に進んでいきましょう。ここから少々やっかいになります。
他のプログラム言語の慣れた人には違和感のあるところです。
APLの計算順序の法則は、(A)演算は右から左へ (B)かっこ内は先に計算の2つです。
普通の数学の演算規則、他の言語の演算規則と違うので、最初はとまどうかもしれません。

一番上は、3×4+5 です。数学では、17が正解ですが、APLでは違います。
APLでは右からの原則に従い、まず4+5 を計算します。結果は9です。次に3×9 を計算し27という答え
がでてきます。

2番目は (3×4)+5。 これは、かっこが優先され、17ですね。問題ないと思います。

3番目 0-5+1 数学的には、~4(-4)だと思いますが、これもAPLでは違います。
まず、5+1 を計算して6。 ついで、0-6 で~6です。よろしいでしょうか。

4番目はどうでしょうか。-5は先にも言いましたが、~5ではありません。-は引き算です。この場合は
先頭に0が省略されていると解釈され、3番目の式と同じになります。

5番目は難しいですね。まず、4-5 で ~1。
次に、3-~1 で 4。
そして 2-4 で ~2。
最後に 1-~2 で 3 です。

かなり慣れないとわかりにくいと思いますが、慣れると法則は単純なので、合理的に思えてくるそうです。

    3ホ4+5
27
    (3ホ4)+5
17
    0-5+1        
~6
    -5+1
~6
    1-2-3-4-5
3

(6) 代入
代入は、← を使います。
変数Aに5を代入する場合、Basicはじめたいていの言語は、A=5 としますが
APLは A←5 とします。ここらへんも記号の使い方が厳密といえば厳密です。
Basicでは、代入も等号も = ですから。こっちの方がおかしいといわれればそうともいえますね。

おじさんの環境では、←も正しく表示されず
゙ になってしまいますので、てきとうに置き換えて見て
下さい。
以下では
A←5  Aに5を代入
A←A+4  Aに4をくわえて代入
をしています。

     A゙5   
     A
5
     A゙A+4
     A
9

(6) ワークスペースのSAVE
APLではプログラムを保存したり、読み出したり(ロード)したりというということをしません。
そのかわり、ワークスペースをSAVEしたりLOADしたりということをします。ワークスペースは今までの
一連の作業のことです。

では、上記の通り、変数Aに9が入ったところで、ワークスペースを保存してみます。
)SAVE TEST
とタイプし、TESTという名前でワークスペースを保存します。ファイルとしては、TEST__.apl というファイルが
できます。
ここでいったん、APLを終了しましょう。終了は )OFF ですね。

再度APLを起動し、A とタイプしてみます。
一度も値を代入されていない変数なので、VALUE ERROR というエラーがでました。
(その下の A と ワ はエラーの個所を表示しています。本来 ワ は ^ と表示されます)

では、先ほどのワークスペースをLOADしてみましょう。
)LOAD TEST
とタイプします。
こうすると、先ほどまでの一連の作業が読み込まれ、その続きとして作業が可能です。
再度 A とタイプしてみると 9 とでましたね。

      )SAVE TEST
00:20:16 03/07/21 TEST
      )OFF

CLEAR WS
      A
VALUE ERROR
      A
      ワ
      )LOAD TEST
SAVED 00:20:16 03/07/21
      A
9


 

TopPage


 

inserted by FC2 system