JPH02281335A - C言語プログラム・ソース・ブロッカ - Google Patents

C言語プログラム・ソース・ブロッカ

Info

Publication number
JPH02281335A
JPH02281335A JP7858290A JP7858290A JPH02281335A JP H02281335 A JPH02281335 A JP H02281335A JP 7858290 A JP7858290 A JP 7858290A JP 7858290 A JP7858290 A JP 7858290A JP H02281335 A JPH02281335 A JP H02281335A
Authority
JP
Japan
Prior art keywords
line
arrow
source code
character
inward
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.)
Granted
Application number
JP7858290A
Other languages
English (en)
Other versions
JP2706348B2 (ja
Inventor
Delmar J Gusenius
デルマー・ジェイ・ジュセニウス
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.)
Bull HN Information Systems Inc
Original Assignee
Bull HN Information Systems Inc
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 Bull HN Information Systems Inc filed Critical Bull HN Information Systems Inc
Publication of JPH02281335A publication Critical patent/JPH02281335A/ja
Application granted granted Critical
Publication of JP2706348B2 publication Critical patent/JP2706348B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (技術分前) 本発明は、コンピニータ・プログラミング技術に関し、
特にrCJで書かれたプログラムのソース・コード・リ
ストの判り易さを改善するプログラミング注釈ツールに
関する。
(背景技術) コンピュータ・プログラミング技術に習熟する者には周
知の如く、ソース・コード・リストの検討によりプログ
ラムの構造および流れを追跡することは困難である。例
え自分自身の労作を調べる場合であっても、もしプログ
ラムがその「フィロソフィ」が記憶に新しくない過去に
書かれたものであるならば、困難に遭遇することがある
。しかし、部分的あるいは全体が他人により書かれたプ
ログラムのソース・コード・リストの検討を行うことは
特に困難であるが、これは各プログラマがプログラムを
書く際自分自身のスタイルおよび思考過程を有するため
である。
更に、(生産性の要求の故に、あるいは更に劣悪な規律
の故に)おそらくは、プログラムが日常的に詳細なフロ
ーチャートの用意の如き高レベルの書類作りを経ず、そ
の結果他人の仕事に止まらず自分自身のプログラムを検
査することの難しさが更に追い打ちをかけることが不幸
な事実である。
職業的プログラマならびにアマチュア・プログラマの間
で広く使用される1つの高く評価されているプログラミ
ング言語は[C1である。
よく書かれた「C」プログラムは、しばしば、いくつか
のレベルに「入れ子」になり得るコード・ブロックを使
用し、過去において作られあるいは他人により作られた
ソース・コード・リストを調べる際、コード・ブロック
の初めと終りおよび入れ子のレベルを判定することは厄
介である。
当業者には、rCJソース・コード・リストにおいて、
リストされたプログラムのコード・ブロックおよび入れ
子構造を追従する際リストの精読を助ける注釈を提供す
ることが非常に望ましいことが理解されようし、また本
発明が目的とするものもこのことである。
(発明の目的) 従って、本発明の広い目的は、リストされたプログラム
の構造およびシーケンスの追跡を容易にするため、ソー
ス・コード・リストに対する注釈ツールを提供すること
にある。
本発明の別の目的は、rCJンース・コードでのリスト
作成と関連する使用に特に適用し得る如きツールの提供
にある。
本発明の更に特定の目的は、全てのコード・ブロックか
ら各コード・ブロックおよび入れ子の関係を簡明かつ追
跡が容易な表示において目で識別するrCJソース・コ
ード・リスト作成のための注釈ツールの提供にある。
(発明の要約) 要約すれば、本発明の上記および他の目的は、最初にタ
ブ付け文字として使用されるソース・コード言語におい
て小さな使用文字(チルデ「〜」の如き)を選択し、次
いで選択された文字の代わりにソース・コードに専用の
ストリングを置換することにより、処理されたrCJソ
ース・コード・リストに集積された複数の入れ子ブロッ
ク間の関係の図式的な表示を行うためのプログラミング
・ツールにより達成される。次に、ブロックの初めの記
号「(」を含むコードの各行毎に、チルデおよび外に向
いた矢印(ハイフンの後に「大なり」不等記号を付すこ
とにより似せることができる)が付随される。同様に、
ブロックの終りの記号「)」を含むコードの各行毎に、
チルデと内に向いた矢印(「小なり」不等記号の後にハ
イフンを続けることにより似せること”6<できる)が
付随される。チルデをタブ付け文字として用いて、内向
きおよび外向き矢印が縦方向に揃うようにタブ付けされ
る。次に、最初の行から部分的に処理されたソース・コ
ードを順次調べながら、外向き矢印を持つ行がある時は
深さの番号の増分を行い、内向き矢印を持つ与えられた
行がある時は次の行の初めの深さ番号の値に対して深さ
番号の減分を行うことにより、内向きまたは外向きの矢
印を持つ各行に対して「深さ番号」が生成される。この
深さ番号、ならびに1つ以上の(ある行に対する深さ番
号により示される如き)右揃えされた垂直線分が、外向
きあるいは内向きの矢印を持つ行に付随される。行間に
は、もしこれが外向きであれば最後の矢印付と同じ数の
垂直線分、またもしこれが内向きであれば最後の矢印線
より1つ少ない垂直線分が付される。次いで、水平線分
記号が、外向きあるいは内向きの矢印を持つある行内の
深さの番号と最も左側の垂直線分との間のスペースに入
れられる。望ましくは、見た目に良く見えかつ明瞭であ
るように、深さ番号と外向き矢印を持つ行にある最も左
側の垂直線分との間に入れられた水平記号はハイフン記
号であり、深さ番号と内向き矢印を持つ行の最も左側の
垂直線分との間に入れられた水平記号は下線記号である
本発明の主題は、特に本明細書の頭書において特に指摘
され明瞭に謳われている。しかし、本発明は、構成およ
び使用方法の双方に関して、頭書の特許請求の範囲およ
び添付図面に関して以降の記述を参照することによりよ
く理解することができよう。
(実施例) 第1図においては、簡単な例示のrCJプログラムがソ
ース・コードでリストされる。基本的なことであるが、
このプログラムは、特にもしプログラムが他人により書
かれたり、検討者/プログラマがプログラムを書いた自
分の方法を忘れる程過去に書かれたならば、最初の検査
では全く追跡が容易でないように、いくつかのコード・
ブロックおよびい(つかの入れ子階層を使用している。
従って、プログラムのブロッカの発明に従って例示のプ
ログラムを処理することが望ましい。
プログラム・ブロッカの発明は、望ましい実施態様にお
いては、3パス構造を持ち、第2図は段階1のフローチ
ャートである。イ′ブロッカ・プログラムの初めに、ブ
ロッカされるべきrCJプログラムの全てのパス名、即
ち記憶装置におけるその時の記憶場所に対して質問が提
起される。
rCJプログラムの作業コピーを(安全のため、読出し
専用モードのみ)取得して、その時のディレクトリ即ち
、本ブロッカ・プログラムが置かれるディレクトリにお
けるファイル「、rawc、Jに格納する。ファイル、
rawc。
は次にランダム・アクセス・メモリー(RAM)にロー
ドされて実際の処理を開始し、メツセージ「フォーマッ
ト作業開始」が表示される。
「C」プログラム・ソース・コードの各行が次々に検査
される。もしチルデ「〜」が1つ以上の事例に存在する
ならば、一義的な文字ストリング(チルデを表わすため
選定)が発生毎に置換される。このため、以下において
更に明らかになるようにブロッカ・プログラムの実行中
、チルデ自体を内部のタブ付け等に留保することを可能
にする。rCJプログラミングに習熟する者は、このチ
ルデがrCJにおいてほとんど使用されない演算子の1
つであり、事例において前記理由のため選定されたこと
が理解されようが、本ブロッカ・プログラムにおける特
殊目的の要件に対して他のめったに使用されない演算子
を選定することもできる。
各行は、次に「C」の「ブロックの初め」を表示する記
号「(」の存在について検査される。
もし文字「(」が与えられた行内に存在するならば、タ
ブ付けされた外向きの矢印「〜−〉」(即ち、チルデの
後にハイフォンと「大なり」不等記号が続く)がこの行
に付随される。同様に、各行は次に「ブロックの終り」
を示す記号「)」の存在について調べられ、もし存在す
るならば、タブ付きの内向きの矢印r〜<−」(チルデ
の後に「小なり」不等記号とハイフォンが続く)がこの
行に付随される。従って、各チルデをタブ記号と解釈し
て、内向きおよび外向きの契印がその時の右側のマージ
ンに押し付けられて、右側に「ビーチ・ヘッド」を確立
する。
次に、「深さ番号」が、右側マージンにおける内向きお
よび外向きの矢印を持っ各線に付随される。このような
各線の深さ番号は、外向きの矢印「−〉」を持つ線に遭
遇する時深さ番号の増分を行うことにより、また内向き
の矢印「<−」を持つ与えられた線に遭遇する時は次の
線の初めの深さ番号の値に対して深さ番号の減分を行う
ことにより得られる。このように、深さ番号は、全ての
コード・ブロックの初め、終りおよび入れ子の深さを表
示するのに役立つ。
段取り機能として、この時不要なチルデが削除される。
(しかし、選択された一義的なストリングがそのままの
位置にあるため、チルデはブロッカ・プログラムにおい
て使用されるため使用可能状態を維持することが判るで
あろう。)この時メツセージ「矢印が所定位置にある」
が表示され、ブロッカ・プログラムの段階2に入ること
ができる。
第3図においては、各線に対して、ブロッカ・グラフィ
ックの垂直部分を収容するに充分な「空白」が付され、
矢印の行には、深さ番号が表示すると同じ数の垂直線分
が付される。中間の行は、もし直前の矢印行が外向きの
矢印ならばその矢印行と同じ数の垂直線分が付され、あ
るいはもし内向きの矢印ならばその矢印行より1つ少な
い垂直線分が付される。現在望ましい実施態様において
は、隣接する垂直線が美的あるいは明瞭化の目的のため
空白によって分離されることが望ましい。例えば、(7
段の深さの入れ子および矢印と垂直線間に少なくとも2
つのスペースが最大限度とすれば)もし「−ン6」を持
つ線が見出されるとすると、4つのスペースと6つの水
平方向に間隔をおいた垂直線(1つのスペースを介在さ
せることにより分離される)が付される。直後の続く線
が矢印を付されない場合は、これもまた4つのスペース
と6つの水平方向に間隔をおいた垂直線が付される。し
かし、もし次の行が「く−5」のエントリを有するなら
ば、6つのスペースと5つの水平方向に間隔をおいた垂
直線が付される。このように、ソース・コードの各線と
関連を有する垂直線のグループがこのような操作により
指向されて、これらが右側で揃えられるように付され、
これにより垂直線分が垂直方向に揃えられるようにする
ことは重要である。このプロセスにおいて、同じ行で始
まり終わるブロックは無視される。更に、縦のグラフィ
ックの領域に伸びるソース・コードの異常に長い線の場
合は、人の[1がこのような長い線に「沿って」グラフ
ィックの縦の流れに容易に従い得るため、垂直線は入れ
られない。
この時、メツセージ「縦線が引かれた」が表示され、再
び不要なチルデが除かれ、ブロッカ・プログラムの段階
3に入る。段階3の目的は、第4図から明らかなように
、ブロッカ・グラフィックの水平方向成分を置くことで
ある。このタスクは、収容される入れ子の深さ(望まし
い本実施態様においては7段)の2倍に等しい充分な数
の大域置換バスを用いることにより容易に行われる。最
初の一連の大域バスにおいて、ハイフン記号が各外向き
の矢印と最初の垂直線間でその右側に現れる各スペース
に置き換えられる。
次いで、第2の一連の大域パスが、各内向きの矢印と最
初の垂直線間でその右側に現れる各スペースを下線記号
即ち「−」で置換するように働(。(この目的のための
下線記号の選択は、単に外観をよくして明瞭にするため
である。)次いでメツセージ「水平成分終了」が表示さ
れ、ブロックされたソース・コードが再びファイル「、
rawcJに格納され、その旨のメツセージ(「出力が
、RAWCで待機中」)が表示される。
第1図に示される事例のrCJソース・プログラムがこ
の時第5図に示されるようにブロッキング・グラフィッ
クを所定位置において見ることができる。当業者は、本
ブロッカ・ツールによるリスト表示の処理が獲得した明
瞭性ならびに判り易さにおける劇的な改善を直ちに認め
るられよう。また、第5図を検討することにより、なぜ
垂直線が実際に右揃えされる、即ち、ある深さで与えら
れたブロックがより大きな番号を付したブロックの右側
およびより小さな番号を付したブロックの左側に繰り込
み、深さ番号1を持つブロックが最も右側の位置の垂直
線を持つようにするかが明らかになるであろう。このよ
うな構成は、[CJ言語のプログラマが直感的にコード
・ブロックの関係に従うよう形成しようとする「心証」
に従おうとする傾向を有する。
以上のように、本発明の原理が実施例において明瞭にな
ったが、当業者には、かかる原理から逸脱することなく
特定の理境ならびに使用要件に特に適応される本発明の
実施に際して使用されるプログラム構造および構成の多
くの変更が容易に明瞭となろう。
【図面の簡単な説明】
第1図は通常見られる如き例示的な簡単な「C」ソース
・コード・リスト、第2図は本ブロッカ・プログラムの
第1段階における第1図の「C」プログラムの処理シー
ケンスを示すフローチャート、第3図は本ブロッカ・プ
ログラムの第2段階における第1図のrCJプログラム
の処理シーケンスを示すフローチャート、第4図は本ブ
ロッカ・プログラムの第3段階における第1図の「C」
プログラムの処理シーケンスを示すフローチャート、お
よび第5図は探索後のコード・ブロックの識別および入
れ子の注釈を提供する本ブロッカ・プログラムにより処
理された後の第1図のrCJプログラムのリスト作業を
示す図Min□ FIG、 1 FIG、 5 3つ#*#l劃M!側→9 Φ 3つ一丙、RW122開慢9 會 ! 7、kAwらをシードし、井ntめ11u門へψ 同じ線上で間如747シソク1搬イ危 ψ FIG、 3 φ RftJへ速L゛

Claims (1)

  1. 【特許請求の範囲】 1、処理されたソース・コード・リストに統合される複
    数の入れ子にされたブロック間の関係の図形的表示を行
    うプログラミング・ツールにおいて、 A)処理されないソース・コード・リストを取得し、 B)タブ付け記号として使用されるソース・コード言語
    における文字を選択し、 C)ステップB)において選択された文字をソース・コ
    ードにおける専用ストリングで置換し、 D)「ブロックの初め」の文字を含むソース・コードの
    各行毎に、ステップB)において選択された如きタブ付
    け文字および外向きの矢印を付し、 E)ブロックの終りの文字を含むソース・コードの各行
    毎に、ステップB)において選択された如きタブ付け文
    字および内向きの矢印を付し、F)外向きおよび内向き
    の矢印を縦方向に整合するようタブ付けし、 G)最初の行から部分的に処理されたソース・コードを
    順次調べる間、内向きあるいは外向きの矢印を持つ各行
    毎に、 1)外向きの矢印を持つ行に遭遇する時は、深さ番号の
    増分を行い、 2)内向きの矢印を持つ与えられた行に 遭遇する時は、次の行の初めの深さ番号値に対する深さ
    番号の減分を行うことにより、「深さ番号」を生成し、 H)ステップH)において得た深さ番号を外向きあるい
    は内向きの矢印を持つ行に付し、 I)外向きあるいは内向きの矢印を持つ各行毎に、この
    行に対する深さ番号により表わされる数の垂直線分を付
    し、 J)矢印を付した行の間の、行毎に 1)もし外向きの矢印を持つ行に続くならば、前記の矢
    印を付した行と同じ数の垂直線分を付し、 2)もし内向きの矢印を持つ行に続くならば、前記の矢
    印を付した行の垂直線分の数より1つ少ない数の垂直線
    分を付し、 K)全ての垂直線分を右側に揃え、 L)外向きあるいは内向きの矢印を持つ各行毎に、深さ
    番号と最も左側の垂直線分との間のスペースに水平線分
    文字を入れる ステップを実行することを特徴とするプログラミング・
    ツール。 2、ステップL)において、 A)前記深さ番号と外向きの矢印を持つ行における最も
    左側の垂直線分との間に入れられた水平方向文字がハイ
    フン記号であり、 B)前記深さ番号と内向きの矢印を持つ行における最も
    左側の垂直線分との間に入れらえた水平方向文字が下線
    記号であることを特徴とする請求項1記載のプログラミ
    ング・ツール。 3、処理された「C」言語ソース・コード・リストに統
    合される複数の入れ子にされた ブロック間の関係の図形的表示を行うプログラミング・
    ツールにおいて、 A)処理されないソース・コード・リストを取得し、 B)タブ付け記号として使用されるソース・コード言語
    における文字を選択し、 C)ステップB)において選択された文字をソース・コ
    ードにおける専用ストリングで 置換し、 D)「(」記号を含むソース・コードの各行毎に、ステ
    ップB)において選択された如きタブ付け文字および外
    向きの矢印を付し、 E)「)」を含むソース・コードの各行毎に、ステップ
    B)において選択された如きタブ付け文字および内向き
    の矢印を付し、 F)外向きおよび内向きの矢印を縦方向に整合するよう
    タブ付けし、 G)最初の行から部分的に処理されたソース・コードを
    順次調べる間、内向きあるいは外向きの矢印を持つ各行
    毎に、 1)外向きの矢印を持つ行に遭遇する時は、深さ番号の
    増分を行い、 2)内向きの矢印を持つ与えられた行に遭遇する時は、
    次の行の初めの深さ番号値に対する深さ番号の減分を行
    うことにより、「深さ番号」を生成し、 H)ステップH)において得た深さ番号を外向きあるい
    は内向きの矢印を持つ行に付し、 I)外向きあるいは内向きの矢印を持つ各行毎に、この
    行に対する深さ番号により表わされる数の垂直線分を付
    し、 J)矢印を付した行の間の行毎に、 1)もし外向きの矢印を持つ行に続くならば、前記の矢
    印を付した行と同じ数の垂直線分を付し、 2)もし内向きの矢印を持つ行に続くならば、前記の矢
    印を付した行の垂直線分の数より1つ少ない数の垂直線
    分を付し、 K)全ての垂直線分を右側に揃え、 L)外向きあるいは内向きの矢印を持つ各行毎に、深さ
    番号と最も左側の垂直線分との間のスペースに水平線分
    文字を入れる ステップを実行することを特徴とするプログラミング・
    ツール。 4、A)ステップB)において選択された文字がチルデ
    「〜」であり、 B)前記外向きの矢印が、文字「大なり」が続くハイフ
    ン記号により似せられ、 C)前記内向きの矢印が、ハイフン記号が続く文字「小
    なり」により似せられることを特徴とする請求項3記載
    のプログラミング・ツール。 5、ステップL)において、 A)前記深さ番号と外向きの矢印を持つ行における最も
    左側の垂直線分との間に入れられる水平方向の文字がハ
    イフン記号であり、 B)前記深さ番号と内向きの矢印を持つ行における最も
    左側の垂直線分との間に入れられる水平方向の文字が下
    線記号であることを特徴とする請求項4記載のプログラ
    ミング・ツール。
