JP2721377B2 - Basicプログラム圧縮方法 - Google Patents

Basicプログラム圧縮方法

Info

Publication number
JP2721377B2
JP2721377B2 JP63314670A JP31467088A JP2721377B2 JP 2721377 B2 JP2721377 B2 JP 2721377B2 JP 63314670 A JP63314670 A JP 63314670A JP 31467088 A JP31467088 A JP 31467088A JP 2721377 B2 JP2721377 B2 JP 2721377B2
Authority
JP
Japan
Prior art keywords
program
line
comment
space
destination number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP63314670A
Other languages
English (en)
Other versions
JPH02159621A (ja
Inventor
茂樹 杉山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujikura Ltd
Original Assignee
Fujikura Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujikura Ltd filed Critical Fujikura Ltd
Priority to JP63314670A priority Critical patent/JP2721377B2/ja
Publication of JPH02159621A publication Critical patent/JPH02159621A/ja
Application granted granted Critical
Publication of JP2721377B2 publication Critical patent/JP2721377B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Description

【発明の詳細な説明】 「産業上の利用分野」 この発明は、BASICコンパイラをサポートしていない
コンピュータに用いて好適なBASICプログラム圧縮方法
に関する。
「従来の技術」 従来、BASICはソースプログラムが即実行できるイン
タプリタ言語であるため、非常に手軽で開発効率が良い
という利点を有している。このため、ほとんどのパーソ
ナルコンピュータに用いられている。
「発明が解決しようとする課題」 ところで、ソースプログラムを作成する場合には、プ
ログラムのメンテナンスを考慮して注釈を付けることに
なるが、この注釈は実行に不必要なものであり、多用す
るとメモリ不足を招くという問題がある。
また、周知のごとく、BASICインタプリタはソースプ
ログラムを一文ずつ解釈しながら実行するので、注釈を
多用すると実行速度の低下につなかってしまう。このこ
とは、特にCPUの処理速度の遅いパーソナルコンピュー
タにあっては非常に問題になる。
なお、上述した注釈の多用によるメモリ不足の解決策
として注釈を付けないようにすれば良いと考えられる
が、これを付けなければプログラムのメンテナンスが非
常に大変なものになってしまう。
また、実行速度を上げるためにBASICインタプリタに
代わってBASICコンパイラという技術が開発されている
が、本来、BASICはコンパイルに適した言語ではないた
め、コンパイルすると逆にメモリ使用容量がアップする
等の問題がある。また、BASICコンパイラをサポートす
ることは、小規模なシステムにとって負担が大きく、手
軽なBASICインタプリタのみをサポートするパーソナル
コンピュータも多い。
この発明は上述した事情に鑑みてなされたもので、注
釈や不要スペースによる実行速度の低下およびメモリ容
量の無駄を実行させることができるBASICプログラム圧
縮方法を適用することを目的としている。
「課題を解決するための手段」 この発明は、BASIC言語で記述されるソースプログラ
ム内の注釈行及び注釈部分、不要スペース各々を削除す
るBASICプログラム圧縮方法において、 ソースファイルから前記ソースプログラムを1行ずつ
順次読み込み、前記ソースプログラム内の全ての行につ
いて注釈行か否かを記憶し、 次いで前記ソースプログラムから第N(Nは1,2,…の
整数)行目のプログラムを読み出し、該読み出したプロ
グラムが注釈行であれば実行プログラム用ファイルへの
書き込みを行わず、該読み出したプログラムが注釈行で
なければ、該プログラムの注釈部分を削除し、該プログ
ラムのキャラクタとキャラクタとの間のスペースを削除
し、次いで、該スペースの削除によって該プログラム内
に予約語と同一の語が生じた場合には元の状態にスペー
スを付加し、次いで、該プログラム内にジャンプ先番号
を有する予約語がある場合には、前記記憶した各行毎の
注釈行か否かに関する情報を参照して、ジャンプ先番号
が注釈行であれば、ジャンプ先番号から順次番号を大き
い方向にたどり、最初に現れた注釈行でない行の番号に
ジャンプ先番号の書き替えを行い、ジャンプ先番号が注
釈行でなければジャンプ先番号を変更しないで、前記実
行プログラム用ファイルに書き込むことを特徴とする。
また、前記キャラクタとキャラクタとの間のスペース
が少なくとも1バイト開けなければ実行不可能なBASIC
インタプリタに適用する場合に前記キャラクタとキャラ
クタとの間のスペースを1バイト残して削除する。
「作用」 上述した方法によれば、ソースプログラムから注釈
行、注釈部分および不要スペース各々が削除された実行
プログラムが作成される。この実行プログラムに基づい
てプログラムの実行が行なわれる。これにより、注釈
行、注釈部分および不要スペースが無くなる分、実行速
度が上がるとともにメモリ容量が少なくて済む。
「実施例」 以下、図面を参照してこの発明の実施例について説明
する。
第1図はこの発明の一実施例であるBASICプログラム
圧縮方法の概略を説明するための図である。この図にお
いて、1はBASIC言語で記述されたソースプログラムが
書き込まれているソースファイルである。2はソースプ
ログラムの注釈行、注釈部分および不要スペースの削除
を行う変換手段である。3は変換手段2によって変換さ
れたソースプログラム(以下、変換されたソースプログ
ラムを実行プログラムという)が書き込まれる実行プロ
グラム用ファイルである。ここで、第2図はソースプロ
グラムを示す図であり、第3図は実行プログラムを示す
図である。第3図に示すように、ソースプログラムから
注釈行、注釈部分および不要スペースが削除されてい
る。この場合、第2図(イ),(ロ),(ハ),(ホ)
および(ト)各々のプログラムにおけるジャンプ先番号
が注釈行を削除することによって第3図(チ),
(リ),(ヌ),(ヲ)および(カ)各々のプログラム
に示すように変更される。また、第2図(ニ)のプログ
ラムにおけるキャラクタ『AS_C$』のスペースを削除す
ることによって、『ASC』というBASICの予約語になるの
で、第3図(ル)のプログラムに示すようにスペースが
付加される。また、第2図(ヘ)のプログラムにおける
『“処理 2"』は文を示すので、この『“ ”』で囲ま
れた文におけるスペースの削除が行なわれない(第3図
(ワ)参照)。次に、第1図に示す、4はRAM(ランダ
ムアクセスメモリ)等のメモリであり、実行時に実行プ
ログラム用ファイル3内の実行プログラムが必要に応じ
てインタプリタが解釈しやすい形式に変換されて、書き
込まれる。
次に、上述した変換手段2によるBASICプログラム圧
縮方法について第4図に示すフローチャートを参照しな
がら説明する。
まず、ソースファイル1および実行プログラム用ファ
イル3をそれぞれオープンする(ステップS1)。次い
で、ソースファイル1内のソースプログラムを一行ずつ
全て読み出し、行番号と注釈部分しか有効な命令のない
行を注釈行と判定し、各行毎に注釈行が否かに関する情
報を記憶する(ステップS2)。次いで、ソースプログラ
ム内の全ての行について各行毎に注釈行か否かに関する
情報を記憶した後、注釈行、注釈部分およびスペースの
削除が行われる。まず、ソースファイル1からプログラ
ムの読み出しが終了したか否かを判断する(ステップS
3)。この場合、まだソースファイル1からプログラム
の読み出しが行なわれていないので、ステップS4へ進
む。ステップS4へ進むと、ソースファイル1の第1行目
のプログラムを読み込む。次いで、読み込んだ第1行目
のプログラムの注釈部分があればこれを削除し、ステッ
プ2で記憶した内容を参照してこのプログラムが注釈行
であるか否かを判定する(ステップS5)。この場合、注
釈行であればステップS3へ進み、注釈行でなければステ
ップS6へ進む。ステップS6へ進むと、ソースファイル1
より読み出した第1行目のプログラム内の不要なスペー
スを除去する。この場合、『“ ”』で囲まれた部分は
文字として扱われるので、この部分のスペースは除去し
ない。不要なスペースを除去する際に、キャラクタとキ
ャラクタとがつながって予約語と同一の文字になるか否
かのチェックを行う。この場合、同一の文字になると、
キャラクタとキャラクタとの間にスペースを付加する。
例えば、第2図の1150行に示すように、『AS_C$』のス
ペースを削除すると、BASICの『ASC』という予約語にな
るので、この場合、スペースを付加する。次いで、不要
スペース削除を行った後、処理中の行がGOTO文、IF〜TH
EN文等のジャンプ先番号を含んでいる行か否かを判定
し、ジャンプ先番号を含む行であれば、そのジャンプ先
番号を変更する(ステップS8)。この場合、予めステッ
プS2において記憶した各行毎の注釈行か否かに関する情
報を参照して、変更前のジャンプ先番号が注釈行でなけ
ればジャンプ先番号を変更しない。他方、変更前のジャ
ンプ先番号が注釈行であれば、変更前のジャンプ先番号
から順次行番号を大きい方向にたどり、最初に現れた注
釈行でない行の番号を変更後のジャンプ先番号とする。
次いで、ジャンプ先番号を変更した後、第1行目のプロ
グラムを実行プログラム用ファイルに書き込む(ステッ
プS9)。そして、実行プログラム用ファイルに第1行目
のプログラムを書き込んだ後、ステップS3へ進む。以
後、ソースファイル1から1行ずつプログラムを読み出
す毎に上記同様の処理を行う。そして、最後の行のプロ
グラムが読み出され、この処理が行われた後、ステップ
S10へ進み、ソースファイル1および実行プログラム用
ファイル3をクローズする。以上の処理によってソース
プログラムが実行プログラムに変換される。そして、実
行時に実行プログラム用ファイルから実行プログラムが
インタプリタによってメモリにロードされ、プログラム
の実行が行われる。
なお、上記実施例において、予約語および『“ ”』
の制約以外、不要スペースの削除を行うようにしたが、
BASICインタプリタの種類によっては、キャラクタとキ
ャラクタとの間のスペースを少なくとも1バイト開けな
ければならないものがあり、この場合には1バイト残し
て削除するようにする。
「発明の効果」 以上説明したようにこの発明によれば、BASIC言語で
記述されたソースプログラム内の注釈行、注釈部分およ
び不要なスペースの削除を行って実行プログラムに変換
し、実行時に実行プログラムをメモリにロードするよう
にしたので、以下に示す効果が得られる。
注釈行、注釈部分および不要スペースを削除するの
で、使用するメモリの容量を節約することが可能にな
る。
注釈行、注釈部分および不要スペースを削除するの
で、インタプリタが注釈を読み飛ばす処理がなくなり、
処理速度が上がる。
ソースプログラムと実行プログラムとを分けて管理
するので、ソースプログラムにはメンテナンスし易いよ
うに注釈を豊富に付けることができる。
削除される行にジャンプ先指定がなされていても、
ジャンプ先番号の書き替えを行うので、ユーザはこれを
意識する必要がない。
スペースを削除による予約語チェックを行うので、
ユーザはこれを意識する必要がない。
【図面の簡単な説明】
第1図はこの発明の一実施例であるBASICプログラム圧
縮方法の概略を説明するための図、第2図は前記方法に
よるBASICプログラム圧縮前のプログラムを示す図、第
3図は前記方法によるBASICプログラム圧縮後のプログ
ラムを示す図、第4図は前記方法を説明するためのフロ
ーチャート。 1……ソースファイル、2……変換手段、 3……実行プログラム用ファイル、4……メモリ。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】BASIC言語で記述されるソースプログラム
    内の注釈行及び注釈部分、不要スペース各々を削除する
    BASICプログラム圧縮方法において、 ソースファイルから前記ソースプログラムを1行ずつ順
    次読み込み、前記ソースプログラム内の全ての行につい
    て注釈行か否かを記憶し、 次いで前記ソースプログラムから第N(Nは1,2,…の整
    数)行目のプログラムを読み出し、該読み出したプログ
    ラムが注釈行であれば実行プログラム用ファイルへの書
    き込みを行わず、該読み出したプログラムが注釈行でな
    ければ、該プログラムの注釈部分を削除し、該プログラ
    ムのキャラクタとキャラクタとの間のスペースを削除
    し、次いで、該スペースの削除によって該プログラム内
    に予約語と同一の語が生じた場合には元の状態にスペー
    スを付加し、次いで、該プログラム内にジャンプ先番号
    を有する予約語がある場合には、前記記憶した各行毎の
    注釈行か否かに関する情報を参照して、ジャンプ先番号
    が注釈行であれば、ジャンプ先番号から順次番号を大き
    い方向にたどり、最初に現れた注釈行でない行の番号に
    ジャンプ先番号の書き替えを行い、ジャンプ先番号が注
    釈行でなければジャンプ先番号を変更しないで、前記実
    行プログラム用ファイルに書き込むことを特徴とするBA
    SICプログラム圧縮方法。
  2. 【請求項2】前記キャラクタとキャラクタとの間のスペ
    ースが少なくとも1バイト開けなければ実行不可能なBA
    SICインタプリタに適用する場合に前キャラクタとキャ
    ラクタとの間のスペースを1バイト残して削除すること
    を特徴とする請求項1記載のBASICプログラム圧縮方
    法。
JP63314670A 1988-12-13 1988-12-13 Basicプログラム圧縮方法 Expired - Fee Related JP2721377B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63314670A JP2721377B2 (ja) 1988-12-13 1988-12-13 Basicプログラム圧縮方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63314670A JP2721377B2 (ja) 1988-12-13 1988-12-13 Basicプログラム圧縮方法

Publications (2)

Publication Number Publication Date
JPH02159621A JPH02159621A (ja) 1990-06-19
JP2721377B2 true JP2721377B2 (ja) 1998-03-04

Family

ID=18056134

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63314670A Expired - Fee Related JP2721377B2 (ja) 1988-12-13 1988-12-13 Basicプログラム圧縮方法

Country Status (1)

Country Link
JP (1) JP2721377B2 (ja)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
「The BASIC」NO.12(1984−5),技術評論社,P.48−49
「The BASIC」NO.55(1987−12),技術評論社,P.104−105

Also Published As

Publication number Publication date
JPH02159621A (ja) 1990-06-19

Similar Documents

Publication Publication Date Title
JP2000347872A (ja) 例外を正規制御フローとして処理する方法及び装置
JP5536593B2 (ja) 最適化装置、最適化方法およびコンパイラ・プログラム
JPH06309204A (ja) データ処理方法及びその装置
JP2721377B2 (ja) Basicプログラム圧縮方法
JP3608993B2 (ja) コンパイラ装置及びコンパイラプログラムを記録した記録媒体
JPS61211738A (ja) 原始プログラムの注釈管理方式
JP2005322110A (ja) プログラム変換装置及びプロセッサ
JPS6116336A (ja) Fortran入出力制御処理方式
JP2932812B2 (ja) 言語処理プログラム実行装置
JP3085309B2 (ja) デバッグシステム
KR20010048898A (ko) 시각적인 화면 설계와 고속 처리가 가능한 동적문서 연동장치 및 그 방법
JPH0273438A (ja) 情報処理装置
JPH04365133A (ja) プレロード命令実行装置及びプログラム修正装置
JPS583042A (ja) プログラム実行方式
Puckett Implementation of an APL—based spreadsheet manager
JPH0619713B2 (ja) 論理型デ−タ処理装置
JPH0237428A (ja) 登録集展開時の置換処理方式
JPS5932818B2 (ja) デ−タ処理方式
JPH0523448B2 (ja)
JPS61206038A (ja) コンピユ−タのプログラミング実行方法
JPS59119459A (ja) ガ−ベジ・コレクシヨン方式
JPS63269229A (ja) 文字列操作系命令コンパイル処理方式
JPH01130237A (ja) 情報処理装置
JPH0219924A (ja) データアクセス高速化方式
JPH03186933A (ja) 言語処理システムのシンボル処理方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees