Comments
Description
Transcript
ROSEリポジトリいばらき (茨城大学学術情報リポジトリ)
ROSEリポジトリいばらき (茨城大学学術情報リポジトリ) Title Author(s) Citation Issue Date URL 計算機言語の比較 - II 稲見, 泰生 茨城大学教育学部紀要 自然科学(31): 23-31 1982-03 http://hdl.handle.net/10109/8096 Rights このリポジトリに収録されているコンテンツの著作権は、それぞれの著作権者に帰属 します。引用、転載、複製等される場合は、著作権法を遵守してください。 お問合せ先 茨城大学学術企画部学術情報課(図書館) 情報支援係 http://www.lib.ibaraki.ac.jp/toiawase/toiawase.html 23 茨城大学教育学部紀要(自然科学)31号(1982)23−31 計算機言語の比較 II 稲 見 泰 生 (1981年10月15日受理) Comparison of Computer Languages−II Yasuo I NAMi (Received October 15, 1981) じ は め に ここでは,YHP 9825 A(Yokokawa Hewlett−Packard K.K.)とBX−1(キャノンK. K) の両電卓の言語の比較(稲見,1980)に続いて,主としてファイルの取り扱い機能について述べ る。なお,HITAC10/10H(日立製作所K.K.)の使用できる入出力の標準機器は,データ・ タイプライタ,紙テープ入出力装置のみなので,ファイルに関しては特別な機能が用意されてい ないと思われる。ある一定の大きさの計算機でのFORTRAN語の入出力のためのファイルは, オペレータなどによる磁気テープの準備により,認識名などがテープ上に書き込まれているか, またはディスクを利用するファイルは制御カードにより,FORTRAN語で使用可能なように準備 されているのが一般的である。電卓では基本的には使用者が全部これらを準備するという複雑さ が残されている。なお9825Aではカセット。テープが, BX−1ではフロッピィ・ディスクが使 用される。記述の方法としては,最初にBX−1と9825 Aの各々のファイル機能を記し,後に 各々の特徴と長短所を述べる。なおBX−1についてはBX−1使用説明書4(CANON K.K., 1978)を,H 1 TAC 10/10∬については, H ITAC10/10 H 1パスFORTRAN(日立K.K.,1972) を,9825Aについては,パーソナル・コンピュータ9825A(YH PK.K.,1977)のマニュ アルを各々参照した。 1 BX 1 フロッピィ・ディスク(今後ディスクと略称)・シート1枚の容量は65.5KB(キロ・バイト) であり,すべてデータとすれば約8000個であ。1枚のディスク上には,プログラムとデータが 混在してもよい。ファイルに関する機能としては,大きく3つにわけられて,データの読み書き, プログラムの読み書き,ファイルの消去やリストなどに関するものがあり,上に述べた順序で記 述する。 1−1 データの読み書きについて “RESERVE”,“RECORD−D”, “LOAD−D”, “CANCEL 一 D”の命令があり, 24 茨城大学教育学部紀要(自然科学)31号(1982) RESERVEは,ファイル名,レコード長,レコード数を設定する。 RECORD−D, LOAD−D は各々データの記録,ファイルからメモリへの転送を実行する。なお,ファイルからメモリへ転 送することをロードという言葉を今後使用する。CANCEL−DはRESERVEにより,ディス ク上に確保したファイルのうち不要になったものを消去する。 {1) RESERVE RESERVE ファイル名 (n1,n2) ファイル名は,A∼Z,#など英大文字グループ45個の1個に記号%をつけて, A%, Z%, 巽%などのように名付ける。nlは1レコードの語長を示し, n2はn1語のレコードが何レコ ード使用するかを指定する。この命令によって,ディスク・シート上に領域が確保される。通 常のFORTRAN語では,制御カードにより,ファイル名の指定を要求されるが,他の部分は標 準化されているため何も指定しなくてよいのが通常である。 (2) RECORD−D RECORD−D 変数名,ファイル名(nl,n2) RECORD−Dは,データをディスク上に記録する。指定された変数の値が,指定されたファ イル上に第n1番目レコードからn2レコード分RESERVEで指定された形式で記録される。 なお,n2が省略されたときは,1が仮定される。 nl,n2は,演算式,数値,変数のいずれ でもよい。 (3) LOAD−D LOAD−D 変数名,ファイル名(n) LOAD 一 Dは,データをロードする。変数名ヘファイル名の第n番目のレコードからw一ド する。W一ドされる個数は,変数名の個数とファイル・サイズによって決まる。 上の(1),②,〔3)を使用した簡単なプログラム例をあげる。 例 DIM A(3) RESERVE X.0.V (3, 50) ・一一一一一・一・@ RECORD−D A(1), Xgo/ (N)・一・一・一@ ①では,RESERVE命令によりファイル名をX%とし,1レコード長は3語であり,全体と しては50レコードのファイルが定義される。②では,変数名Aの内容がファイル名X%の第N番 目から1レコード分ディスク上に書き込まれる。 例 DIM A(12) RESERVE XO/o (4, 20) RECORD−D A(1), XO/o (1, 3) ・一・一・一@ ヒの例は,複数レコードの転送例であり,①でAの内容がファイル名X%の第1番目から,3 レコード分転送される。 例 稲見:計算機言語の比較一 fi 25 DIM B5,A(3), C$(2) RESERVE X%(6,50) LOAD−D B 5, XO/o (N) ・一一一一@ 上の例では,①での命令により,ファイル名X%の第N番目のレコードからB5,A,℃$に データがw一ドされる。 原則として,RECORD−DとLOAD−Dでの変数名の指定は,個数の上で一致しているこ とが望ましい。さもないと上の例のように考慮していない変数の内容が破壊されてしまう。この 考え方はあまりよくないと思われる。 (4) CANCEL−D CANCEL−D ファイル名 CANCEL−Dは,不要になったファイル名とその情報をディスクから削除する。 1−2 プログラムの読み書きについて “RECORD−Pii, “LOAD−P’X, NNCA.NCEL−P”, NNL INKM, XXCALL”, “PROTECT”, “1・NST PROTECT”, “SECURE”, “INST SECURE”の命令がある。 RECO− RD−P, LOAD 一 Pは各々プmグラムの記録とn一ドを実行する。 CANCEL−Pは不要にな ったプログラムの消去を行なう。LINK, CAL:Lは,特殊な命令であり, LINKは,全体のプ ログラムが使用できるメモリを越えるときに使用される機能であるオーバeレイ構造またはリン クと呼ばれることを可能にするものであり,CAL Lは,ディスク上のサブ・ルーチンをライブ ラリとして使用可能にする命令であるが,これ以上の説明は省略する。 PROTECT, INST PROTECTは各々プuグラムの機密保護機能と機密保護解除命令で ある。PROTECTは1個のプログラムに対する機能であるが,1枚のディスク・シート全体の 機密保護機能としてSECUREがあり, INST SECUREはその機密保護解除命令である。 (1) RECORD−P RECORD−P プuグラム名 RECORD−Pは,メモリにある指定されたプuグラム名のプログラムをディスクに記録する。 (2) LOAD−P LOAD 一P フ。ログラム名 LOAD 一 Pは,ディスク上の指定されたプログラム名のプログラムをm一ドする。 (3) CANCEL−P CANCEL−P フ。uグラム名 CANCEL−Pは,ディスク上の指定されたプログラム名のプログラムを消去する。 (4) PROTECT, INST PROTECT PROTECTプログラム名 PROTECTは,指定されたプuグラム名のプログラムをディスクに書き込む命令RECORD −P,消去命令のCANCEL 一 Pが禁止されるという機密保護がなされる。この機密保護の解除 に“INST PROTECT フ。ログラム名” 命令が使用される。 (5)’SECURE, INST SECURE 26 茨城大学教育学部紀要(自然科学)31号(1982) SECURE xxxx SECUREは,1枚のディスク・シート全体に機密保護を行ない, xxxxは4桁の数字,文字 によるパス・ワードである。これとPROTECTの相違は, PROTECTが1つのプaグラムに 対しての機密保護に対して,1枚のディスク上の総てのプログラムに対して機密保護されること である。SECUREが実行された場合には,ディスク上のプログラム,およびこの処置を施した ディスクからロードされたプログラムに対して次の処置が禁止される。 ①プログラム内容の出力 ② プログラムの修正 ③フ。ログラムの削除 ④上のディスクに別のプVグラムを書き込むこと ⑤この処置が施されているプUグラムを別のディスクに移すこと 上の機密保護を解除するためには, NN INST SECURE xxxx”を使用する。 xxxxは, パスeワードで以前に使用者によって指定されたものである。 1−3 その他のファイル機能について “DISK:一 LIST”, “CONDENSE”の命令があり,DISK−LISTはディスクの内容 の情報を出力し,CONDENSEは,ディスクの歯抜けの状態をなくし,パックされた状態にする ための命令である。 Q) DISK−LIST DISK 一LIST DISK 一LISTは,ディスク上のプmグラムに対しては,プログラムの名前,大きさ(バイ ト単位),機密保護(プロテクト)されているか否かを出力する。ディスク上のデータに対して は,データ・ファイル名,!レコードの大きさ(語単位),トータルのレコード数(ただし,確 保されている数で実際のレコード数ではない。)が出力される。 1枚のディスク・シート上に歯抜けの状態にある時には“CO:NDENSE RECOMMENDED” のメッセージが出力される。 {2) CONDENSE CONDENSE CONDENSEは,ディスク・シート上の歯抜けの状態をなくし,パックされた状態にする。 2 YHP−9825A テープ・カートリッジ(今後テープと略称)1本の1トラック容量は,データを記録する場合, ファイル・サイズによって異なるが,40 KBから140 KBであり,すべてデータとすれば,約 5,000個から17,000個である。なお,1本のテープは25ラックから構成されていて,テープ の構造は図1,2のようになっている。 なお,ファイルヘッダの内容は“idf”命令で記述する。 9825Aでは,原則としてデータとフ。ログラムを一緒にして扱っていて,ファイルを取り扱う 機能は,大きくわけて次の4つである。ファイル・サイズを決める機能,データやプログラムの 読み書き,電卓のメモリ全体のテープへの読み書き(通常メモリ・ダンプと呼ばれる。),ファ 稲見:計算機言語の比較一R ック0 ック1 0 2 1 0 / テープ始端 始端 1 プアイル ギャップ フアイル ギヤツプ 4 3 27 2 ファイル ファイル テープ終端 テー .ロデータまたはプログラム 翅フアイルギヤツプ ヘッダ 本 体 1−i7Td,v 一 図2 ファイルの構造 図1 テープの構造 イルの消去やリストをとるものである。なお,次の説明中の記号“[ ]”は,パラメータの 使用のときに指定がなくてもよいことを意味しているものとする。なお,特別な使用法になるス ペシャル・ファンクション・キイの扱いについては説明を省略する。 2−1 ファイル・サイズの決め方について “㎜・k”があり,BX−1のRESERVEと同じ働きをする。 (1) mrk (mark statement) mrk ファイル数,ファイルサイズ〔,戻り変数〕 mrkは,テープ上にファイルを確保するために用いられる。ファイル・サイズは,バイト単位 である。ファイル数,ファイル・サイズは数式を使用してもよい。戻り変数には,最後にマーク された使用可能なファイル番号が代入される。なお,ファイル番号は0から順に番号づけられる。 次の例は,使用済のテープ上に320バイトのファイルを3個確保し,それに続く古い情報を消 去するプログラムである。 例 0:rew テープの巻き戻し 1:trk O トラック0を指定 2:mrk 3, 320, x 3:ert x+1 残りの部分を消去 4: end ここで,プuグラムのファイルeサイズの決め方は,“1ist−1”を実行させると,ディス プレイ上にプログラム長のバイト数が出力されるので,その数値をファイル・サイズにすればよ い。 データに対しては,1変数について8バイトが必要,すなわち1語は8バイトにしてファイル ・サイズを決めればよい。 メモリ・ファイルの場合,すなわちメモリ・ダンプと呼ばれるものは,メモリの大きさを指定 する。標準の9825Aのメモリ・サイズは8192バイトである。 2−2 データとプPグラムの読み書きについて “rcf”,“ldp”,“1df”があり, rcfはデータおよびプログラムを記録し, ldpはプロ グラムのu一ド,ldfはデータまたはプログラムをテープからm一ドするのに使用される。ldf, ldpの使用方法によってBX 一1で述べたオーバー・レイ構造またはリンクと呼ばれる機能およ 28 茨城大学教育学部紀要(自然科学)31号(1982) びテープヒのプログラムをライブラリ・サブルーチンとして使用できる機能をもつが,これ以上 の説明は省略する。機密保護機能を働かせる直接の命令はないが,rcf命令の1つのパラメータ として指定することができる。 (1) rcf (record file statement) rcfは,データおよびプログラムの全体または一部分を記録する。 プログラムの記録 rcf [ファイル番号[,開始ライン番号[,終了ライン番号]]] [,“SE”または 黙DB”] ファイル番号を指定しないと,自動的にファイル0を指定した効果と同じである。ライン番号 を指定しないとプログラム全体が,開始ライン番号のみを指定するとそのラインから最後のライ ンまで,開始ライン番号と終了ライン番号の両方を指定するとプログラムのそのラインの間の部 分が記録される。ファイル番号と終了ライン番号には,定数,変数,数式が,開始ライン番号に は,定数,数式が使用できる。 “rcf 1,A”は変数Aの数値データとして記録,㌧cf 1,1 A”は数式1A(1×Aの意味)で指定される番号から最後のライン番号までのプログラムを記 録する。 “SE” (secure)は,テープに記録されたプログラムを機密保護する。つまり,プログラム を再a一ドしても,そのプnグラムのリストや表示が禁止される。しかしテープに記録し直すこ とはできる。 “DB” (debug)については説明を省略する。 データの記録 rcf ファイル番号,データリスト ここでデータリストには,単純変数,配列変数,r変数のいずれをも使用できる。ただし, r 変数は,単純,配列変数とは隣接していない別のメモリにしまわれているので,r変数を単純, 配列変数のある同一のrcf文内で使用できない。また単純変数,配列変数は,メモリに割り当て られた順序と同じ順序でデータリストの中に並べられないといけない。dim(dimension)文に 書かれている変数は,その順序通りに書かねばならない。この変数の順序について制限事項は厳 し過ぎる印象がする。1月中配列の要素全部を記録するには,添字の代わりに記号球”が使用 できて, “rcf 2,S[*]”のように使用できて簡便である。 r変数を記録するにはさらにの 注意が必要であるが説明を省略する。 (2) ldp (load program statement) 1dp [ファイル番号[,ライン番号1[,ライン番号2]]] ldpは,指定されたテープからプログラムをメモリにロードし,そのプログラムを自動的に実 行させる。ファイル番号だけを指定すると,そのファイルのプログラムeライン0から後がすべ てロードされ,ライン0か日実行する。ファイル番号とライン番号1を指定すると,そのファイ ルのプaグラムが指定されたラインから後がm一ドされ,ライン番号1から実行する。3つのパ ラメータを全部指定すると指定されたファイルのプログラムが,ライン番号1からのプuグラム がロードされ,ライン番号2から実行する。3つのパラメータは,いずれも数式が使用できる。 (3) ldf (load file statement) 1dfは,データまたはプログラムをテープからロードする。 プWグラムのロード ldf [ファイル番号[,ライン番号1[,ライン番号2]]] 稲見:計算機言語の比較一E 29 1dfは,指定されたファイルのプログラムを,メモリにロードする・ldpとldpの相違は,1dpはフ。 ログラムを実行させるのに対して,ldfは続行(continue)させる。すなわち1dfでは以前に計 算された結果の値が変数に残されている。 パラメータを1つも指定しないと,ファイル0のプログラムがライン0から後にa一ドされ, ライン0から自動的にプログラムが続行される。他のパラメータの使用法は,実行と続行の相違 はあるが,ldpと同じである。 データのロード 1df [ファイル番号[,データリスト]] ldfは,データをメモリにロードする。 r変数は,単純変数や配列変数と同じldf命令内で使 用できない。 2−3 メモリ・ダンプについて “rcm”,Mdm”があり,電卓のメモリに貯えられている情報の総てをテープ上への読み書 きを実行する。 (1) rcm (record memory statement) rcm [ファイル番号] rcmは,テープ上にRWM(read write memory)の内容をすべて記録する。ファイル番号を 指定しないとファイル0を仮定する。 (2) ldm (load memory statement) ldm [ファイル番号] ldmは,上のrcmなどで書き込まれた内容をメモリヘロードする。ファイル番号の機能は上 の(1)と同じである。rcmが実行された時にフ。ログラムが実行中だった場合,1dmが実行されると, 前にrcmが実行された次の文からそのプログラムが続行する機能をもつ。 2−4 その他のファイル機能 “rew”, KX trk”, “idf”, “fdf”, “1tlist”, XNert”がある。 rewはテープの巻 き戻し,trkはトラック番号を指定する。 idfはファイルヘッダの内容を出力し, fdfは指定さ れたファイルを見つける。tlistはテープ上のファイルの内容の情報を出力し, ertはテープ上 のファイルを消去する機能をもつ。 (1) rew (rewind statement) rew rewは,テープを最初の位置に巻き戻す。 (2) trk (track statement) trk トラック番号 trkは,テープのトラックを0または1にセットする。電源スイッチを入れたとき,“RESET” を押した時,㌔rase”が実行された時には,トラック0が仮定される。 (3) idf (identify file statement) idf [ファイル番号[,ファイルタイプ[,使用されているファイルサイズ[,全体の ファイルサイズ[,トラック番号]]]]] idfは,現在のファイルヘッダの内容を,指定した戻り変数に代入する。なお,戻り変数とは, 30 茨城大学教育学部紀要(自然科学)31号(1982) 命令が実行された後に,数値が代入される変数である。ファイルタイプは,数値0から6によっ て,各々補助ファイル(または,ブランクファイル),バイナリィ・プログラム,数値データ, 文字列または文字列と数値データ,メモリ・ファイル(rcmで書き込まれたファイル),キイ・ ファイル,プログラム・ファイルを示す。 (4) fdf (find file statement) fdf [ファイル番号] fdfは,指定されたファイル番号の最初の部分に停止させる。ファイル番号は数式でもよい。 ファイル番号を指定しないとファイル0が仮定される。 {5) tlist (tape list statement) tlist tlistは,ファイルの内容の情報を出力する。出力される内容は,トラック番・号,ファイル番 号,ファイルタ4プ,使用されているファイルサイズ(バイト単位),全体のファイルサイズ(バ イト単位)である。ファイルタイプの内容は,idfのものとほぼ同じである。 (6) ert (erase tape statement) ert ファイル番号 ertは,指定したファイル番号から後の部分の情報をすべて消去する。通常はmrk文の後に実 行される。 この他のファイルに関する機能としては,バイナリィ・フ。uグラムをn一ドする1dp(load binary program statemeni),スペシャル・ファンクション・キイのテープへの書き込みをす るrck(record key statement )やそれらをファイルからu一ドするldk(load key statem− e就),ファイルへの書き込みの際に内容が正しいかどうかを照合するave(auto 一 verify enable st・at・em・ent)やその機能を取り止めるavd(auto−verify disable statement),テープからva 一ドされた時点でメモリとテープの内容が一致しているかを調べる。vfy(verify statement) があるが,これらの命令については,詳細な説明は省略する。 3 お わ り に BX−1とYHP一 9825 Aとのファイル機能について述べたが,9825 Aの方が,機能として は大変優れていると思われる。しかし,一方初心者にとっては,使用上難かしいのではないかと 推測される。原則的には,BX−1程度のファイル機能をもてば充分ではないかと思う。 ファイル取扱い上での両電一丁の特徴は,9825Aではプログラムとデータをほとんど区別しな いが,BX−1では明確にプログラムとデータを区別して取り扱う点である。 BX−1のRESERVE,9825 Aのmrk命令は,類似の機能をもつが,これらの命令を使用 しなくても標準的なファイルが目動的に構成されることが望ましい。 BX−1ではLOAD−D,9825 Aでは1df命令でのロードされる個数より変数の個数が少な いと使用者には直接わからない変数にデータがロードされてしまう。このことは転送速度をあげ るためと思われるが,この処理方法はよくないと思う。 電卓というレベルを考慮するとフWッピィ・ディスクかまたは磁気テープのどちらが有利かと いう点は,筆者には判断がつかない。 稲見:計算:機言語の比較一一∬ 引 用 文 献 日立製作所株式会社.1972。HITAC lO/10旦 1パス FORTRAN。 稲見泰生.1980.計算機言語の比較一1.教育学部紀要(目然科学),30,17−25. キャノン販売株式会社。1978.CANON BX−1 使用説明書4. 横河・ビューレット・パッカード株式会社.1977.パーソナル・コンピュータ 9825A 使用法およびプログラミング. 31