JP2078582A 1989-03-27 1990-03-27 プログラムのソース・コードのブロック及びその入れ子▼かん▲係の図形的表示を生成する方法 Expired - Lifetime JP2706348B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US32865089A 1989-03-27 1989-03-27
US328650 1989-03-27

Publications (2)

Publication Number Publication Date
JPH02281335A true JPH02281335A (ja) 1990-11-19
JP2706348B2 JP2706348B2 (ja) 1998-01-28

Family

ID=23281843

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2078582A Expired - Lifetime JP2706348B2 (ja) 1989-03-27 1990-03-27 プログラムのソース・コードのブロック及びその入れ子▼かん▲係の図形的表示を生成する方法

Country Status (5)

Country Link
EP (1) EP0397991B1 (ja)
JP (1) JP2706348B2 (ja)
AU (1) AU623499B2 (ja)
CA (1) CA2011289A1 (ja)
DE (1) DE69028437T2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55150068A (en) * 1979-05-14 1980-11-21 Sharp Corp Format control system for character processor
JPS57108856A (en) * 1980-12-25 1982-07-07 Fujitsu Ltd Processing system for information error display of form
JPS61160139A (ja) * 1984-12-31 1986-07-19 Nec Corp プログラムリストの自動段付け編集装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4965765A (en) * 1986-05-16 1990-10-23 International Business Machines Corp. Distinguishing nested structures by color

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55150068A (en) * 1979-05-14 1980-11-21 Sharp Corp Format control system for character processor
JPS57108856A (en) * 1980-12-25 1982-07-07 Fujitsu Ltd Processing system for information error display of form
JPS61160139A (ja) * 1984-12-31 1986-07-19 Nec Corp プログラムリストの自動段付け編集装置

