JPH0863369A - 最適化情報出力方式 - Google Patents

最適化情報出力方式

Info

Publication number
JPH0863369A
JPH0863369A JP6199346A JP19934694A JPH0863369A JP H0863369 A JPH0863369 A JP H0863369A JP 6199346 A JP6199346 A JP 6199346A JP 19934694 A JP19934694 A JP 19934694A JP H0863369 A JPH0863369 A JP H0863369A
Authority
JP
Japan
Prior art keywords
output
optimization
line
source code
instruction
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.)
Pending
Application number
JP6199346A
Other languages
English (en)
Inventor
Kenji Kawagoe
健治 川越
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP6199346A priority Critical patent/JPH0863369A/ja
Publication of JPH0863369A publication Critical patent/JPH0863369A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 最適化に関する情報を出力テキストファイ
ル、及び出力オブジェクトファイルに出力することによ
り、プログラムの開発におけるプログラム開発者のデバ
ッグに要する負担を減少させ、作業効率を大幅に向上さ
せることを目的とする。 【構成】 ソースコードの構文についての解析を行う構
文解析部と、前記解析に基づいて、前記ソースコードに
対して最適化処理を行い、該最適化処理を施した出力テ
キスト及び出力オブジェクトファイルを生成するコード
生成部と、前記生成された出力テキストを表示する表示
部とを有し、前記コード生成部は、前記解析に基づき前
記ソースコードに対して、少なくとも不要な命令の削
除、最適な命令の追加、及び命令順序の最適化を行う最
適化処理手段と、前記最適化処理手段にて行った最適化
処理の情報を前記出力テキスト及び出力オブジェクトフ
ァイルに挿入する最適化処理挿入手段とを備えてある。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプログラム言語処理装置
の言語最適化に関し、特に、最適化を行った処理を使用
者に情報として伝えることができる最適化情報出力方式
に関する。
【0002】
【従来の技術】言語最適化とは、プログラムの実行時間
の短縮化等を目的として、プログラム言語処理を行う際
に、不要な命令の削除、最適な命令の追加、及び命令順
序の最適化等をプログラム言語最適化装置が自動的に行
うことをいう。
【0003】このプログラム言語最適化装置が具備する
ハードウエア構成は、各種処理を行うためのCPUと、
キーボード、マウス、ライトペン、又はフレキシブルデ
ィスク装置等の入力装置と、メモリ装置やディスク装置
等の外部記憶装置と、ディスプレイ装置、プリンタ装置
等の出力装置等とを備えた通常のコンピュータシステム
を用いてもよい。なお、前記CPUは、言語等における
処理等を行う演算部と、前記処理の命令を記憶する主記
憶部とを具備する。
【0004】次に従来のプログラム言語最適化装置が具
備するソフトウエア構成は、図7にそのブロック図を示
した通り、構文解析部と、コード生成部とを有し、前記
コード生成部には最適化処理手段を有している。以下、
従来のプログラム言語最適化装置の行う処理動作を説明
する。
【0005】まず、プログラム開発者がハードディスク
等の補助記憶装置に格納され、高水準言語等で記述され
た所定のソースコード(以下、単にソースコードと記
す)を、コンピュータシステムに対し言語最適化処理を
行わせるための命令を行う。次に、命令を受けたコンピ
ュータシステムはソースコード及びプログラム言語処理
の命令群をCPU内の主記憶部等に複写する。次に、プ
ログラム言語処理の命令群が逐次実行され、該プログラ
ム言語処理の命令群内の構文解析部にて、複写されたソ
ースコードの構文についての解析を行う。次に、前記解
析に基づいて、プログラム言語処理の命令群内のコード
生成部の最適化処理手段にて、不要な命令の削除、最適
な命令の追加、命令順序の最適化等を行う。最後に、最
適化処理を施した新たな出力テキストが作成され、ディ
スプレイや外部記憶装置等に出力される。
【0006】次に、従来の言語最適化装置が行う処理に
ついてその例を挙げて説明する。 (1)図8は、最適化によって最適な命令が選択された
例である。ソースコード(a)のLD命令はCLR命令
を記述しても同じ意味であり、しかもCLR命令の方が
オブジェクトサイズ(命令の長さ)が短いので、この場
合はCLR命令を記述するほうが適している。よって最
適化時にCLR命令が選択される。
【0007】(2)図9は、最適化によって不要な命令
が削除された例である。ソースコード(a)の2行目は
意味のない命令なので、最適化時に削除される。その結
果、対応する命令が出力テキストファイル(b)中に存
在せず、削除された行は上に詰めて表示される。
【0008】(3)図10は、最適化によって必要な命
令が追加された例である。ここではバンク切り替えによ
るデータメモリアクセスを行うMCUの例で示す。ソー
スコード(a)の2行目に対し、メモリバンクの切り替
えを行わなければならない時、出力テキストファイルに
は、2行目の前にそれぞれメモリバンク切替命令15が
最適化時に挿入される。
【0009】上述のように、最適化されたソースコード
である出力ファイルを参照しながら、プログラム開発者
はソースコードの変更及び修正(以下、デバッグと記
す)を行う。
【0010】次に、このデバッグ方法について、例を挙
げて説明する。 (4)図11は、ソースレベルデバッガを用いてソース
コードレベルのデバッグを行う例である。ここで、ソー
スレベルデバッガとは、ソースコードをディスプレイ装
置等に表示し、プログラム開発者がその表示を見ながら
デバッグを行う手法をいう。また、ソースレベルデバッ
ガの実行には最適化されたソースコードと同時に出力さ
れるオブジェクトファイル(実行形式のプログラムをい
う。以下、出力オブジェクトファイルと記す。)を用い
て行う。なお、トレース行(デバッガが現在実行中の
行)は斜線で表示するものとする。
【0011】上記(2)の例と同様、ソースレベルデバ
ッガのトレース画面(a)の4行目は意味のない命令な
ので、最適化時に削除されており、出力オブジェクトフ
ァイルには出力されない。
【0012】以上により、プログラム開発者は、プログ
ラム言語処理を行う際、不要な命令の削除、最適な命令
の追加、命令順序の最適化等を気にすることなく、プロ
グラム開発を行うことができる。
【0013】
【発明が解決しようとする課題】しかしながら、従来の
プログラム言語最適化装置には以下の問題点があった。
上記(1)乃至(3)の問題点は次の通りである。即
ち、例えば、MCU用プログラム言語のユーザは、最適
化処理後の出力テキストファイルを見てプログラム検証
を行うことが多い。その際、最適化処理後のプログラム
(出力テキストファイル)がプログラム開発者の記述と
したものと異なり、それに関して何の情報もないと、ど
の行に対しどのように最適化が行われたかを自分で判断
しなければならず、プログラム検証に支障をきたしてい
た。例えば、図8(b)の出力テキストファイル(この
例の場合は出力リストファイル)のプログラム表示部に
は、ユーザが記述したLD命令のまま表示されるにもか
かわらず(図8(b)中の13)、機械語コードの表示
11には最適化処理の結果としてCLR命令の機械語コ
ードが表示されてしまう。
【0014】また、(4)の問題点は、図11において
プログラムトレース(プログラムを一行ずつ進めていく
ことであり、例えば、図中反転部分17,19が次に実
行する行を示す。)を行うと(図11(a)→図11
(b))2行目に対応する命令が出力オブジェクトファ
イル中に存在しないため、2行目を実行しようとしても
実行できずに3行目に飛んでしまう(17→19)。こ
れは、図12で示すように出力オブジェクトファイルの
元となる出力テキストファイル(b)中に2行目に対す
る行番号情報が出ていないことが原因である。ソースコ
ード(a)を最適化処理後の出力テキストファイル
(b)の行番号情報は、line1(10,1行目の行番号
情報)line3(11,3行目の行番号情報)しか出てい
ない。従って、ソースレベルデバッグでプログラムトレ
ースを行うと、1行目の次に3行目に飛んでしまうので
ある。以上のように、最適化されて対応する命令が追加
/削除されると、ソースレベルデバッグをソースコード
の流れに添って行うことが困難になることである。
【0015】従って、ソースレベルデバッガの実行中
に、その実行を止めたい命令で止められないなどの事態
が発生し、ソースレベルデバッガを使用してのデバッグ
作業効率が低下してしまうことが多かった。
【0016】本発明は上記事情に鑑みてなされたもので
あり、その目的とするところは、最適化に関する情報を
出力テキストファイル、及び出力オブジェクトファイル
に出力することにより、プログラムの開発におけるプロ
グラム開発者のデバッグに要する負担を減少させ、作業
効率を大幅に向上させるための最適化情報出力方式を提
供することである。
【0017】
【課題を解決するための手段】上記目的を達成するため
本発明の特徴は、ソースコードの構文についての解析を
行う構文解析部と、前記解析に基づいて、前記ソースコ
ードに対して最適化処理を行い、該最適化処理を施した
出力テキストを生成するコード生成部と、前記生成され
た出力テキストを表示する表示部とを有し、前記コード
生成部は、少なくとも不要な命令の削除、最適な命令の
追加、及び命令順序の最適化を行う最適化処理手段と、
前記最適化処理手段にて行った処理の情報を前記出力テ
キストに挿入する最適化処理挿入手段とを有することで
ある。
【0018】ここで、前記ソースコードには、Cやfo
rtran等の高水準言語や、アセンブラ等の機械向き
言語を含む。また、前記表示部にはディスプレイ装置に
よる表示や、プリンタ装置にて印字による表示を含む。
【0019】
【作用】上記構成により、本発明に係る最適化情報出力
方式によれば、最適化処理挿入手段を有しているので、
最適化処理を施した出力テキストにどのように最適化を
行ったかの情報(内容)を挿入することができるのであ
る。これにより、この挿入された情報(内容)が出力テ
キストに付加されて表示部により表示されるので、プロ
グラムの検証が容易になり、プログラムの開発における
プログラム開発者のデバッグに要する負担を減少するこ
とができ、作業効率を大幅に向上することができるので
ある。
【0020】
【実施例】以下、図面を引用しながら本発明の実施例を
説明する。本発明に係る最適化情報出力方式が具備する
ハードウエア構成は、各種処理を行うためのCPUと、
キーボード、マウス、ライトペン、又はフレキシブルデ
ィスク装置等の入力装置と、メモリ装置やディスク装置
等の外部記憶装置と、ディスプレイ装置、プリンタ装置
等の出力装置等とを備えた通常のコンピュータシステム
を用いてもよい。なお、前記CPUは、言語等における
処理等を行う演算部と、前記処理の命令を記憶する主記
憶部とを具備する。また、図1に示した表示部には上記
ディスプレイ装置による表示や、上記プリンタ装置にて
印字されたものを含むのもとする。
【0021】次に、本発明に係る最適化情報出力方式が
具備するソフトウエア構成は、図1にそのブロック図を
示した通り、構文解析部と、コード生成部とを有し、前
記コード生成部には最適化処理手段と、最適化処理挿入
手段とを備える。
【0022】以下、本発明に係る最適化情報出力方式の
行う処理動作を説明する。まず、プログラム開発者がハ
ードディスク等の補助記憶装置に格納され、Cやfor
tran等の高水準言語や、アセンブラ等の機械向き言
語高水準言語等で記述された所定のソースコード(以
下、単にソースコードと記す)を、コンピュータシステ
ムに対し言語最適化処理を行わせるための命令を行う。
【0023】次に、命令を受けたコンピュータシステム
はソースコード及びプログラム言語処理の命令群をCP
U内の主記憶部等に複写する。次に、プログラム言語処
理の命令群内の構文解析部にて、複写されたソースコー
ドの構文についての解析を行う。次に、プログラム言語
処理の命令群内のコード生成部の最適化処理手段にて、
前記解析に基づいて、不要な命令の削除、最適な命令の
追加、命令順序の最適化等を行う。
【0024】次に、プログラム言語処理の命令群内のコ
ード生成部の最適化処理挿入手段にて、最適化処理を行
った情報(内容)が出力テキストに挿入される。次に、
最適化処理を施した新たな出力テキストが作成され、デ
ィスプレイ装置や外部記憶装置等の表示部に出力され
る。このときには、最適化処理挿入手段にて最適化処理
を行った内容も出力テキストと同時に出力される。以
下、本発明に係る最適化情報出力方式が行う処理につい
て、その例を挙げて説明する。
【0025】(1)図2は本発明の第1の実施例を示し
ている。図中(a)はソースコード、(b)は最適化後
の出力テキストファイルである。ソースコード(a)の
LD命令はCLR命令の方が意味は同じでも効率がよい
ため、最適化時にCLR命令として処理される。そし
て、どの命令を選択したかを、出力テキストファイル
(b)に表示する(図2(b)中の1)。
【0026】(2)次に本発明の第2の実施例を図3に
示す。図中(a)はソースコード、(b)は最適化後の
出力テキストファイルである。ソースコード(a)の2
行目は意味のない命令なので、最適化時に削除される。
その[削除された]という情報を出力テキストファイル
(b)に挿入し、コメントとして表示する(図3(b)
中の3)。
【0027】(3)次に本発明の第3の実施例を図4に
示す。図中(a)はソースコード、(b)は最適化コン
パイル後の出力ファイルである。最適化によって、必要
な命令が追加された例である。ここでは、バンク切り替
えによるメモリアクセスを行うMCUの例で示す。ソー
スコード(a)の2行目に対し、メモリバンクの切り替
えを行わなければならない時、出力テキストファイルに
は、2行目の前にそれぞれメモリバンク切替命令が挿入
され、最適化によって「挿入された」という情報を表示
する(図4(b)中の5)。
【0028】(4)次に本発明の第4の実施例を図5に
示す。最適化された出力オブジェクトファイルを使用し
てソースレベルデバッガを行う例である。ここで、ソー
スレベルデバッガはディスプレイ装置等のファイル表示
をソースコードを用いて行い、実行は最適化された出力
オブジェクトファイルを用いて行うことを前提とする。
なお、トレース行(デバッガが現在実行中の行)は斜線
で表示するものとする。第2の実施例と同様、ソースデ
バッガ画面(a)の4行目は意味のない命令なので、最
適化時に削除され、出力オブジェクトファイルには出力
されていない。しかし、出力テキストファイル(b)で
出力する行番号情報を3行目に対して出力することによ
り、3行目もソースレベルデバッガでプログラムトレー
ス可能とする。
【0029】このソースレベルデバッガを用いた具体的
な方法を図6を用いて説明する。ソースコード(a)の
最適化後のテキストファイル(b)に3行目に対する行
番号情報を出力し(図6(b)中の7)、さらにこの行
番号情報に「削除された」という情報9を挿入する。ソ
ースレベルデバッガは、この「削除された」情報を持つ
行番号情報に対応する行(この場合は3行目)を表示す
るとき「*」を付ける。
【0030】従って、削除された行ということが一目瞭
然となる。さらにプログラムトレースにより実行中の行
を反転させるとき、「削除された」情報のある行は直前
の行と一緒に反転させるようにする。こうすることによ
って、プログラムトレース時に勝手に行が飛ばされるこ
とはなくなり、また、2行一緒に反転することによって
も最適化が行われたということがすぐにわかる。
【0031】
【発明の効果】以上のごとき、本発明による第1の効果
は、対応する命令が追加/削除/並べ変えがされたとい
う情報が最適化処理挿入手段により出力テキストファイ
ルに挿入され、この出力テキストファイルは表示部によ
り視覚的に表示されるので、出力テキストファイルを使
用してのプログラムの検証が容易になり、プログラムの
開発におけるプログラム開発者のデバッグに要する負担
を減少することができ、作業効率を大幅に向上すること
ができる。
【0032】また、本発明による第2の効果は、対応す
る命令が追加/削除されても、ソースレベルデバッガを
ソースプログラムのフロー通りに行うことが可能なの
で、作業効率が向上することができる。
【図面の簡単な説明】
【図1】本発明に係る最適化情報出力方式のブロック図
である。
【図2】(a)は第1の実施例を説明するためのソース
コードを示した図であり、(b)はその出力ファイルを
示した図である。
【図3】(a)は第2の実施例を説明するためのソース
コードを示した図であり、(b)はその出力ファイルを
示した図である。
【図4】(a)は第3の実施例を説明するためのソース
コードを示した図であり、(b)はその出力ファイルを
示した図である。
【図5】第4の実施例を説明するためのソースレベルデ
バッガのトレース画面である。
【図6】(a)は第4の実施例を説明するためのソース
コードを示した図であり、(b)は行番号情報付の出力
ファイルを示した図である。
【図7】従来のプログラム言語最適化装置のブロック図
を示した図である。
【図8】(a)はソースコードを示した図であり、
(b)は出力ファイルを示した図である。
【図9】(a)はソースコードを示した図であり、
(b)は出力ファイルを示した図である。
【図10】(a)はソースコードを示した図であり、
(b)は出力ファイルを示した図である。
【図11】ソースレベルデバッガのトレース画面を示し
た図である。
【図12】(a)はソースコードを示した図であり、
(b)は行番号情報付の出力ファイルを示した図であ
る。
【符号の説明】
1,3,5 最適化情報部 7 最適化情報付の行番号情報 9 行番号付加情報 11 機械語コード出力部 13 命令表示部 15 追加命令 17,19 トレース行(デバッガが現在実行中の行)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 ソースコードの構文についての解析を行
    う構文解析部と、前記解析に基づいて、前記ソースコー
    ドに対して最適化処理を行い、該最適化処理を施した出
    力テキスト及び出力オブジェクトファイルを生成するコ
    ード生成部と、前記生成された出力テキストを表示する
    表示部とを有し、 前記コード生成部は、 前記解析に基づき前記ソースコードに対して、少なくと
    も不要な命令の削除、最適な命令の追加、及び命令順序
    の最適化を行う最適化処理手段と、 前記最適化処理手段にて行った最適化処理の情報を前記
    出力テキスト及び出力オブジェクトファイルに挿入する
    最適化処理挿入手段と、 を具備することを特徴とする最適化情報出力方式。
