JPS6375835A - 目的コ−ド、プログラム・リスト及び設計文書を生成する装置 - Google Patents

目的コ−ド、プログラム・リスト及び設計文書を生成する装置

Info

Publication number
JPS6375835A
JPS6375835A JP62126100A JP12610087A JPS6375835A JP S6375835 A JPS6375835 A JP S6375835A JP 62126100 A JP62126100 A JP 62126100A JP 12610087 A JP12610087 A JP 12610087A JP S6375835 A JPS6375835 A JP S6375835A
Authority
JP
Japan
Prior art keywords
design
code
program
node
design document
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
JP62126100A
Other languages
English (en)
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS6375835A publication Critical patent/JPS6375835A/ja
Pending 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/73Program documentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は原始コード(原始プログラム〕に関する文書と
生成することに関し、特に、原始コードに埋め込まれて
いる設計文書ステートメントド抽出することに関するも
のである。
B、従来技術 ]ンピュータ・ソフトウェアに関する文書は、ソフトウ
ェアの作成後書かれるのが普通である。
この文書は、通常、ソフトウェアから分離している。但
し、ソフトウェア、特に原始コードの内部に文書と埋め
込んでおくのがプログラマ−の通常のやり方である。こ
の内部文書はコメント・ステートメントと呼ばれ、原始
コードが目的コード(目的プログラム)、即ち、機械で
実行可能なコードにコンパイルされるときに、コンパイ
ルされないテキスト情報分含む。コメント・ステートメ
ントは、通常、原始コード自体に保持されている全体的
ソフトウェアの小さな部分である。原始コード内のコメ
ントの使用に関する技術は米国特許第4488258号
に開示されている。この米国特許において説明されてい
る制御システムは、コメントが端末キーボードから入れ
られるとき、簡略コメント番号と生じる手段を有する。
コメントはプログラムとは別に記憶され且つユーザーに
対して自動的に表示される。コンピュータによって文書
と生成する従来技術の例は米国特許第4370707号
に開示されている。即ち、これは建築仕様及び指示の印
刷出力と自動的に生じるシステムを示している。このシ
ステムは複数の異なったファイルに記憶されているデー
タ分結合して所望の仕様及び指示として組立てる手段と
有する。
コンピュータ・プログラムの文書化に関する他の技術は
アイ・ビー・エム・テクニカル・ディスクロージャ・プ
レティン(I BM  TechnicalDiscl
osure  Bulletin )Vol、24、N
o。
12、May、1982の第6540頁の−1コアピユ
ータ・プログラム・ドキュ、メンテージョン(Comp
uter  Program  Documentat
ion)”と題する記事及びVol、15、N007、
Decembers1972の第2156〜2155頁
の1セルフ・ドキュメンテイング・マクロス(Se1f
−Documenting Macros )=と題す
る記事において紹介されている。前者はコメント付き原
始コード分結合して文書を生成する方法と示しており、
後者は新しいマクロ命令オペランドであって、拡張され
るとき、その中の情報と含む文書を生じるものを示して
いる。
C0発明が解決しようとする問題点 従来技術では、原始コードに埋め込まれている文書に基
いて外部文書と生成することは行われていない。又、原
始コード内の文書に関して原始コード分検査することも
行われていない。本発明は、この様なことを行う新規な
装置と提供すること2目的としている。
D1問題点を解決するための手段 本発明による装置は、原始コード(原始プログラム)に
基いて、機械で実行可能な目的コード(目的プログラム
)、プログラム・リスト及び対応する設計文書を生成す
る。原始コードは、キーワード2含むインプリメンテー
ション・コードの複数のステートメントと、このインプ
リメンテーション・コードのキーワードに対応するワー
ドと含む設計文書コードの複数のステートメントとt含
む。該Reは原始コード分読取る入力手段と、インプリ
メンテーション−コードから目的コードと生成するコン
パイル手段とを有する。目的コードハインプリメンテー
ション・コードのキーワードから得られる実行可能な指
令を含む。プログラム・リストは原始コードにおいて出
現する順序で列挙された全てのコードのリストである。
更に、該装置は、原始コードにおいて出現する順序で全
てのキーワード及び対応する設計文書コードlストアツ
ブすることによって設計文書と生成する。
実施例において、設計文書コードは設計コードであるこ
とを示す標識を含む。
又、実施例の装置は、インプリメンテーション・コード
が対応する設計文書コード分含むか否かを検査する検査
手段と、該検査手段の検査結果に応じて、原始コード内
で対応する設計文書コード会含まないインプリメンテー
ション・コードの位置と指示するエラー指示手段とを有
する。この実施例の場合、脱落エラーは、それが生じた
位置に設計コメント・テンプレートに挿入することによ
ってプログラム・リスト及び設計文書中に示される。
E、実施例 本発明はプログラムに関する文書?生成する。
文書の内容は最初にプログラムが作成されるときプログ
ラム・コードに埋め込まれるステートメントである。本
発明はプログラム・コードを書くのに使用される高水準
言語を、プログラム・コードにより実施されるアルゴリ
ズムと規定し且つ文書化する一連の低水準設計仕様ステ
ートメントを含むように拡張することを含む。設計仕様
ステートメントは設計コメントと呼ばれ、対応するイン
プリメンテーション・コードの目的を述べる。好ましい
実施例において、設計コメントとインプリメンテーショ
ン・コードとの対応関係は、インプリメンテーション・
コードの傍に設計コメントと置くことによって明らかに
されている。インプリメンテーション・コードのステー
トメントの目的を記述するに当り、設計コメントはコー
ド動作と記述するための高水準言語コード・ワード、即
ちキーワード会含む。キーワードはインプリメンテーシ
ョン・コードにおいて用いられているのと同じワードで
ある。
高水準言語で書かれたインプリメンテーション・コード
は、機械で実行可能なコード、即ち目的コードに変換す
る必要がある。高水準言語の原始コードと目的コードに
変換することは、コンパイラの使用によって行われる。
コンパイラは原始コードを入力として受は入れる計算機
において実行されるプログラムで1、原始プログラムの
機能?実現するように機械で実行可能な複数のステート
メントから成る目的プログラムと生成する。コンパイラ
の詳細は、例えば、1977年にアディソン、ウェスリ
ー、パブリッシング、カンバニイよシ発行されたエイ・
ブイ・エイハオ(A、V。
Ahao)及びジエイ・ディ・アルマン(J、D。
Ullman)著作の「コンパイラ設計の原理(Pri
nciples  of  Compiler  De
stgn)、Jに記載されている。
本発明はコンパイラと用いて実現される。第1図はコン
パイラ12を有するプロセッサ14?示している。プロ
セッサ14は入力として原始コードと受は取り、目的コ
ード20、プログラム・リスト16及び設計文書(コー
ド)18を生成する。
従来技術においては、コンパイラは目的コード(機械で
実行可能な複数のステートメント)とプログラム・リス
トだけと生成する。本発明は現存のコンパイラと改良し
て、設計文書を別個の出力として生じることを意図した
ものである。又、本発明は、原始コードのステートメン
トに関して設計文書を検査して、設計文書中の脱落部、
あるいはインプリメンテーション・コードと対比して不
正確若しくは不整合な部分の指示を生じる手段?もたら
す。
第2図は本発明に従ったコンパイラ12のブロック図で
ある。ブロック22は1つの例外点を除いて通常のコン
パイラと同等の部分である。例外点は構文分析手続き2
4である。もちろん、ブロック22外の構文)!J−2
6等も新規なものである。
構文分析手続き24は原始ゴー110分受は取って、構
文ト’)  26に生成する。コンパイラの構文分析部
は、通常、パーサと呼ばれる。構文を分析して構文トリ
ート生成するパーサの機能は前記の文献「コンパイラ設
計の原理」の第4章及び第5章に記載されている。コン
パイラ12は設計分析及び設計修正手続き28において
構文トリー26と分析して、設計修正手続文トリー30
=を生じる。設計修正済構文ト!J−50の出力は設計
抽出手続き62及び意味論的分析手続き34の入力にな
っている。設計抽出手続き62の出力は設計文書18で
ある。意味論的分析手続き34は中間言語66と生じ、
後者は最適化手続き68の入力になる。最適化手続き3
8の出力として生じる最適化中間言語40はコード生成
手続き42の入力になる。コード生成手続き42U目的
コード20及びプログラム・リスト16i生じる。目的
コード20及びプログラム・リスト16の生成は従来技
術に従って行われるので、詳しい説明は省くことにする
。一方、構文分析手続き24における設計文書コードの
構文分析、構文に埋め込まれている設計文書コード2含
む構文)IJ−26の生成、設計文書の正確さと対応す
る原始コードに基いて検査する設計分析及び設計修正手
続き28、設計文書コードと含む設計修正行構文トIJ
−30の生成、及び設計抽出手続き32は本発明に従っ
た新規なものである。
構文分析手続き24は入力原始コードを調べて、そのコ
ードの複数の文字を、論理的に同じ部類に入るものと集
めた複数の群、即ちトークンに分ける。通常のトークン
は、FORTRANで用いられているDoやIF等のキ
ーワード、変数名XやNUM等の識別子、=や十等の演
算子記号、及び(や1等の句読記号である。これらのト
ークンは次に分析されるトークンのストリームとして供
給される。分析手続きは2つの機能と含む。第1の機能
はトークンが原始言語の仕様によって許容されるパター
ンで生じるか否かを分析する機能であシ、第2の機能は
コンパイラの後続の手続きにおいて使用すべきトークン
のトリー状構造分生じる機能である。構文トリーの生成
について説明するに当シ、幾つかの記号と使用する。な
お、構文トリーの生成に関する記号の使用態様は本発明
独特のものであるが、構文トリ−ト生成する方法自体は
当技術分野において周知のものであり、前記参考文献に
おいて詳しく説明されている。
構文トリーはブランチ・ノードとリーフ・ノードの両方
を含む。ブランチ・ノードの記号は第3A図に示されて
いる。ブランチ・ノード・ブロック50は構成の型と規
定する部分52と3つの設計コード・ステータス・フィ
ールド54.56.58とから成る。フィールド54は
自己設計フィールドど名付けられており、構成設計仕様
が整合(C)、不整合CI)及び無しNのいずれである
かを示す。
同様に、フィールド56はトップ設計フィールドと名付
けられており、構成の直接構成要素に関する設計仕様が
整合しているか否かを示す。更に、フィールド58はデ
ィープ設計フィールドと名付けられておシ、最上位レベ
ルよυ下の構成要素に関する設計仕様が整合しているか
否かを示す。ブランチ・ノード50は、最上位のデセン
ダント(子ノードに対する接続を示す矢印60、次位の
シブリング(兄弟)ノードに対する接続分示す矢印62
、及びペアレント(親)ノードに対する接続と示す矢印
64を有する。
自己設計フィールド54は、最上位デセンダントが設計
コメントであるならば、整合(C) e示し、そうでな
ければ、無しCN)’&示すようにセットされる。
トップ設計フィールド56は、少なくとも1つのサブト
リーがあり、全てのサブトリーがそれぞれ整合を示す自
己設計フィールドと有するならば、整合(C)を示すよ
うにセットされる。少なくとも2つのサブトリーがあり
、そのうちの少なくとも1つのサブトリーが整合と示す
自己設計フィールドと有し且つ他の少なくとも1つのサ
ブトリーが無しt示す自己設計フィールドを有する場合
には、トップ設計フィールド56は不整合(I)Th示
すようにセットされる。全くサブトリーが・無い場合又
は全てのサブトリーが無しを示す自己設計フィールド?
有する場合には、トップ設計フィールド56は無しくN
J&示すようにセントされる。
ディープ設計フィールド58は、不整合2示すトップ設
計フィールドと有するサブトリーが全然無い場合又は不
整合と示すディープ設計フィールドを有するサブトリー
が全然無い場合には、整合と示すようにセットされる。
不整合と示すトップ設計タス・フィールド又は不整合と
示すディープ設計フィールドと有するサブトリーが1つ
でもあれば、ディープ設計フィールド58は不整合2示
すようにセットされる。
第6B図はリーフ・ノード70分示すものである。リー
フ・ノード70は記号の型と規定する部分66と記号と
含む部分68と有する。矢印72はリーフ・ノード70
をペアレント・ノードに接続し、矢印74はリーフ・ノ
ード70と次位のシブリング・ノード(存在する場合)
に接続する。
リーフ・ノード70及びブランチ・ノード50は、実施
例において構文)IJ −、、構成するために用いられ
る。本文末尾の第1表はPa5calで記述したソース
・コードの例示示している。なお、Pa5calに限ら
ず、任意の高水準言語が使用可能である。実際の設計文
書ステートメントは設計コメントの先頭にある!で指定
されている。第1表に示されているように、設計コメン
トの位置は高水準言語のインプリメンテーション・コー
ドに隣接している。第1表のPa5calコード76は
、”5earch″と名付けられたサブルーチンを用い
て反復的サーチを行うための一組のコード・ステートメ
ントである。コードの先頭に感嘆符と含み、これによっ
て設計コメントであることが表示されている。又、コー
ド82はPa5calキーワード(IF)及び指定され
たとお9の設計コメントヲ含む。
構文トリーの一部分の形成と例示するために、コード8
0は第4図のブランチ・ノード及びリーフ・ノード記号
を用いて分析される。第4図において、ブランチ・ノー
ド92は構成?ステートメントとして指定する。又、ブ
ランチ・ノード92は無しを表わすNにセットされた自
己設計フィールドを有する。トップ設計フィールドもN
である。
ディープ設計フィールドは整合と表わすCである。
ブランチ・ノード92は線96によってリーフ・ノード
94に接続されている。リーフ・ノード94は記号がキ
ーワードであり、実際の記号が“call“であること
t示している。リーフ・ノード94は線100によって
次位のシブリング(ノード)102に接続されている。
シブリング102は識別子“5earch″を含み、矢
印104によって次位のシブリング106に接続されて
いる。
シブリング106は演算子“(″と含み、線108によ
って次位のシブリング110に接続されている。シブリ
ング110は識別子NSを含み、線112によって次位
のシブリング114に接続されている。シブリング11
4は演算子”)”を含み、線98によってペアレントと
してのブランチ・ノード92に接続されている。第1表
のコードは、第5図に示されている設計ステータス・フ
ィールドの整合情報を有する構文トリーを用いて分析さ
れる。
第1表のコード全体に関する構文トリーは第5図に示す
とおシであシ、この構文トリーを用いてコードの分析が
行われる。なお、これは第2図の構文分析手続き24の
結果として得られる構文トIJ −26である。先ず、
第5図のノード92の設計ステータス・フィールドにつ
いて説明する。キーワードcall″の前に設計ステー
トメントが存在しないので、自己設計フィールドは無し
を表わすNi含む。呼出しくcall)ステートメント
の構成要素に関する設計ステートメントも無いので、ト
ップ設計フィールドもNi含む。トップ・レベルの下に
設計構成要素が無いので、ディープ設計フィールドは整
合と表わすCを含む。
第6A図は第2図の設計分析及び設計修正手続き28の
詳細を示す流れ図である。この手続きは第5図のノード
76に対応する構文トリーのルート(根)から始まる。
次のステップ122において、現ノードがブランチか否
かと判断する。ブランチならば、線124を介してステ
ップ128へ進む。
ブランチでなければ、線126f(介してステップ13
0へ進み、次位の7プリ/グへ移行する。これについて
は、後で第6B図を参照して詳しく説明する。ステップ
160による次位のシブリングへの移行後、線140と
介してステップ152へ進み、移行手続きによりトリー
から出るべきか否かを判断する。再びステップ122に
戻って説明すると、現ノードがブランチの場合、ステッ
プ128へ進み、現ノードの自己設計フィールドがNで
あるか否かを判断する。Nでなければ、ステップ134
は実行せず、線157を介してステップ138へ進み、
Nであれば、線132を介してステップ134へ進む。
ステップ164において、現ノードの第1のデセンダン
トとして新しいブランク設計コメント(ノード)を挿入
し、且つ現ノードの自己設計フィールドをCに変更する
。次に、線136分介してステップ138へ進み、現ノ
ードのトップ設計フィールド又はディープ設計フィール
ドがIであるか否か分判断する。いずれかに該当する場
合、線1421fI:介してステップ146へ進み、第
1のデセンダントへ移行する。該当しない場合、線14
4を介してステップ148へ進み、後で第6B図を参照
して詳しく説明するように、次位のシブリングへ移行す
る。ステップ146及び148のいずれかの実行後、線
150を介して判断ステップ152へ進む。トリーから
出るべきでない場合、1m156に介してステップ12
2へ戻る。トリーから出るべきであるならば、線154
と介して手続きを終了する。
第6B図は第6A図のステップ130及び148におけ
る次位のシブリングへの移行に関する流れ図である。ス
テップ160に示すように、現ノードから動作を開始し
、次のステップ162へ進み、次位のシブリングが有る
か否かを判断する。
有る場合、線164fc介してステップ186へ進み、
次位のシブリングへ移9、線184を介して移行処理を
終了する。次位のシブリングが無い場合、線166を介
してステップ168へ進ミ、ペアレント(ノード)か有
るか否かを判断する。ペアレントが無い場合、線172
を介してステップ182へ進み、トリーから出る。そし
て、線184を介して動作を終了する。ペアレントが有
る場合、線170を介してステップ174へ進ミ、ペア
レントへ移る。ステップ174の実行後、線176と介
してステップ178へ進み、トップ設計フィールド及び
ディープ設計フィールドの両方をCにセットする。ステ
ップ178の実行後、線180を介してステップ162
へ戻る。
第7図は第5図の構文トリーの一部分を修正する処理と
示すものである。先ず、ブランチ・ノード78はNにセ
ットされた自己設計フィールド、Nにセットされたトッ
プ設計フィールド、及び■にセットされたディープ設計
フィールドと有するものとして規定されている。従って
、ブランチ・ノード92はNNCにセットされた設計コ
ード・ステータス・フィールドを有する。修正された構
文トリーは図示の如く追加された設計コメント79及び
93と含む。これらは設計コメント・テンプレートとし
て追加されておシ、図示の如く、ステートメントが設計
コード・ステートメントであることを示す感嘆符と、脱
落があったことを示すブランク・ラインとを含む。ブラ
ンチ・ノード92′は、設計コメント95の追加を反映
してCに変更された自己設計フィールド分有する。同様
に、ブランチ・ノード78′は設計コメント79の追加
を反映してCに変更された自己設計フィールドと、設計
コメント93の追加を反映して共にCに変更されたトッ
プ設計フィールド及びディープ設計フィールドと含む。
第6A図及び第6B図のアルゴリズムの実行により修正
された形の第5図の構文トリーは第8@に示されている
。図示の如く、幾つかの設計コメント・テンプレートが
構文トリーに挿入されてお)、それに応じてブランチ・
ノードの適当な設計ステータス・フィールドが修正され
ている。
第1表の原始コードについて得られるプログラム・リス
トは第2表に示されている。設計コメント・テンプレー
トの追加により、どこで追加の設計コメントが必要であ
るかをプログラマ−に指示している。
再び第2図を参照すると、設計抽出手続き32は設計修
正済構文トリー30(第8図に示されている)について
実行される。第9A図は設計抽出手続き52の流れ図で
ある。この手続きは、ステップ200で示すように構文
トリーのルートから始まり、ステップ202へ進んで、
現ノードがブランチか否かを判断する。現ノードがブラ
ンチならば、線204を介してステップ208へ進み、
現ノードの自己設計フィールドがCであるか否かと判断
する。自己設計フィールドがCでなければ、線214分
介してステップ226へ進む。自己設計フィールドがC
ならば、線212と介してステップ218へ進み、現ノ
ードの第1のデセンダント?抽出する。このステップに
ついては、後で第9C図を参照して詳しく説明する。ス
テップ218の終了後、線222を介してステップ22
6へ進み、現ノードのトップ設計フィールドがCである
か否かと判断する。トップ設計フィールドがCならば、
線260と介してステップ266へ進み、第1のデセン
ダントへ移行する。トップ設計フィールドがCでなけれ
ば、m232f介してステップ268へ進み、次位のシ
ブリングへ移行する。
ステップ266又は268の終了後、線240を介して
ステップ242へ進む。再びステップ202の説明に戻
ると、現ノードがブランチの場合、ここから線206を
介してステップ210へ進み、現ノードがキーワードか
否かを判断する。現ワードがキーワードでなければ、線
227を介してステップ228へ進む。現ノードがキー
ワードならば、線216と介してステップ220へ進み
、現ノードの第1のデセンダントを抽出する。ステップ
220の終了後、線224を介してステップ228へ進
み、次位のシブリングへ移行する。ステップ228の終
了後、線264を介してステップ242へ進み、現ノー
ドがルートへ戻っているか否かを判断する。ルートへ戻
っていなければ、線246 f介してステップ202へ
戻って処理を続ける。ルートへ戻っているならば、線2
48分介して当手続きから出る。
ステップ218及び220の操作は書式化手続きであシ
、第9B図に詳しく示されている。この手続きを開始す
ると、先ずステップ250へ進み、抽出したノードの型
について判断する。ノードがキーワードだけを含むなら
ば、線254と介してステップ256へ進み、そのキー
ワードが構造の第1のキーワードであるか否かを判断す
る。第1のキーワードならば、線260を介してステッ
プ268へ進み、コンパイラが次の新しいラインの処理
へ進むべきであることを定め、且つキーワードを前の設
計コメントに整列させる。第1のキーワードでない場合
には、線262f介してステップ270へ進み、コンパ
イラを次のラインへ進ませ且つキーワードを同じ構造内
の前のキーワードに整列させる。ステップ268又は2
70の終了後、線280と介してステップ284へ進み
、キーワードよりも2力ラム分だけラインの字下げを行
なう。ステップ284の終了後、線286と介して当手
続きよシ出る。再びステップ250の説明に戻ると、抽
出したコードが設計コメントを含む場合には、線252
を介してステップ258へ進み、前に抽出した/−ドが
キーワードであるか否かを判断する。前に抽出したノー
ドがキーワードであるならば、線264を介してステッ
プ272へ進み、コンパイラはキーワードと同じライン
に留まり、キーワードに続く第2のカラムに設計コード
・ステートメントを整列させる。前に抽出したノードが
キーワードでなければ、線266を介してステップ27
4へ進み、現在の字下げカラムに整列した新しいライン
を形成する。ステップ272又は274の終了後、線2
82を介して当手続きから出る。
第9C図は第9A図のステップ228及び238におけ
る次位のシブリングへの移行処理に関する流れ図である
。先ず最初のステップ288において、次位のシブリン
グが有るか否かと判断する。
次位のシブリングが有るならば、線290を介してステ
ップ294へ進んで、次位のシブリングへ#9、線29
8と介して画処理を終了する。次位のシブリングが無い
場合には、線292を介してステップ296へ進み、ペ
アレントが有るか否かと判断する。ペアレントが無けれ
ば、線300を介して画処理を終了する。ペアレントが
有るならば、ライン302を介してステップ604へ進
み、ペアレントへ移った後、線606を介してステップ
288へ戻る。
第2図の抽出手続き62により抽出した設計コメントは
第3表に示されている。プログラマ−がブランクを埋め
て設計コメントト完成させることによシ、原始コードの
完全な設計文書が得られる。
以上、1つの実施例について詳しく説明したが、本発明
はこれに限定されることなく、種々の態様で実施可能で
ある。
F0発明の効果 原始コードに基いて、目的コードやプログラム・リスト
のみならず、設計文書も生成することができる。又、好
ましい実施例では、原始コードのエラーと検出して指示
することができる。
第1表 1 Conduct 1terative 5earc
h−76Repeat −78 CALL 5earch (NS): −80第2表 1 Conduct 1terative 5earc
hrepeat !□ !□ Ca1l 5earch (NS): !□ if l 5earch 5ucceedsNS=O then j set 5tatus 1ndicat
orstatus :=yes □!□ call recover (NS) until 1 status=yes 第3表 1 Conduct 1terative 5earc
hREPEAT ! ! IF j 5earch 5ucceedsTHEN 
l set 5tatus 1ndicatorELS
E ! UNTIL j
【図面の簡単な説明】
第1図は原始コード入力に応じて設計文書出力等と生じ
るコンパイラを有する本発明に従ったプロセッサのブロ
ック図、第2図は原始コードに応じて設計文書、目的コ
ード及びプログラム・リスト?生じるプログラムの流れ
図、第3A図はブランチ・ノードの図式記号を示す図、
第6B図はり−7・ノードの図式記号を示す図、第4図
は第1表の呼出しステートメントを図式的に示す図、第
5図は第1表に例示されたパスカル・コード2図式的に
示す図、第6A図は構文分析の流れ図、第6B図は第6
A図の次位のシブリングへの移行ステップの流れ図、第
7図は第1表の例における呼出しステートメント中の設
計文書化コードの脱落の修正と示す図、第8図は第1表
の例に関する設計修正後の構文トリーを示す図、第9A
図は設計修正後の構文トリーから設計文書コードと抽出
する手続きの流れ図、第9B図は第9A図の書式化手続
きの流れ図、第9C図は第9A図の抽出手続き中の次位
のシブリングへの移行ステップの流れ図である。 10・・・・原始コード、12・・・・コンパイラ、1
4・・・・プロセッサ、16・・・・プログラム・リス
ト、18・・・・設計文書、20・・・・目的コード。 出願人インターナショナノいビジネス・マシーンズ・コ
ーポレーション代理人弁理士  岡   1)  次 
  生(外1名) 第3B図 第3A図 第6B図 11eB図 第9C図

