• 検索結果がありません。

小記憶容量計算機用BASICプログラムの実行速度向上法

N/A
N/A
Protected

Academic year: 2021

シェア "小記憶容量計算機用BASICプログラムの実行速度向上法"

Copied!
5
0
0

読み込み中.... (全文を見る)

全文

(1)

小記憶容量計算機用BASICプログラムの実行速度向

上法

著者

永田 昭三

雑誌名

鹿児島大学工学部研究報告

24

ページ

111-113

別言語のタイトル

IMPROVEMENT OF THE EXECUTION SPEED OF BASIC

PROGRAM

(2)

小記憶容量計算機用BASICプログラムの実行速度向

上法

著者

永田 昭三

雑誌名

鹿児島大学工学部研究報告

24

ページ

111-113

別言語のタイトル

IMPROVEMENT OF THE EXECUTION SPEED OF BASIC

PROGRAM

(3)

REMVARIABLES PRINT‘‘START', LETAO=o LETA1=O LETA2=O LETA3=o LETA4=o LETA5=o FORI=1TO2000 LETAO=AO+AO+AO+AO NEXTI PRINT‘‘END,, E N D 変数を探す時間を測るプログラム 永 田 昭 (受理昭和57年5月31日) IMPROVEMENTOFTHEEXECUTIONSPEEDOFBASICPROGRAM ShozoNAGATA InBASICprogramsrunningonsmallmemory-sizepersonalcomputers,variablesandstatements areorganizedintofilesofwhichrecordsareaccessedsequentially・ Theprogramexecutionspeedisimprovedbymeansofrearrangementofrecords: 1)variablesaccessedfrequentlyareaddressedatthetopoffile, 2)subroutinesareplacedbefbrethemainprogram Anexamplerunsabout40%faster.

岨加如判犯印加帥卯帥⑩加犯乱

11111

小記憶容量計算機用BASICプログラムの実行速度向上法

1 . 緒 言 半導体素子の性能が向上し,価格が下がった結果, 8ビットの小形計算機が急速に普及している.使用言 語はBASICである.これの特長の1つは記憶容量が 小さくても使えることである. 記‘億装置の番地は16ビットで表現され,0番地か ら65535番地までを扱い得る.その半分程度の記憶容 量しか持たない計算機でもBASICは使用可能である. しかし,そのような計算機では,プログラムを解読実 行するインタープリタに多くの記‘億容量を割り当てる ことができず,その性能に制約が生ずる.すなわち, プログラムの作り方によって実行速度が速くなったり, おそくなったりする. 本報告ではデータ領域の構造とプログラムの構造を 調べ,実行速度を速くする方法を述べる. l00LETA5=A5+A5+A5+A5 図1−2プログラムの変更 探さねばならない.所要時間は18.2秒であった. 次に行番号100の文を図1−2に示す文に書き直して 所要時間を測ったら,22.9秒を要した.変数A5を探 すのに要する時間がAOを探す時間よりも長かった. 2 . 変 数 へ の 番 地 割 り 当 て 2.1実行時間の測定 図1-1のプログラムの実行時間を測る.ディスプレ イにSTARTが出てからENDが出るまでの時間を 測る.その時間は行番号100の文を2000回繰り返す 時間であり,その時間内に変数AOの番地を10000回 2.2データ領域の構造 このBASICのプログラム中では,変数名はその文 字に相当するコードに変換されて記憶され,それに割 り当てられる番地は不明である.

(4)

112 1 0 R E M G O S U B 20PRINT‘‘START,, 30GOTO50 40RETURN s0FORI=1TO2000 60GOSUB40 7 0 N E X T I 80PRINT‘‘END,, 9 0 E N D 100RETURN 図3−1行番号を探す時間を測るプログラム CFF6番地 CFFF番地