Also Published As

Publication number Publication date
JP2706348B2 (ja) 1998-01-28
EP0397991A2 (en) 1990-11-22
AU5018890A (en) 1990-09-27
CA2011289A1 (en) 1990-09-27
DE69028437T2 (de) 1997-04-24
AU623499B2 (en) 1992-05-14
EP0397991B1 (en) 1996-09-11
DE69028437D1 (de) 1996-10-17
EP0397991A3 (en) 1991-09-18

Similar Documents

Publication Publication Date Title
US5596691A (en) Computer system and method for manipulating the display of drawings
CA2056865C (en) Interactive computerized document assembly system
US7823061B2 (en) System and method for text segmentation and display
KR100956571B1 (ko) 스프레드시트의 셀 처리 방법, 시스템 및 컴퓨터 프로그램제품
US5339391A (en) Computer display unit with attribute enhanced scroll bar
US6975335B2 (en) Method of displaying magnified and reduced areas and apparatus thereof
US5452206A (en) Method for generating documentation for computer software
US6901407B2 (en) System and method for updating project management scheduling charts
US20040205535A1 (en) Method and apparatus for the construction and use of table-like visualizations of hierarchic material
US20040205536A1 (en) Method and apparatus for the viewing and exploration of the content of hierarchical information
JPH02300847A (ja) 構造化文書処理方法
US5307493A (en) "C" program source blocker
US20040153971A1 (en) System and method for checking and resolving publication design problems
US5040113A (en) Data manipulation program
KR0170562B1 (ko) 텍스트 디스플레이 방법
JPS6037945B2 (ja) 階層木構造のテキストを順序構造で表示する方法
JPH02281335A (ja) C言語プログラム・ソース・ブロッカ
CN115169298A (zh) 一种跨浏览器的Word程序化批注方法
KR100237659B1 (ko) 도형 편집 장치 및 방법
CN112817505A (zh) 软件信息界面显示方法、装置、存储介质及设备
JPH03147059A (ja) 文書処理方法
Gusenius et al. C" program source blocker
JPS607517A (ja) 文書作成装置
JP3988900B2 (ja) 文書処理装置およびそのプログラム記憶媒体
JPH0588863A (ja) プログラム開発支援システム