Claims (2)

    【特許請求の範囲】
  1. (1)キーワードを含むインプリメンテーション・コー
    ドの複数のステートメント及び上記キーワードに対応す
    る設計文書コードの複数のステートメントを有する原始
    プログラムを読取る入力手段と、上記インプリメンテー
    ション・コードのキーワードに基いて機械で実行可能な
    指令を含む目的コードを生成すると共に、上記原始プロ
    グラム内で出現する順序で全てのインプリメンテーショ
    ン・コードを列挙したプログラム・リストを生成するコ
    ンパイル手段と、 上記原始プログラム内で出現する順序で全てのキーワー
    ド及び対応する設計文書コードを列挙した設計文書を生
    成する抽出手段と を有し、目的コード、プログラム・リスト及び設計文書
    を生成する装置。
  2. (2)上記インプリメンテーション・コードが対応する
    設計文書コードを含むか否かを検査する検査手段と、該
    検査手段の検査結果に応じて、上記原始コード内で対応
    する設計文書コードを含まないインプリメンテーション
    ・コードの位置を指示するエラー指示手段とを有し、該
    エラー指示手段の指示に従ったエラー標識を上記設計文
    書に含ませるようになっている特許請求の範囲第(1)
    項記載の装置。
JP62126100A 1986-09-17 1987-05-25 目的コ−ド、プログラム・リスト及び設計文書を生成する装置 Pending JPS6375835A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US908436 1986-09-17
US06/908,436 US4860203A (en) 1986-09-17 1986-09-17 Apparatus and method for extracting documentation text from a source code program