JP6199346A 1994-08-24 1994-08-24 最適化情報出力方式 Pending JPH0863369A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6199346A JPH0863369A (ja) 1994-08-24 1994-08-24 最適化情報出力方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6199346A JPH0863369A (ja) 1994-08-24 1994-08-24 最適化情報出力方式

Publications (1)

Publication Number Publication Date
JPH0863369A true JPH0863369A (ja) 1996-03-08

Family

ID=16406245

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6199346A Pending JPH0863369A (ja) 1994-08-24 1994-08-24 最適化情報出力方式

Country Status (1)

Country Link
JP (1) JPH0863369A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014516A (en) * 1996-12-27 2000-01-11 Nec Corporation Language processing system which generates debugging source file corresponding to optimization image and method therefor
JP2007226358A (ja) * 2006-02-21 2007-09-06 Fujitsu Ltd アプリケーション生成装置、アプリケーション生成方法、およびアプリケーション生成プログラム
JP2009134462A (ja) * 2007-11-29 2009-06-18 Toshiba Corp デバッグ装置及びデバッグ方法
CN111596895A (zh) * 2020-04-07 2020-08-28 厦门极致互动网络技术股份有限公司 基于通讯工具的软件开发管理方法、系统及移动终端

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014516A (en) * 1996-12-27 2000-01-11 Nec Corporation Language processing system which generates debugging source file corresponding to optimization image and method therefor
JP2007226358A (ja) * 2006-02-21 2007-09-06 Fujitsu Ltd アプリケーション生成装置、アプリケーション生成方法、およびアプリケーション生成プログラム
JP2009134462A (ja) * 2007-11-29 2009-06-18 Toshiba Corp デバッグ装置及びデバッグ方法
US8370810B2 (en) 2007-11-29 2013-02-05 Kabushiki Kaisha Toshiba Debugging device and debugging method
CN111596895A (zh) * 2020-04-07 2020-08-28 厦门极致互动网络技术股份有限公司 基于通讯工具的软件开发管理方法、系统及移动终端
CN111596895B (zh) * 2020-04-07 2022-08-09 厦门极致互动网络技术股份有限公司 基于通讯工具的软件开发管理方法、系统及移动终端