図 2 変 数 の 構 造 と 配 置 変数の値は記憶装置の末尾,例えばCFFF番地, から前に向かって格納される.格納の順序は,プログ ラムを実行した場合にプログラム中に現れる順である. 図1-1のプログラムでは,変数への番地割り当ての順 序はA0,A1,A2,A3,A4,A5,1の順である.図2は 下から上に見て行く. 変数A5を探したければ,まず1番目の変数名を調 べる.これはAOであり,A5でない.「次の番地」の 位置にCFF6と書いてある.これを見てCFF6番地 の変数名を取り出して調べる.以下,矢印の順に調べ て行くことにより,欲しい変数が見つかる. このようにデータを始めから順に探すファイルは順 編成ファイルと呼ばれる.このBASICのデータ領域 は順編成ファイルである. 60GOSUB100 図3−2プログラムの変更 測定される.所要時間は13.2秒であった. 次に行番号60の文を図3-2のように訂正したら, 時間は15.2秒であった.行番号がプログラムの先頭 に近い程,短い時間で探し出される. 3.2プログラムの構造 命令GOSUBに続く行番号はプログラム中では定 数の形式で記‘億され,番地を指さない. プログラムはユーザ領域の先頭から後へ後へと格納 される.ある行番号を探すときには,まずプログラム の先頭の行番号を調べる.違っていればその前の「文 の字数」を用いて,次の行番号の番地を算出する.以 下,矢印の順に行番号を探して行く.プログラムも順 編成ファイルである. 2 . 3 最 適 化 順編成ファイルの先頭近くにある程,データを探す 時間は短い.従って使用回数の多い順に変数を並べた ら,プログラムの実行時間は最も短くなる.そのため の方法として,プログラムを作成した後に各変数につ いて使用回数をかぞえ,回数の多い順に図1−1の行番 号30-80のような文をプログラム本体の前に書き加え る.使用回数が多い変数とはFOR-NEXTループ中 で使われる変数および配列である.それ以外の変数に ついては番地割り当ての順番を考慮しても効果は少な い. 鹿 児 島 大 学 工 学 部 研 究 報 告 第 2 4 号 ( 1 9 8 2 ) 図 4 文 の 構 造

− 二 三 J

8802番処 3 . 主 プ ロ グ ラ ム と 副 プ ロ グ ラ ム の 前 後 関 係

心 一 一 丁

3.1実行時間の測定 行番号を探す時間を測るプログラムを図3-1に示す. このプログラムでは行番号40を2000回探す時間が 3 . 3 最 適 化 行番号も順編成ファイルを構成しているので,引用 回数の多い行番号をプログラムの先頭近くに置いたら, それを探す時間が短くなる.つまり,副プログラムを 主プログラムの前に置く.副プログラムが複数個あれ CFE、 0 0 F'1 次 の 番 地 CFF6

値0

型0

変数名 RO

(5)

永田:小記憶容量計算機用BASICプログラムの実行速度向上法 113 ば,引用回数の多いものを前に置く. 4 . 総 括 以上の説明により,実行時間を短くするためのプロ グラムの構成順序は次のとおりになる. 1 . 主 プ ロ グ ラ ム へ の G O T O 文 2 . 副 プ ロ グ ラ ム 2.1使用回数の多い副プログラム 2.2使用回数の少い副プログラム 3 . 主 プ ロ グ ラ ム 3.1変数への番地割り当ての順番を決めるた め の 文 3.2主プログラム本体 プログラムの実行時間の例を示す.最小2乗法の計 算を12回行うプログラムを作った.まずFORTRAN にならって副プログラムを主プログラムの後に置いた. 変数への番地割り当ての順番を考慮しなかった.次い − / ∼ 戸 、 ノ ヘ ダ ヘ ー ハ ー 戸 、 グ ー ← 表 1 実 行 時 間 の 例 方 法 FORTRAN類似 変数への番地割り当て 副 プ ロ グ ラ ム の 位 置 実行時間(秒) 40.5 30.1 24.5 短縮(秒) 10.4 5.6 計16.0 で前述の最適化を行った.実行時間を表1に示す.時 間は40%短くなった. 5 . 結 論 市販のBASICの中には,変数と行番号が順編成 ファイルを構成しているものがある.その場合には, 引用回数の多い変数や行番号をファイルの先頭近くに 置くことにより,プログラムの実行時間を短くするこ とができる. .−、〆−〆、Jヘーダヘン園一Jへ三両¥戸∼二、=〆、哩戸、グーグ凸、ダヘー〆へ/∼ー∼戸∼ヘーハーハー

参照

関連したドキュメント

しかし、近年は遊び環境の変化や少子化、幼 児の特性の変化に伴い、体力低下、主体的な遊

活用のエキスパート教員による学力向上を意 図した授業設計・学習環境設計,日本教育工

大学教員養成プログラム(PFFP)に関する動向として、名古屋大学では、高等教育研究センターの

⑥ニューマチックケーソン 職種 設計計画 設計計算 設計図 数量計算 照査 報告書作成 合計.. 設計計画 設計計算 設計図 数量計算

 当図書室は、専門図書館として数学、応用数学、計算機科学、理論物理学の分野の文

〔付記〕

機器名称 相 銘板容量(kW) 入力換算 入力容量(kW) 台数 現在の契約電力.

タンク・容器の種類 容量 数量 化学物質名称