Publications (1)

Publication Number Publication Date
JPS6375835A true JPS6375835A (ja) 1988-04-06

Family

ID=25425801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62126100A Pending JPS6375835A (ja) 1986-09-17 1987-05-25 目的コ−ド、プログラム・リスト及び設計文書を生成する装置

Country Status (3)

Country Link
US (1) US4860203A (ja)
EP (1) EP0261845A3 (ja)
JP (1) JPS6375835A (ja)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2624753B2 (ja) * 1988-03-18 1997-06-25 株式会社日立製作所 上位仕様書作成方法
US5038316A (en) * 1988-08-22 1991-08-06 James D. Hempleman Method for generating user documentation for an application program by executing commands associated with different aspects of the application program in response to analysis of the application program
US5129086A (en) * 1988-11-29 1992-07-07 International Business Machines Corporation System and method for intercommunicating between applications and a database manager
US5202977A (en) * 1990-07-13 1993-04-13 Premenos Corp. Edi translation system using plurality of communication processes and de-enveloping procedure corresponding to transmitted communication process
US5560009A (en) * 1990-09-21 1996-09-24 Hewlett-Packard Company Generating symbolic debug information by merging translation and compiler debug information
JP2797698B2 (ja) * 1990-11-14 1998-09-17 株式会社日立製作所 ソフトウェア再利用支援方法
US6389481B1 (en) * 1991-08-19 2002-05-14 International Business Machines Corporation Automatic program documentation
US5452206A (en) * 1991-09-19 1995-09-19 Pacific Bell Method for generating documentation for computer software
US5613115A (en) * 1991-12-09 1997-03-18 Total Control Products, Inc. Method for using PLC programming information to generate secondary functions such as diagnostics and operator interface
US5752034A (en) * 1993-01-15 1998-05-12 Texas Instruments Incorporated Apparatus and method for providing an event detection notification service via an in-line wrapper sentry for a programming language
US5524192A (en) * 1993-02-09 1996-06-04 International Business Machines Corporation Simplifying maintaining and displaying of program comments
JPH06259262A (ja) * 1993-03-08 1994-09-16 Fujitsu Ltd 分岐確率を設定するコンパイラの処理方法および処理装置
US5717929A (en) * 1993-03-30 1998-02-10 Sanyo Electric Co., Ltd. Apparatus and method for program execution, and image reproduction apparatus with special effects utilizing such apparatus and method
US5408667A (en) * 1993-07-19 1995-04-18 Motorola, Inc. Method for unified design documentation
US6282545B1 (en) * 1993-10-28 2001-08-28 International Business Machines Corporation Mechanism for information extraction and traversal from an object base including a plurality of object classes
EP0736203A1 (en) * 1993-12-23 1996-10-09 Diacom Technologies, Inc. Method and apparatus for implementing user feedback
JPH07219758A (ja) * 1994-02-02 1995-08-18 Fujitsu Ltd 仕様書生成方法
US5513305A (en) * 1994-03-01 1996-04-30 Apple Computer, Inc. System and method for documenting and displaying computer program code
US5642472A (en) * 1994-05-20 1997-06-24 Lucent Technologies Inc. Software discovery system
EP0694835A1 (en) 1994-07-29 1996-01-31 AT&T Corp. Integrated software command specification and documentation system
US5862382A (en) * 1995-05-08 1999-01-19 Kabushiki Kaisha Toshiba Program analysis system and program analysis method
US5963739A (en) * 1996-04-26 1999-10-05 Peter V. Homeier Method for verifying the total correctness of a program with mutually recursive procedures
US6055541A (en) * 1997-09-19 2000-04-25 Sas Ip, Inc. Automatic report generating system
US6507855B1 (en) * 1998-06-25 2003-01-14 Cisco Technology, Inc. Method and apparatus for extracting data from files
US8074256B2 (en) * 2000-01-07 2011-12-06 Mcafee, Inc. Pdstudio design system and method
US7047288B2 (en) * 2000-01-07 2006-05-16 Securify, Inc. Automated generation of an english language representation of a formal network security policy specification
US6779120B1 (en) * 2000-01-07 2004-08-17 Securify, Inc. Declarative language for specifying a security policy
GB2360609A (en) * 2000-03-22 2001-09-26 Ibm Dynamically generating expanded user messages in a computer system
WO2001079993A2 (en) * 2000-04-16 2001-10-25 Kestrel Institute Method and apparatus for method and apparatus for self-adaptive code
US6725218B1 (en) 2000-04-28 2004-04-20 Cisco Technology, Inc. Computerized database system and method
US6951010B2 (en) * 2000-09-19 2005-09-27 Fujitsu Limited Program specification generating system
TWI230876B (en) * 2001-07-20 2005-04-11 Via Tech Inc Method to preserve comments of circuit simulation text file
US20030037312A1 (en) * 2001-08-07 2003-02-20 Gerald Czech Documentation generator
CA2388073A1 (en) * 2002-05-29 2003-11-29 Ibm Canada Limited-Ibm Canada Limitee Method for semantic verification of supporting programming artefacts
US20040003383A1 (en) * 2002-06-28 2004-01-01 Microsoft Corporation Stripping of unnecessary information from source code
DE10308815B4 (de) * 2003-02-27 2008-06-05 Siemens Ag Verfahren zur Erzeugung und Visualisierung einer aufgabenorientierten Schrittdarstellung
US20050081189A1 (en) * 2003-10-14 2005-04-14 Sophia Krasikov Aggregation of document elements into runtime code
US7568184B1 (en) * 2004-04-14 2009-07-28 Sun Microsystems, Inc. Software documentation generator
US7788640B2 (en) * 2004-12-28 2010-08-31 Microsoft Corporation Using code analysis to generate documentation
US7650353B2 (en) * 2005-12-16 2010-01-19 Microsoft Corporation XML specification for electronic data interchange (EDI)
US7599944B2 (en) * 2005-12-16 2009-10-06 Microsoft Corporation Electronic data interchange (EDI) schema simplification interface
US7647500B2 (en) * 2005-12-16 2010-01-12 Microsoft Corporation Synchronous validation and acknowledgment of electronic data interchange (EDI)
US7447707B2 (en) * 2005-12-16 2008-11-04 Microsoft Corporation Automatic schema discovery for electronic data interchange (EDI) at runtime
US7703099B2 (en) * 2006-02-24 2010-04-20 Microsoft Corporation Scalable transformation and configuration of EDI interchanges
US7685208B2 (en) * 2006-02-24 2010-03-23 Microsoft Corporation XML payload specification for modeling EDI schemas
US7620645B2 (en) * 2006-02-24 2009-11-17 Microsoft Corporation Scalable algorithm for sharing EDI schemas
US8156148B2 (en) * 2006-02-24 2012-04-10 Microsoft Corporation Scalable algorithm for sharing EDI schemas
US7984373B2 (en) * 2006-02-24 2011-07-19 Microsoft Corporation EDI instance based transaction set definition
US7853924B2 (en) * 2006-04-13 2010-12-14 Sap Ag Systems and methods for processing non-functional commentary of computer source code
US20080028371A1 (en) * 2006-07-26 2008-01-31 William Brothers Method and system for using application development data to instantiate support information
JP4740060B2 (ja) * 2006-07-31 2011-08-03 富士通株式会社 重複データ検出プログラム、重複データ検出方法および重複データ検出装置
US20090210861A1 (en) * 2008-02-20 2009-08-20 Mariana Alupului Dita doclet tool and method for extracting and analyzing api documentation
US20090288072A1 (en) * 2008-05-15 2009-11-19 International Business Machines Corporation Automatic Tests of Product Documentation
US8938717B1 (en) * 2009-03-16 2015-01-20 Xilinx, Inc. Updating an installed computer program
US8819629B2 (en) * 2010-02-17 2014-08-26 Red Hat, Inc. Automatically generating documentation on application programming interfaces
JP5140708B2 (ja) * 2010-07-30 2013-02-13 京セラドキュメントソリューションズ株式会社 電子機器用プログラム及び電子機器システム
US9164753B2 (en) 2013-01-08 2015-10-20 Sap Se Generating software updates
US9043758B2 (en) 2013-03-15 2015-05-26 International Business Machines Corporation System for generating readable and meaningful descriptions of stream processing source code
EP3005120A2 (en) * 2013-05-30 2016-04-13 Veracode, Inc. Systems and methods for remote analysis of software applications
US9110737B1 (en) 2014-05-30 2015-08-18 Semmle Limited Extracting source code
US9954746B2 (en) 2015-07-09 2018-04-24 Microsoft Technology Licensing, Llc Automatically generating service documentation based on actual usage
US9443192B1 (en) 2015-08-30 2016-09-13 Jasmin Cosic Universal artificial intelligence engine for autonomous computing devices and software applications
US9864933B1 (en) 2016-08-23 2018-01-09 Jasmin Cosic Artificially intelligent systems, devices, and methods for learning and/or using visual surrounding for autonomous object operation
US10452974B1 (en) 2016-11-02 2019-10-22 Jasmin Cosic Artificially intelligent systems, devices, and methods for learning and/or using a device's circumstances for autonomous device operation
US10607134B1 (en) 2016-12-19 2020-03-31 Jasmin Cosic Artificially intelligent systems, devices, and methods for learning and/or using an avatar's circumstances for autonomous avatar operation
US10102449B1 (en) 2017-11-21 2018-10-16 Jasmin Cosic Devices, systems, and methods for use in automation
US10474934B1 (en) 2017-11-26 2019-11-12 Jasmin Cosic Machine learning for computing enabled systems and/or devices
US10402731B1 (en) 2017-12-15 2019-09-03 Jasmin Cosic Machine learning for computer generated objects and/or applications
US10810007B2 (en) 2017-12-29 2020-10-20 Microsoft Technology Licensing, Llc Classifying system-generated code
US10656938B2 (en) * 2018-09-25 2020-05-19 International Business Machines Corporation External comment storage and organization
US11928156B2 (en) 2020-11-03 2024-03-12 International Business Machines Corporation Learning-based automated machine learning code annotation with graph neural network

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4398249A (en) * 1970-08-12 1983-08-09 Pardo Rene K Process and apparatus for converting a source program into an object program
US4370707A (en) * 1971-08-03 1983-01-25 Computer Service, Inc. Computer system for generating architectural specifications and project control instructions
US3839630A (en) * 1971-12-27 1974-10-01 Hewlett Packard Co Programmable calculator employing algebraic language
US3938103A (en) * 1974-03-20 1976-02-10 Welin Andrew M Inherently micro programmable high level language processor
US3939453A (en) * 1974-04-29 1976-02-17 Bryant Grinder Corporation Diagnostic display for machine sequence controller
US4099230A (en) * 1975-08-04 1978-07-04 California Institute Of Technology High level control processor
US4319321A (en) * 1979-05-11 1982-03-09 The Boeing Company Transition machine--a general purpose computer
US4437184A (en) * 1981-07-09 1984-03-13 International Business Machines Corp. Method of testing a data communication system
US4488258A (en) * 1982-09-20 1984-12-11 Allen-Bradley Programmable controller with control program comments
US4554631A (en) * 1983-07-13 1985-11-19 At&T Bell Laboratories Keyword search automatic limiting method
US4656583A (en) * 1984-08-13 1987-04-07 International Business Machines Corporation Method for improving global common subexpression elimination and code motion in an optimizing compiler
US4667290A (en) * 1984-09-10 1987-05-19 501 Philon, Inc. Compilers using a universal intermediate language
US4656582A (en) * 1985-02-04 1987-04-07 International Business Machines Corporation Generating storage reference instructions in an optimizing compiler
US4734854A (en) * 1985-10-08 1988-03-29 American Telephone And Telegraph Company System for generating software source code components