Similar Documents

Publication Publication Date Title
US20090070747A1 (en) System for Adding Code Commentary to Source Code During Software Debugging
Welsh et al. A design rationale for a language‐based editor
US5905894A (en) Meta-programming methods and apparatus
JPH11194957A (ja) デバッグ支援装置、並列実行情報生成装置、及びこれらに適用されるプログラムを記録した記録媒体
JPH07141201A (ja) 2パスコンパイラのための改良された方法
US5946493A (en) Method and system in a data processing system for association of source code instructions with an optimized listing of object code instructions
JPH0863369A (ja) 最適化情報出力方式
JPS60107142A (ja) プログラム翻訳装置
JP3196675B2 (ja) 言語処理方式
US11256479B2 (en) Dynamic updates in an interactive programming environment
JP2006285754A (ja) プログラムソースコード自動生成装置
JP2004133630A (ja) プログラム作成方法、プログラム変換装置、プログラム及び記憶媒体
JPH05108372A (ja) コンパイラ最適化処理内容の出力方式
JP3105546B2 (ja) アセンブラのシンボル・デバッグ情報処理方式
Tanenbaum et al. The people's time sharing system
Manjikian More enhancements of the simplescalar tool set
JPH08255097A (ja) デバッグ情報出力方式
JPH05108404A (ja) デバツガシステム
JP2827724B2 (ja) プログラムデバッグ処理方法
JPH06242942A (ja) ソースコードレベルデバッグ装置
KR0175469B1 (ko) 칠프로그램 변수의 가시성 제어방법
CN115454497A (zh) 一种辅助代码自动注释的优化方法、装置、介质及终端
JP2005276092A (ja) プログラムのデバッグシステム
JP3130421B2 (ja) プログラム解析方法および装置
JPH05158679A (ja) プログラムテキスト編集装置