APL
言語の有効利用
水産学部 大 西 修 平 , 松 宮 義 晴
1
はじめに
APL
とは
A Programming Languageの略称であり、
1957年に J v e r s o n 博士(米国)により考案されたものである。その原形は
FORTRANとほぼ同時に 誕生したもので、パソコンの汎用語として普及している
Ba s
ic より長い歴史を持つ。
APL
はコンピュータ用ではなく、数値解析、探索手法などの処理手順を簡潔にかつ正確に記 述するための、表記法
(notat on)'として創出された。人間のアルゴリズムのため の単なる表記法として出発した
APLはその汎用性や高性能が認識されて、プログラミング言 語として開発された。
APL
プログラムはベクトルや行
91j0j)演算が簡単に記述で、きるので、ステップ数、文字数の 少ない簡潔なものとなる。
Ba s i c などと同様に対話型言語である。近年、大型計算機と同 等の
APLがノマソコン上で稼動できるようになったこともあって、事務・科学技術計算などの 分野を問わず広く利用されるようになった。本報告は
APLの強靭な表現力と様々な長所を多 くのユーザに知ってもらうことを主目的にしたもので、経験者向けの実際の技術解説は一部に とどめている。
2 APL
の概要と特徴
APL
は函数型の言語で、その函数は原始函数
(Primit ve Funct on)とユーザ定義函数
(User Defined Funct on)に分けられる。原始函数 (基本的な演算子)には
APL特有の記号が割り当てられ、定義函数はいわゆるサフツレーチン に似たものである。
APLプログラムとはこれらの函数を含む
1つの式であり、 ( )がない 限り、後から、即ち右から左へ実行される。これらはコンピュータの数式解釈の手聞を省き、
実行速度や式の読解を速くする利点にもなっている。
!京始函数と定義函数はすべて
O、
l、
2個いずれかの引数を持ち、それぞれ
O項、単項、
2項函数と呼ばれる。引数としてスカラ、ベクトル,行列を含む配列が許される。単項函数は右 に 、
2項函数は左右両側に引数そ持つ。例えば
X、
Yを同じ大きさの行列とすると、
+Xは
Xの各要素の逆数を求める単項原始函数、
X+Yは
Xの各要素を
Yの対応する要素で割った商を 求める
2項原始函数である。原始函数には四則演算、平方根 X 吹
O. 5、自然対数@ X、底が
2
の対数
2⑧X、
Xの形状を調べる
ρX、
Xを
4x 5の行列に形状を変えるための
4 5pX、
行列の転置、
Xなどがあり,同じ記号でも単項函数と
2項函数では機能が異なる。
さらにAPLではいくつかの作用素が用意されていて,内積+. X、外積ρ x、総和+/、
累積和+¥などの計算が簡単に表現できる。 XとY'の行列積はX+.X、、Y、外積を利用し
て3x3の単位行列は(1 2 3)
少 . = 1 2 3と書ける。論理数は真がl、偽がOで それらは数値として漬算することも出来る。 +/XはXの行和(横方向の和)でその結果はa 次元ベクトル、十/ Xは列和(縦方向の和)を表わしその結果はb次元ベクトルとなる。十¥
Aは横方向の累積操作、 +¥Xは縦方向の累積操作を表わしその結果はaxbの行列である。
定義函数の中では原始函数は無論、他の定義関数を使用することができ、さらに自分自身を も使用可能である。 APLインタプリタは原始函数、定義函数が引数をいくつもつか、変数が スカラかベクトルか行列かなどを記憶しており、それらをチェックしながら実行していくので、
タイプが合わなければそこでエラーメッセージを出して実行を中止する。いまAPLの式とし てA B Cがあるとする。 Bが2項函数であればA、Cは引数でなければならず、 Bが単項 函数であればCが引数、かつAが単項函数で、 Aの引数はB Cの計算結果となる。
APLの特徴を整理すると、
①函数型の言語である(モジュールの集合として表現する)。
②演算の対象は配列である(データ項目の集まりを配列と総称する)。
③インタプリタ型である(語宣言文などは不要でぇ APLではワークスペースと呼ぶメモリ を有効に利用できる)。
④構文が単純であり、意味上の規則も少ない(指定、分岐、その他の文の3種類のみ)。
⑤実行順の制御が簡単である(1種類の文ですべての型の分較を実施)。
元来、表記法としての流れを継承しており、コマンド自体、数式に近い表現である。これらの 特徴は、数値的・論理的関係を簡潔に、かつ正確に表現できることに集約されよう。
‑41 ‑
3 APLの機能と他言語との比較
上記の特徴をふまえて、 APLの機能を他の言語と比較してみよう。一般的な言語では処理 すべきデータを‑liメモリ上の配列に記憶させ、ループ(繰り返し)を用いて計算を進めるこ とが多い。定義された配列が重要な地位を占め、コンビュータが最も得意とするループが頻繁 に使われる。
一般に配列(または配列変数)は2元配列(行列型)、 1元配列(ベクトル型)、スカラに 大別される. BasicやFORTRANではループコマンドが準備されている。例lとして
※
( 1 )
3 x 3行列をつくり、※( 2 )
主対角成分を抽出してベクトルをつくり、※( 3 )
そのベクトルの 成分を合計するという一連の作業を示そう。[例1]
10 DIM M(3.31.V(31.S(11 20 FOR 1=1 TO 3
30 FOR J=1 TO 3 40 READ M(I.Jl 50 NEXT J 60 NEXT 1 70 FOR 1=1 TO 3
80 V(ll=M(I.!1 90 NEXT 1 100 FOR 1=1 TO 3 110 S(IJ=S(11+V(ll 120 NEXT 1
130 DATA 1.2.3.4.5.6.7.8.9 140 END
このようにBa s i cやFORTRANでは配列の 次元の定義'、 大きさの定義'と ル ープの構築'といった手続きにより処理が進行する。
APLでは上記のような一連の手続きを必要としない。即ち行列、ベクトル、スカラの定義 (種類と大きさ)をする必要がなく、システムが自動的に識別してくれる。
[ 例
2]V ... 1 2 3 4 ̲5 6 5←6
例2では変数Vはベクトル、変数Sはスカラとして扱われる。また一度入力したベクトル、ス カラ、行列の型を変えることも可能である (V←2 3pVで2x3行列に変形)。
一般の他言語では 指数' 三角' 平方根' 四則'などの函数がコマンドとして準備さ れている。 APLにはスカラを変数とした上記の函数のほかペクトルや行列を 1個の'変数 として扱う函数も準備されている。転置、主対角成分の抽出、内積、外積、総和などのコマン ドがそれに該当する。転置、総和、ペクトルの内積、外積について、 B
a s
ic
言語と比較し てみよう(例3‑6)。行列の漬算はループが大部分を占めること、一般の科学技術計算では 行列漬算が不可欠であることを考えれば、 APLに数式に近い行列演算用函数が準備されていることがプログラムを簡潔で、正確なものにしているといえよう。
[ 例
3J転置
APL
n3
00
司r
ハ0
5
‑ 噌
M川
勺Jwbrl a仰
︽1‑勺u
m U 1A
勺u
↑
﹄ ↑
ヤAM川H附M附
100 MT(
I .
Jl=M(J.Il 110 NEXT J120 NEXT 1
130 DATA 1.2.3.4.5.6.7.8.9 140 END
10 DIM M(3.3l.MT(3.3l 20 FOR 1=1 TO 3 30 FOR J=1 TO 3 40 READ M(I.Jl 50 NEXT J 60 NEXT 1 70
80 FOR 1=1 TO 3 90 FOR J=1 TO 3
BASIC
(右へ続く)
n u
l nヨ
︒ ︒
司f
n b
T U 5 P A 4A . 3 V
J J
今‑ +
1a
↑
↑削V 5
80 NEXT 1
90 DATA 1.2.3.4
,
5.6.7.8.9.10 100.END10 DIM V(10l 20 FOR 1 = 1 TO 10 30 READ V( 1 1 40 NEXT 1 50 SUM=O
60 FOR 1=1 TO 10 70 SUM=SUM+V(ll
[ 例
4J総和
BASIC
[ 例
5Jベクトルの内積
APL
nu nu
‑
‑ 9 9
︒ o n D ‑
ヴF
弓 ー
ハ ロ ︽
b
Ri
vR
dロU
44・
x
nJ qu
・
つ ‑ う ‑ +
tLTAAH
↑ ↑
↑
九 時 ロU戸︑
80 NEXT 1
90 DATA 1
,
1,
2.2 . 3.3 • 4.4 . 5.5 100 DATA 6.6 . 7.7 . 8.8 • 9.9 . 10.10 110 END10 D!M A(10l.B(10l 20 FOR 1=1 TO 10 30 READ A(!l.B(!l 40 NEXT !
50 C=O
60 FOR 1=1 TO 10 70 C=C+A(!l*B(!l
BASIC
[ 例
6Jベクトルの外積
APL
nu nu
‑‑
99
000
0
勺i
mf
n b
n 口 55B
4
・4
×
つ
iuq JU
・
今 回 つ ‑ っ
'i 1i aA
↑ ↑ ↑
品
目白
U Fし
90 NEXT !
100 DATA 1
,
1 . 2.2 • 3.3 . 4.4 • 5.5 110 DATA 6.6 . 7.7 . 8.8 . 9.9 10.10 120 END‑43 ‑
DIM A(10l.B(10l.C(10.10l FOR 1 = 1 TO 10
READ A ( ! 1 . B ( 1 1 NEXT 1
FOR 1=1 TO 10 FOR J=1 TO 10
C(
I .
Jl=A(!l勢B(J) NEXT JBASIC
nu Au nu nu nu
内U
nu nU 1A
つ
‑qu 4・
RdQU巧f只u
APLプログラムの大きな構成を他の言語と比較してみよう。 APLの代表的な特徴は函数 型言語であった。 Bas c
や
FORTRANなどのプログラムはモジュールの集合ではなく、モジュールとプロシジャがいわば混合した形になっている。一方、 APL、LISP
や
C言語 ではモジュールの集合体として記述される。 APLは対話型とパッチ型の両面をもちあわせて おり、パッチ型の入力に慣れればむしろそちらが便利といえよう。 APLはファイルのOPEN‑CLOSEコマンドを必要とせず、 ユーザは莫大なメモリ領域をもつことができ、
その中にプログラム、データを同時に保持できる'という利点をもっ。これはアクセス時閣の 短縮に貢献するものでもある。
以上を総合して簡単な例を挙げて説明しよう。
[例7] 1 n
[ ( J
J[ ' 1
J [2J [3JA門
﹁μ ﹂
l L
HUAHU
Dρ
︒
3門
M H M H m U
3国 ↑
↑ ↑
↑ 勺
ι
2門 門 門
M川 ‑
J 寸
﹂ 寸
J
n u ‑
‑
ウ ム r L
阿
l h
旬
W I L
PROGRA
門
A門
2←門
ODULE A門
3←門
2+.x門
2E
例7のEはメインプログラムであり、 Iはモジュール、いわばサブルーチンに該当する。 Eの [ 1 ]行自にサブルーチンがきている。 APLではこのモジュールがさらに拡大され大規模な ものとなり、ユーザによって私用ライブラリとして蓄積される。したがってモジュールを計画 的に、汎用性をもたせて設計するならば、あらゆるプログラムに10のモジ、ュールを重複して 使用することが可能である。 APLはパッチ型言語の特徴を有し、 Iは 変数Aを抱いて走る'
という概念をもっと理解が深まる。
ユーザ、の保持できる莫大なメモリ領域とプログラムとデータの共存について説明を加えよう。
先に 変数Aを抱いて走る'と述べたが、変数Aはどこに保存されているのであろうか。
APLではプログラムとデータの保存領域の区別が弱く、共存という考え方がとられている。
その概念をFORTRANとの比較も含めて図lに示した。
[図1]
APL FORTRAN
デ ー タ
プ ロ グ ラ ム デ ー タ デ ー タ
プ ロ グ ラ ム デ ー タ
プ ロ グ ラ ム デ ー タ プ ロ グ ラ ム
デ ー タ デ ー タ
プ ロ グ ラ ム プ ロ グ ラ ム
デ ー タ プ ロ グ ラ ム デ ー タ
プ ロ グ ラ ム
デ ー タ OPERATING SYSTEM OPERATING SYSTEM
APLにはワークスペースという概念があり、 1人の利用者が複数のワークスペース(例え ば科学技術計算用、事務処理用)をもつことが許される。データとプログラムは個々のワーク スペースの中で完結し、管理され、ワークスペース聞の移動も可能である。こうした管理の長 所はデータの整理がしやすく、ファイルのOPEN、CLOSEの手順が省けるなどの点にあ
る。
以上に述べたようにAPLは他言語と比較していくつもの特徴と長所を持ち合わせている。
APLが実際に有効利用される分野は科学技術計算、即ち数値計算、統計計算であろう。特に 行列計算の表現・漬算がひどく容易で速いという特徴により、行列を多用する分野において特 に有効であるう。非線型最適化法においてはヤコビアン、ヘシアン行列がデータ数に応じて拡 張される。他言語によるこれらの演算は莫大な時聞を要し、プログラムの記述には過大な労力 を伴う。その他、偏微分方程式の解法、 FFT、多変量解析法、構造力学で最近脚光をあびて いる有限要素法においてもAPLの利用は有効である。 APLの実力が発揮できる分野は枚挙 にいとまがないといえよう。
hh
d
a
斗 ・4 APLによるデータの移送と他言語との互換
APLの短所は汎用ライブラリの蓄積が少ないという点につきょう。利用者の多い言語は対 応するライブラリが多く開発される。 APLの利用者は少なく、ライブラリの少なさに波及し ている。現状でAPLをより有効的に利用するためには言語の長所だけを取捨選択する必要が あろう。言語とハードウェアを総合してその長所を表1にまとめた。
[表1]
汎ラ用イブラリ
計算速度
Graphic手(軽吏用さ制限の少なさ) 思考と実行の ギャップの少なさ
大
F型
O機
RTRANO O
ノマソコン
BasicO O
大型機
APLO 。
スーノマーコンピュータ 。
FORTRAN
表1の 思考と実行のギャップの少なさ'とは換言すれば、問題を解くための労力、問題の 生起から解決までの時閣の短縮と考えてよい。 APLは巨大な電卓とも考えることができ、簡 単な四則漬算から莫大な数値計算までこなすことが可能である。演算の函数がベクトル、行列 にまで拡張され有効な機能を持つことは前述した。
言語の長所の取捨選択とは、データをあらゆる型の計算機閣でやりとりすることに換言でき ょう。
[図2]
liQ~
PERSONAL CO阿PUTER
図2に示すように、大量のデータを保持する利用者が、※
( 1 )
そのデータの特定の部分を抽出 し、※( 2 )
ある数学的展開によって変形し、※( 3 )
さらにそのデータを統計処理する、という場合 を想定しよう。( 1 )
の場合のデータ管理はパソコンをデータペースとして活用するのが最適であ る。 (2)の場合は図2の①②によって転送されたデータをAPLで処理することが有効である。(めの作業は統計ライブラワの豊宮さ、潰算の速さからFORTRANを用いるとよい。つまり
③④方向への転送が必要となる。計算の終了後は⑤⑥の経路によりパソコンに戻すのがよい。
豊富なGraphic機能も生かせるからである。
実例として
APLとパソコン聞のデータの移送について示そう。著者らが東京の統計数理研 究所と行った共同研究では莫大な行列の潰算が必要であり、アルゴリズムは必然的
lこ
APLに 決められた。長崎大学の
FACOM‑M360 OS‑IVの
APLでは計算機能が弱体なため、
統計数理研究所の
HITAC‑M280H VOS3で演算することになった。この場合、パ ソコンでデータを管理し、必要部分をフロッピィに抽出し、統計数理研究所でパソコン一大型 の通信によりデータセット上に転送する。さらにデータセットと
APL聞の転送をすれば、長 崎(長大)のパソコン内に管理されたデータが東京(統数研)の
APL上に移送できるのであ る。以上の概念を図
3に示す。逆転送すれば計算結果をパソコン上に戻すことも可能である。
[図3J
NAGASAKI
TOKYO
ー 穏 に ロ ノ
PC1221APL
WORK
SPACE
HITAC M‑280H VOS3 (HITACHU
複数の処理すべきデータは
MS‑DOS版
N88‑BASIC (86)を用いて、
MS‑DOS
のシーケンシャルファイルとして整理した。レコード長は
80とした。複数の処理すべ きデータを連結して図
4に示すレコード長
80のシーケンシャルファイルとした。斜線部分に は個々のファイル名を入れアスタリスクはファイルの切れ目を意味する。長大からのファイル は通信用プログラム、
TERM98TN'(統数研の中村隆氏作製)により
HITACの データセット上に転送した。‑.E!.セーブしたデータセットを今度は
APLのワークスペースへ 転送する必要があり、図
5のプログラムを使用した。
[図4J
‑47 ‑
*
1 S S UE'はデータセットとAPLを連絡するプログラムである(統数研の仁木直人氏作
製)
0 A P Lには 補助プロセッサ'と呼ばれる拡張装置があり、 OSレベルのコマンドの呼 び出し用、共用変数を用いたデータセットの出力用、などが準備されている。ユーザがAPL セッションを開始後、 ISSUEを実行すると、口SVOコマンドにより共用変数が提供され、データの連絡が可能となる。エラー表示がなければ連絡は成功したとみなされる。
データをAPLに取り込むために READDATA'を実行する。このプログラムは順編 成入出力プロセッサ(プロセッサ番号111番)によりデータをAPL側へアクセスするため のものであり、成功した後は15行自の表示がなされる。ここで注意すべき点は6
,
7行自の 後半の部分、つまり、 DEBC'、 'CTL'の記述で、 HITAC IBMなどシステム の相違によってオペランドが変わる場合がある。実際のプログラムの運用の方法、入力方法を図
6に示す。プログラムがワークスペース上にあれば以下のとおり入力すればよい。以上によ り、データセット上のデータがAPLワークスペースへ DATA'という名前で送り込まれ る。[ 図
5][0] ISSUE CHD;TSS;RC [ 1]
→(2=1000SVO
'TSS'J/GO[ 2 ] →
p
口←'**UNABLE TO COHHUNlCATEむ
lTH TSS [l SSUE],
[3] GO:TSS
←
CHD[ '1]
[ 5]
[6 ]
[7 ] [8 ]→【o1 2 '1'1斗 =RC
←
TSSJ/O,
ERC.ATTN.ERD‑+p口←'安*ERROR! RETURN CODE←, , (亨RC),' [lSSUE]' ERD:
→
p口←'**SYNTAX E旦ROR [lSSUE]'ERC:‑+p口←'脊*UNEXECUTABLE COHHAND [ISSUE]' ATTN: '女*ATTENTION! [lSSUE]・
[0] DATA
←
FlELD READDATA FILE;REC;CTL;CC;F;L;S;1 [ 1 ] L←((pS..tO).I"l
)/ρFl
ELD[2] FL:S"S,(FIELD[1;1]+tOfFIELD[2;I]J,1 [3] -+(L~I..I+l 】 /FL
['1] L
←( f/
S)ー1[5] DATA"'(O.pl←1. p5) p I
[6] REC
←
FILE,
'(DEBC'[7] CTL..
Fl
LE. ' (CTL'[8 ]
→(2 2
メ111 ロSVO2 3 p守 尺
ECCTL') / EOP [ 9 1 【(REC=O)ACTL=O)/CV[10] EOP:‑+p口←'**FAILED TO OPEN THE FILE (' ,FILE, ') .READDATA' [11] LP :DATA<‑DATA
,
[11 F[12] CV :F[ ('ー'=F←(' ',LtREC)[S])/l]←・ー, [13] ‑+(0 12 '141 =CC
←
CTL】/LP,
EOF,
EOP[14 ] →pO←'*大DETECTED AN 1/0 ERROR (ERROR CODE
= '
,(苓CC),') .READDATA' [15] EOF: '**NUHBER OF RECORDS =' ,(苓1tpDATA)・, .READDATA'[図6J
ISSUE 'ALlOC DD(FIlEl DS(DATANA
門
E.DATA1' FIELD←
2 ρ 1 80DATA
←
FIElD READDATA 'FILE'著者らによる実施例では複数のファイルを連結したものであり、個々のファイルに切断する 必要が生じる。これは図?に示した GODECODEDATA'で実行できる。なお DE
CODEDATA' 'CHRCNVT'はそれぞれモジュールと考えてよい。 APLではマイ ナス記号とネガティブ記号が別にあり、 J1 Sコードのマイナス記号をAPLの内部コードへ 変換する際、マイナスが
W'
に化けてしまう。したがってマイナスは積極的にネガティプに 変換する必要があり、 'CHRCNVT'はその作業をするものである。これらの手!噴に従えば
APLとパソコンの有機的利用が可能となる。APLからパソコンという逆転送法の手順は下記の通りで、プログラムを図8に示す。
①EDITモードでデータセットの行き先を作っておく。
(F////. EMPTYDATA.DATAという名で空のままSAVEする)
②
APLセッションを開始する。③
ISSUE口← ALLOCDD (FILEOUT) DS (EMPTYDATA. DATA),
~④
DATA←
GOENCODEDATA ENTRY ~⑤
DATA WRITEDATA FI LEOUT'♀
⑥パソコンと大型機聞の通信を行う。
※③と⑤のFILEOUTの部分は閉じ名前を用いる。
④のENTRYは持ち出すべきファイル名を文字行列型に並べたもの。
[図7J
(01 GOD~COD~DATA DATA;D;[
[11 A****女 F[LE DATA FORHAT ,0 APL VAR[ABLES [21 LOOP:
→
(0注
1tpDATA)ILEND(31
←
1十DATA[;11l'女 '('11 D争 ' ー ー
,
CHRCNVT(([‑j),
80)tDATA(51 DECODEDATA D
(61 DATA<‑([
,
O】.DATA(71 ーかLOOP
(81 LEND:
(01 DECODEDATA DATA [11 V
← ,DATA( 1; 1
[21 DATA←
1 0 .DATA
(31 DATA←企,
DATA
('11 企V
,' ←DATA'
T 内y
ι v
s
内
v
nv
l
︐m4
[
FU↑ ]
市︐
︐ .
‑F T
内VL
/
︑ ︐
nU
14L
a﹃ . ︐ ︐ ︐ [
﹀ C T S
= T
.
︐ 申
$ 令
T f T
t p
T T o
vvO
﹃ ︐
N 0 C
c'+
R T Z
H P
↑
円u
fu
nl
v 争P C T
︿
↑
T O
T ‑
‑ t
m 4 n
︾
r L M
今I l l
n V 4 a
・9 ι
[ [ [
‑49‑
[図8J
(0) DA
1 '
A←
GOENCODEOA1 '
A VARS;NAHE[ I J R***** A?L VARIABLES
1 '
0 FILE DA1 '
A FORHA1 '
合 * 安 安 *(2J
DA7 '
A・ ‑ 0 8 0 ρ『
(3J LOOP:
(~J -(O~ltpVARS)ILEND
( 5 J 口← NA I1 E~ , VARS(1; J ( 6 J V AR.5 +‑ 1 0 • 1 ARS '
(7J DATA~DATA , [11' ー一 , CHRCNV
1 '
ENCODEDATA NAHE (a J ‑LOOP[9J LEND:
[OJ DA
1 '
A←
ENCODEDA1 '
A VAR;D;L [ 1 J L~80[2) DA
1 '
A←
(I,
LlpLt.¥'AR [ 3 J D←不全.VAR[~ J D ←( ( r (pD)ーL).L 1ρD.Lp' [5) DATA
←
DATA.[I) D [6J DA1 '
A←
DA.TA.[I) Lt・ 世 '
[0) DATA WRITEDATA FILE;REC;C
1 '
L;CC;LR;S;L;I1;N;1 (1) LR←
8口(2) DA
1 '
A← 【
(N+‑.I‑j.S).N← ー
1tS←
pDATA 1 pDATA (3] DA1 '
A← ((l1
xNl.LRlp(I1.LRxN←
r N+LRl tDATA (4)R . E
C‑F[ U: • ' (DEBC'
[5) CTL
←Fl
LE.' (CTL'[6] "'(2 2メ11j
口
SVO2 3 p'RECC1 '
L' l/EOP [7J "'((REC=OlACTL=O】ICV(8) EOP:"'p口←'**FAILED
1 '
0 OPEN THE FILE (' .FILE,
'l・
WRITEDATA' (9)LD: ゅ (O~j 十 pDA 1' A ← 1
0 +DATAl/EOF[10] CV:REC
←
DATA[ 1;)[ 11 ] ーや(012441 =CC
←
CTL)ILP,
EOF,
EOP[ 1 21 ゅp口←'女官DETEC
1 '
ED AN 110 ERROR (ERROR CODE='.(平
CC).' ) ・WRI1 '
EDA1 '
A' [131 EOF:'安*NUI1BER OF RECORDS=' ,(苓
I1xN),'
.WRI1 '
EDA1 '
A'5 ;toわりに
コンビュータサイエンズ 計算理学'と称される新しい学問分野を生み出しただけでなく、
今やコンビュータは人聞に似た柔軟さも備わり、擬似実験装置として各分野に幅をきかせよう としている。このような分野が本当に確立しているかどうかはさておき、科学計算という元々 の利用法も含めて、コンビュータは人聞が現在もち得た 最も高級な道具'といってよかろう。
しかし著者らの専門としている水産学の分野では所詮、永遠にコンピュータは 創造しない道 具'の域をでないであろう。
人聞がいつも挑戦している 創造的研究'の時間づくりに、コンビュータの有効的利用・効 率的活用が必須な時代がきている。マイクロエレクトロニクスの進歩により、コンピュータの 利用法はさらに高度化・多様化していくであろう。科学には不可欠であっても、人間には退屈
そのものの計算・統計処理・作図などをコンビュータが肩がわりし、人聞が創造的研究に力を 注ぐことを手助けしてくれるのである。
我々コンビュータのユーザ、にとって、ハードウェアの選択の範囲は狭い。一方、ソフトウェ アに関しては選択の大きな自由度が与えられている。 APLはその自由度を最大限生かし、我 々に多くの創造的時間を与えてくれる言語であると判断している。本稿では割愛したが、 FA COM OSIV上でのAPLパッチ処理についても開発中である。長崎大学情報処理センター のAPL演算機能が向上することを切に願っている。 FORTRAN
や
BASICで何重ものJ レーフ.を回すことに生きがいを感じ、コンピュータを無二の親友としている方は別として、こ の拙ない解説を通じ一人でも多くの方々がAPLに接し、 創造的時間'をつくっていただけ れば幸甚である。
‑ 参 考 文 献 一
音川 勲(1980) ちょっとおもしろい書語 (APL)
長崎大学情報処理センターセンターレポート,第l
号
.69‑77. Niki. N(1981) :APL. Programmes for Canonical'Correlation Analysis ofCategorical Data. Computer Science Monographs. NO.16. The Institute of Statistical Mathematics. 32PP.
中 村 隆 (1985) パーソナル・コンビュータ (NEC/PC‑980 1シリーズ)によるT SSフロントプロセッサTERM98TN.統計数理,第33巻,第2号.221‑ 249.
竹内 寿一郎(1985) : 2元表離散データ解析のためのAPLプログラム,
応用統計学.vol.14. No. 3.131‑142. 堀 江 賢 治 ( 1985) : A P Lの使用法
東京大学大型計算機センターセンターニュース .vo 1. 17. No. 1. 29‑39. 山 本 和 男 ( 1986) : vos3 APLの使い方
東京大学大型計算機センターセンターニュース .vo 1. 18. No. 1. 42‑50.
﹁h
u
‑ APL
言 語 の 入 門 書 一
金 子 章 弘 ( 1981) : A P L
入門,オーム社.
竹 下 亨 (198
1>プログラミング言語
APL.共立出版.
竹 下 亨 ( 1982) : A P L 8
週間,共立出版
北 野 利 雄 ( 1985) : A P L 6 8 0 0 0
プログラミング入門,啓学出版.
一参考マニュアルー
FACOM OSN/F4 MSP APL文法書 FACOM OSN/F4 MSP APL使用手引書
ーパソコンに関する
APL‑月刊アスキー(1
985) : A P Lその世界. 4月号
.280‑287.(パソコン用
APLは
DYNAX APL/舗などが市販されている)
内r