Also Published As

Publication number Publication date
EP0261845A2 (en) 1988-03-30
EP0261845A3 (en) 1991-09-11
US4860203A (en) 1989-08-22

Similar Documents

Publication Publication Date Title
JPS6375835A (ja) 目的コ−ド、プログラム・リスト及び設計文書を生成する装置
US20020143823A1 (en) Conversion system for translating structured documents into multiple target formats
KR20080086456A (ko) 찾기 및 교체 입력의 파생어를 레버리징하는 찾기 및 교체기능을 갖춘 텍스트 편집 방법 및 시스템
JP3972323B2 (ja) スキーマ生成装置、データ処理装置及びその方法並びにプログラム
Higo et al. Generating simpler ast edit scripts by considering copy-and-paste
CN113987405A (zh) 一种基于ast的数学表达式计算算法
KR102614967B1 (ko) 자바스크립트의 중간 언어 기반 의미론 추출 자동화 시스템 및 방법
Ansari et al. NLI-GSC: A Natural Language Interface for Generating SourceCode
Koskimies et al. The design of a language processor generator
CN116360794A (zh) 数据库语言解析方法、装置、计算机设备及存储介质
CN114089980A (zh) 编程处理方法、装置、解释器及非易失性存储介质
Rajbhoj et al. DocToModel: Automated Authoring of Models from Diverse Requirements Specification Documents
Angelo et al. Rule-based Validation Module on EssenceBoard Method Editor
JP3003459B2 (ja) プログラム作成支援装置
Kay et al. An XSLT compiler written in XSLT: can it perform
Mazanek et al. Parsing of hyperedge replacement grammars with graph parser combinators
Voglsperger et al. LALR (1) Parser Table Generator
Andringa Automating XML parser generation for specific data operations
JP6267971B2 (ja) ソースコード解析支援装置、ソースコード解析支援方法
JP3044463B2 (ja) データ変換方法
JP3316884B2 (ja) 言語翻訳装置
CN116384346A (zh) 基于html格式的文字替换方法、装置、终端和介质
CN117632997A (zh) 一种跨数据库平台的命令行界面及读写操作方法
CN117687620A (zh) 文件生成方法及装置、终端设备及计算机可读存储介质
CN116257251A (zh) 文本信息的验证方法和装置