Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6906155B2 - リバースエンジニアリング可能なソフトウェア自動生成装置 - Google Patents
[go: Go Back, main page]

JP6906155B2 - リバースエンジニアリング可能なソフトウェア自動生成装置 - Google Patents

リバースエンジニアリング可能なソフトウェア自動生成装置 Download PDF

Info

Publication number
JP6906155B2
JP6906155B2 JP2016053046A JP2016053046A JP6906155B2 JP 6906155 B2 JP6906155 B2 JP 6906155B2 JP 2016053046 A JP2016053046 A JP 2016053046A JP 2016053046 A JP2016053046 A JP 2016053046A JP 6906155 B2 JP6906155 B2 JP 6906155B2
Authority
JP
Japan
Prior art keywords
tree
environment
graph
file
structure data
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.)
Active
Application number
JP2016053046A
Other languages
English (en)
Other versions
JP2017157180A (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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to JP2016053046A priority Critical patent/JP6906155B2/ja
Publication of JP2017157180A publication Critical patent/JP2017157180A/ja
Application granted granted Critical
Publication of JP6906155B2 publication Critical patent/JP6906155B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、ソフトウェア工学のリバースエンジニアリングとソフトウェア自動生成に関し、特に、ソフトウェアの再利用化を図ったソフトウェア自動生成に関する。
従来は、リバースエンジニアリングは「ソフトウェア開発の下流工程のソースコードから上流工程の再利月可能なソースコードを抽出すること」、ソフトウェア自動生成は「ソフトウェア開発の上流工程の再利用可能な設計情報から下流工程のソースコードを自動的に生成すること」でまったく別のものであった。
リバースエンジニアリングでは、下流工程のソースコードをパースツリー(構文木)にし、それを元に解析等をコンピュータに行なわせるが、このパースツリーを生成するパーサは、ソースコードの言語環境が変わる毎に、毎回その言語のパーサをある特定の言語環境のプログラムとしてハンドコーディングで作成していた。その為、複数の言語に対応しようとすると、パーサの開発コストが膨大になるという問題を抱えていた。
ソフトウェア自動生成では、上流工程の設計情報からターゲットの言語環境のソースコードを自動生成するが、これに使われるジェネレータを言語環境が異なる毎に、毎回その言語のジェネレータをある特定の言語環境のプログラムとしてハンドコーディングで作成していた。その為、複数の言語に対応しようとすると、ジェネレータの開発コストが膨大になるという問題を抱えていた。
リバースエンジニアリングでは、再利用可能なソースコードを抽出して利用する方法は確立しておらず、支援ツールを使用して人が理解し、人手で再利用する程度だった。
ソフトウェア自動生成では、スケルトンの生成等、半自動生成は可能であったが、完全自動生成しようとすると、上流工程の抽象的な設計情報のはずだったデータが特定のプログラム言語でのプログラムになってしまい、完全自動生成する意味がなくなってしまうという問題を抱えていた。
特開2001−296996号公報
特開2000−148501号公報
本発明の目的は、再利用可能なソフトウェアの断片を蓄えるグラフデータベース(リレーショナルDBでもオブジェクト指向DBでもなくXML‐DBでもなく双方向グラフ構造データを基にしたデータベース)を実現し、従来別個だったリバースエンジニアリングとソフトウェア自動生成をこのグラフデータベースを介して次の3つの課題を通して繋げることである。
第1の課題は、従来言語毎にプログラムを作成していたリバースエンジニアリングのパーサとソフトウェア自動生成のジェネレータを、文法を記述した文法定義ファイルを与えただけでそのパーサ機能とジェネレータ機能を同時に実現してしまう装置の実現である。
第2の課題は、パースツリーをグラフデータベースで扱えるように、パースツリーをグラフ構造データに変換することと、その逆変換を、同じ変換ルールを記述したツリーグラフ変換ルールファイルを与えただけで、同時に実現してしまう装置の実現である。
第3の課題は、双方向グラフ構造データに対して各種分析や各種加工を行う手段の提供である。
各種分析では例として将来的に、コールグラフを作成すること、フローチャートを作成すること、データフローグラフを作成すること、状態遷移図を作成すること、SQL文実行の事前の性能見積もりをすること等が出来る様にしておく事である。
各種加工では例として将来的に、
デバッグ用のログコードを自動的に入れたり削除したりすること、
プログラムの不使用部分を自動的に削除すること、
ライブラリの使い方を抽出したりする手段を提供すること
必要十分なテスト仕様を自動生成すること、
等が出来る様にしておく事である。
本発明の特徴は、3つの主要な装置からなることである。
第1の「汎用パーサ&汎用ジェネレータ」装置は、ある言語環境の文脈自由文法を記述した「文法定義ファイル」を与えただけで、その言語のソースコードをパースツリーにするパーサ機能と、その言語のパースツリーからソースコードを自動生成するジェネレータ機能を同時に実現する。
第2の「ツリーグラフ変換用」拡張Prolog装置は、
単方向にしか辿れない「Lisp2進木パースツリー」
双方向に辿れる「環境依存モデル双方向グラフ構造データ」へと変換する機能と、
その逆の変換をする機能を、
同じ「ツリーグラフ変換ルールファイル」を用意しただけで同時に実現する。
第3の「グラフデータ操作用」拡張Prolog装置は、プログラムを表す
「環境依存モデル双方向グラフ構造データ」及び
「環境非依存標準モデル双方向グラフ構造データ」に対し
再利用性のあるプログラムを用いて、各種分析や各種加工を行う。
全体の流れとしては、「汎用パーサ&汎用ジェネレータ」装置は、
ある言語の「文法定義ファイル」とその言語のソースコードを与えると
「Lisp2進木パースツリー」を生成し、
「ツリーグラフ変換用」拡張Prolog装置は、
その言語環境の「ツリーグラフ変換ルールファイル」と
その「Lisp2進木パースツリー」を与えると、
単方向にしか辿れない「Lisp2進木パースツリー」
双方向に辿れる「環境依存モデル双方向グラフ構造データ」に変換する。
「ツリーグラフ変換用」拡張Prolog装置で変換した
「環境依存モデル双方向グラフ構造データ」は言語環境に依存するが、
「グラフデータ操作用」拡張Prolog装置に、
「標準モデル化プログラムファイル」と
この「環境依存モデル双方向グラフ構造データ」を与えると、
これを「環境非依存標準モデル双方向グラフ構造データ」に変換する。
また「グラフデータ操作用」拡張Prolog装置は、
「環境非依存標準モデル双方向グラフ構造データ」に対して、
あらかじめ用意して置いた「各種分析プログラム」や「各種加工プログラム」を用いて、プログラムの分析や加工を行う。
「ツリーグラフ変換用」拡張Prolog装置は、
各種加工を行った後の「環境非依存標準モデル双方向グラフ構造データ」
任意の言語の「標準モデル用ツリーグラフ変換ルールファイル」を与えると、
その言語の「Lisp2進木パースツリー」を生成する。
「汎用パーサ&汎用ジェネレータ」装置は、その言語の「文法定義ファイル」と
「ツリーグラフ変換用」拡張Prolog装置が生成した
「Lisp2進木パースツリー」を与えると、
その言語のソースコードを自動生成する。
実施例1(既存システムの異なる言語環境への移行)
一般的に、ある言語で書かれたコンピュータソフトウェアのソースコードを、異なる言語環境で動かすことは、移植作業に大変時間が掛かるものであった。
その原因は、人が手作業で作成したシステムの分析や修正を他の人が行う場合、まずシステムの仕様・実装・実際の動作状況を人手で理解してというフェーズで莫大なコストが掛かり、ソースコードを読んでそれを解読しなければならない場合はさらにコストが増大することにあった。
しかしながら、本発明の「リバースエンジニアリング可能なソフトウェア自動生成装置」が成熟し、発明の第1図に現れる各種ファイル群が充実すれば、異なる言語環境へのコンピュータソフトウェアのプログラムの移行を、人手やコストを掛けなくても、短期間で行う事が出来る様になる。
実施例2(大規模システムの修正や拡張)
一度作成されたソフトウェアを既存システム環境で大幅に修正することや大幅に拡張するということはよく発生する。
このときシステムの外部仕様は分かっているがプログラムを実装した人が残っていない場合、プログラムの修正や拡張する時、内部仕様を理解しソースコードを理解してからでないとプログラムの修正や拡張は難しい。この内部仕様/ソースコードの理解の所で非常に時間がかかるのが現状である。
「リバースエンジニアリング可能なソフトウェア自動生成装置」が成熟した場合
ソースコードは、「Lisp2進木のパースツリー」と
「環境依存グラフ構造データ」を経由するが、
最後に「環境非依存モデル双方向グラフ構造データ」にすることが出来れば、
人は内部仕様/ソースコードを読んで直接理解する必要がなくなる。
人の作業は、発明の図1に現れる各種ファイル群のメインテナンスと
「環境非依存標準モデル双方向グラフ構造データ」を分析/加工する
「各種分析プログラム」「各種加工プログラム」を追加も含めて充実させることとなる。
発明の図1の各種ファイル群、特に「各種分析プログラムファイル」群、及び「各種加工プログラムファイル」群が十分充実すれば、人の主なソフトウェア開発作業は「プログラムの理解とコーディング」から「グラフデータベース」との対話に作業内容が変わる。
本発明の「リバースエンジニアリング可能なソフトウェアの自動生成装置」の実施形態の構成例を示すブロック図である。 加減乗除と代入と制御文のある文法の「文法定義ファイル」の例である。 図2の「文法定義ファイル」で自動生成したファイルのソースコード例である。 XML簡易文法の「文法定義ファイル」の例である。 図4の「文法定義ファイル」で自動生成したファイルのソースコード例の抜粋である。 「ツリーグラフ変換ルールファイル」の例の抜粋である。 「オブジェクト指向プログラム」を「環境非依存標準モデル双方向グラフ構造データ」で表現した一例である。 Altair言語の「標準モデル化プログラムファイル」のソースコード例の抜粋その1である。 Altair言語の「標準モデル化プログラムファイル」のソースコード例の抜粋その2である。
実施例1(既存システムの異なる言語環境への移行)
添付の図面を参照して本発明によるリバースエンジニアリング可能なソフトゥエア自動生成装置の第1の実施例の形態を詳細に説明する。図1から図9を参照すると、本発明の実施例が示されている。
図1は、本実施形態のリバースエンジニアリング可能なソフトゥエア自動生成媒体の構成例を示すブロック図である。
まず、図1で既存システム言語環境の「文法定義ファイル」群(5)と「ツリーグラフ変換ルール」群(6)と「標準モデル化プログラムファイル」群(7)と、移行先システム言語環境の「文法定義ファイル」群(5)と「標準モデル用ツリーグラフ変換ルールファイル」群(10)を、なければ作成する。各ファイル群の例は後で示す。
次に、既存システム言語環境の「既存システム言語環境のソースコードファイル」群(4)を既存システム言語環境の「文法定義ファイル」群(5)と「汎用パーサ&汎用ジェネレータ」装置(1)で「Lisp2進木のパースツリー」の内部データに変換する。図2と図4に「文法定義ファイル」の具体的な例を示す。
文法定義ファイルは、ジェネレータとして使う場合のインデント/改行/スペーシングの記述をする部分と、文脈自由文法の構文定義の部分と、文脈自由文法の字句定義の部分の3つからなっている。
文脈自由文法を記述する方法として使われることが多いのはBNFであるが、BNFは繰り返しを再帰で記述しなければならず、可読性が良くない。文法定義ファイルでは、0個以
Figure 0006906155
の基本として用いている。
次に、この単方向にしか辿れない「Lisp2進木のパースツリー」の内部データを既存システム環境の「ツリーグラフ変換ルールファイル」群(6)と「ツリーグラフ変換用」拡張Prolog装置(2)で双方向に辿れる「環境依存モデル双方向グラフ構造データ」の内部データに変換する。図6に「ツリーグラフ変換ルールファイル」の例の抜粋を示す。
「ツリーグラフ変換ルールファイル」は、文法の単位の名前と、その文法の単位のパースツリーとグラフ構造データ間の変換ルールの記述の組の集合である。文法の単位は、括弧ばかりで読み書きし辛いが、文法の単位は、文法定義ファイルから自動生成され、一切気に掛ける必要はない。「ツリーグラフ変換ルールファイル」は、ない場合は作成しなければならないが、スケルトンに相当するものは、文法定義ファイルから自動生成される。図6で「[‐/□□/‐>○○]」という記述がある部分がPrologをグラフデータを扱え得る様に拡張した部分である。
次に、この「環境依存モデル双方向グラフ構造データ」の内部データを
既存システム言語環境の「標準モデル化プログラムファイル」群(7)と
「グラフデータ操作用」拡張Prolog装置(3)で
「環境非依存標準モデル双方向グラフ構造データ」の内部データに変換する。
図7に「1から100までを足して結果を出力するプログラム」を
「環境非依存標準モデル双方向グラフ構造データ」で表現した例を示す。
図8と図9に、Altairという言語の
「標準モデル化プログラムファイル」の例の抜粋を示す。
図7は、コンピュータソフトウェアのプログラムを
「環境非依存標準モデル双方向グラフ構造データ」で示しており
グラフ構造データのグラフは有向グラフであるが、
アークはコンピュータ上で双方向に辿ることが出来る。
双方向グラフ構造データで表したコンピュータソフトウェアの
プログラムのグラフのアークには、
inclusionとassociationの2種類のアークが存在する。
inclusionのみのグラフは、
プログラムを構文解析した結果の構文木を表している。
associationは、
プログラムの構文解析の後の、プログラムを意味解析した結果、
同一シンボル(同一クラス名/同一変数名/同一関数名、等)と
判定された部分をつなぐアークである。
図8と図9は、「グラフデータ操作用」拡張Prolog装置に与えるグラフデータ操作プログラムの例であるが、Prologを拡張した部分は、主に「before:={・・・}、after:={・・・}とcommon:={・・・}が対になった部分」である。グラフ構造データ中、before:={以下に書かれたグラフパターンに、現在着目しているグラフがマッチすると、after:={以下に書かれているグラフパターン(を作成/に修正)することにより、グラフ構造データの作成/修正が出来る。common:={以下には、条件を論理述語で書けるようになっており、グラフ構造データのきめ細かな、作成や修正を可能としている。
次に、この「環境非依存標準モデル双方向グラフ構造データ」の内部データを、移行先システム言語環境の「標準モデル用ツリーグラフ変換ルール」群(10)と「ツリーグラフ変換用」拡張Prolog装置(2)で「Lisp2進木のパースツリー」の内部データに変換する。「標準モデル用ツリーグラフ変換ルール」群(10)の書き方は、「ツリーグラフ変換ルールファイル」群(6)と同様である。
次に、この「Lisp2進木パースツリー」
移行先システム言語環境の「文法定義ファイル」群(5)と
「汎用パーサ&汎用ジェネレータ」装置(1)で移行先システム言語環境の
「ターゲット言語環境のソースコードファイル」群(11)を自動生成する。
図3に、図2の「文法定義ファイル」で自動生成したソースコードの例を示す。
図5に、図4の「文法定義ファイル」で自動生成したソースコードの例を示す。
実施例2(大規模システムの修正や拡張)
添付の図面を参照して本発明によるリバースエンジニアリング可能なソフトゥエア自動生成装置の第2の実施例の形態を詳細に説明する。本発明の第2の実施例は、図と説明が部を除いて、第1の実施例とほぼ同様である。
図1は、本実施形態のリバースエンジニアリング可能なソフトゥエア自動生成媒体の構成例を示すブロック図である。
まず、図1で既存システム環境の「文法定義ファイル」群(5)と「ツリーグラフ変換ルールファイル」群(6)と「標準モデル化プログラムファイル」群(7)と「標準モデル用ツリーグラフ変換ルールファイル」群(10)をなければ作成する。これは、ターゲット言語環境の「文法定義ファイル」が既存システム言語環境の「文法定義ファイル」と同一になることを除いて、発明の第1の実施例の形態と同様である。
次に、既存システム言語環境の「既存システム言語環境のソースコードファイル」群(4)を既存システム言語環境の「文法定義ファイル」群(5)と「汎用パーサ&汎用ジェネレータ」装置(1)で「Lisp2進木のパースツリー」の内部データに変換する。これは発明の第1の実施例の形態と同様である。
次に、この単方向にしか辿れない「Lisp2進木のパースツリー」の内部データを既存システム環境の「ツリーグラフ変換ルールファイル」群(6)と「ツリーグラフ変換用」拡張Prolog装置(2)で双方向に辿れる「環境依存モデル双方向グラフ構造データ」の内部データに変換する。これは発明の第1の実施例の形態と同様である。
次に、この「環境依存モデル双方向グラフ構造データ」の内部データを既存システム言語環境の「標準モデル化プログラムファイル」群(7)と「グラフデータ操作用」拡張Prolog装置(3)で「環境非依存標準モデル双方向グラフ構造データ」の内部データに変換する。これは発明の第1の実施例の形態と同様である。
次に、この「環境非依存標準モデルグラフ構造データ」の内部データに対し、「グラフデータ操作用」拡張Prolog装置(3)での問い合わせ/挿入/削除/更新を行ってプログラム修正を行う。この修正を行うことはRDB(Relational Data Base)のSELECT文/INSERT文/DELETE文/UPDATE文を実行することと類似しているので本発明の図1の「グラフデータ操作用」拡張Prolog装置周りはGDB(Graph Data Base)と呼ぶことにする。
ソフトウェアの修正は、本発明のリバースエンジニアリング可能なソフトウェア自動生成装置の利用技術者が最も親しんでいるプログラミング言語で行う事が出来る。C++が出来る技術者であれば、修正該当部分をC++で書かれた「既存システム言語環境のソースコードファイル」(4)を自動生成し、技術者がC++で修正を行い、それをリバースエンジニアリングで「環境非依存標準モデル双方向グラフ構造データ」の内部データに反映させて、修正を行う。Javaが出来る技術者であれば、修正該当部分をJavaで書かれた「既存システム言語環境のソースコードファイル」(4)を自動生成し、技術者がJavaで修正を行い、それをリバースエンジニアリングで「環境非依存標準モデル双方向グラフ構造データ」の内部データに反映させて、修正を行う。
次に、この修正された「環境非依存標準モデル双方向グラフ構造データ」の内部データを、「標準モデル用ツリーグラフ変換ルール」群(10)と「ツリーグラフ変換用」拡張Prolog装置(2)で「Lisp2進木のパースツリー」の内部データに変換する。これは発明の第1の実施例の形態と同様である。
次に、この「Lisp2進木パースツリー」の内部データを「文法定義ファイル」群(5)と「汎用パーサ&汎用ジェネレータ」装置(1)で「既存システム言語環境のソースファイル」群(4)を自動生成する。これは、ターゲット言語環境の「文法定義ファイル」が既存システム言語環境の「文法定義ファイル」と同一になることを除いて、発明の第1の実施例の形態と同様である。
コンピュータのシステムソフトウェア開発現場は、3K(きつい、汚い、格好悪い)と呼ばれるようになり、人気が減って来ている。納期が迫り、サービス残業を強いられている人も多い。この現状を顧みるに、本来機械にやらせることが出来る作業も未だに人手で行っていて、作業自体も複雑化している為と思われる。プログラマが手作業で行っている部分の大部分を、コンピュータによるIT化・自動化する事により、コンピュータのシステムソフトウェア開発現場のコンピュータソフトウェアの生産性と品質の大幅な向上が図れる事が期待できる。
1 汎用パーサ&汎用ジェネレータ装置
2 ツリーグラフ変換用拡張Prolog装置
3 グラフデータ操作用拡張Prolog装置
4 既存システム言語環境のソースコードファイル群
5 文法定義ファイル群
6 ツリーグラフ変換ルールファイル群
7 標準モデル化プログラムファイル群
8 各種分析プログラムファイル群
9 各種加工プログラムファイル群
10 標準モデル用ツリーグラフ変換ルールファイル群
11 ターゲット言語環境のソースコードファイル群
12 各種分析結果群
13 各種生成物群
14 グラフデータベース

Claims (4)

  1. 特定の言語の文脈自由文法を記述した「文法定義ファイル」の言語で書かれた「既存システム環境依存ソースコードファイル」群を用いて内部データである単方向にしか辿れない「Lisp2進木パースツリー」を生成するパーサ機能と、
    内部データである単方向にしか辿れない「Lisp2進木パースツリー」と「文法定義ファイル」を用いて、文法定義ファイルで記述した言語で書かれた「ターゲットシステム環境依存ソースコードファイル」群または「既存システム環境依存ソースコードファイル」群を生成するジェネレータ機能とから構成され、
    パーサ機能とジェネレータ機能を同じ「文法定義ファイル」を与えただけで、
    同時に実現することを特徴とする「汎用パーサ&汎用ジェネレータ」装置。
  2. ソースコードと文法定義ファイルから生成された単方向にしか辿れない「Lisp2進木パースツリー」を入力とし双方向に辿れる「環境依存モデル双方向グラフ構造データ」に変換すること、及び、
    双方向に辿れる「環境依存モデル双方向グラフ構造データ」を文法定義ファイルでソースコードにするための単方向にしか辿れない「Lisp2進木パースツリー」に出力として変換すること、
    の相互変換する為の「ツリーグラフ変換ルールファイル」群を用いて単方向にしか辿れない「Lisp2進木パースツリー」を双方向に辿れる「環境依存モデル双方向グラフ構造データ」へと変換する機能と、
    その逆の変換をする機能を、
    同じ「ツリーグラフ変換ルールファイル」を与えただけで同時に実現することを特徴とする「ツリーグラフ変換用」拡張Prolog装置。
  3. 「標準モデル化プログラムファイル」群を用いて「環境依存モデル双方向グラフ構造データ」を「環境非依存標準モデル双方向グラフ構造データ」に変換する機能を持ち、
    「コールグラフを作成すること」「フローチャートを作成すること」「データフローグラフを作成すること」「状態遷移図を作成すること」をする「分析プログラムファイル」群のうち少なくとも1つの「分析プログラムファイル」と
    「デバッグ用のログコードを自動的に入れたり削除したりすること」「プログラムの不使用部分を自動的に削除すること」「ライブラリの使い方を抽出したりする手段を提供すること」「必要十分なテスト仕様を自動生成すること」をする「加工プログラムファイル」群のうち少なくとも1つの「加工プログラムファイル」を用いて「環境非依存標準モデル双方向グラフ構造データ」の分析・加工が可能なことを特徴とする「グラフデータ操作用」拡張Prolog装置。
  4. 請求項に記載の「汎用パーサ&汎用ジェネレータ」装置と、
    請求項に記載の「ツリーグラフ変換用」拡張Prolog装置と、
    請求項に記載の「グラフデータ操作用」拡張Prolog装置とで構成され、
    既存システム言語環境の請求項1に記載の「ソースコードファイル」群を前記の「汎用パーサ&汎用ジェネレータ」装置で単方向にしか辿れない請求項1に記載の「Lisp2進木パースツリー」に変換し、
    その前記の「Lisp2進木パースツリー」を前記の「ツリーグラフ変換用」拡張Prolog装置で双方向に辿れる請求項2に記載の「環境依存モデル双方向グラフ構造データ」に変換し、その前記の「環境依存モデル双方向グラフ構造データ」を前記の「グラフデータ操作用」拡張Prolog装置で請求項3に記載の「環境非依存標準モデル双方向グラフ構造データ」に変換し、
    その前記の「環境非依存標準モデル双方向グラフ構造データ」を前記の「グラフデータ操作用」拡張Prolog装置で請求項3に記載の「分析プログラムファイル」群を用いて分析し、
    その前記の「環境非依存標準モデル双方向グラフ構造データ」を前記の「グラフデータ操作用」拡張Prolog装置で請求項3に記載の「加工プログラムファイル」群を用いて加工し、
    その加工後の前記の「環境非依存標準モデル双方向グラフ構造データ」を前記の「ツリーグラフ変換用」拡張Prolog装置で単方向にしか辿れない前記の「Lisp2進木パースツリー」に変換し、
    その前記の「Lisp2進木パースツリー」から前記の「汎用パーサ&汎用ジェネレータ」装置で既存システム言語環境またはターゲット言語環境の前記の「ソースコードファイル」群を自動生成する装置。
JP2016053046A 2016-03-01 2016-03-01 リバースエンジニアリング可能なソフトウェア自動生成装置 Active JP6906155B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016053046A JP6906155B2 (ja) 2016-03-01 2016-03-01 リバースエンジニアリング可能なソフトウェア自動生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016053046A JP6906155B2 (ja) 2016-03-01 2016-03-01 リバースエンジニアリング可能なソフトウェア自動生成装置

Publications (2)

Publication Number Publication Date
JP2017157180A JP2017157180A (ja) 2017-09-07
JP6906155B2 true JP6906155B2 (ja) 2021-07-21

Family

ID=59809933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016053046A Active JP6906155B2 (ja) 2016-03-01 2016-03-01 リバースエンジニアリング可能なソフトウェア自動生成装置

Country Status (1)

Country Link
JP (1) JP6906155B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2675100B2 (ja) * 1988-09-30 1997-11-12 株式会社日立製作所 言語変換器及び言語変換方法
JP3003459B2 (ja) * 1993-06-10 2000-01-31 三菱電機株式会社 プログラム作成支援装置
JP3562435B2 (ja) * 2000-04-12 2004-09-08 日本電気株式会社 コンポーネントの自動生成装置
US20060212859A1 (en) * 2005-03-18 2006-09-21 Microsoft Corporation System and method for generating XML-based language parser and writer
US8296744B2 (en) * 2008-10-03 2012-10-23 Microsoft Corporation Tree-based directed graph programming structures for a declarative programming language

Also Published As

Publication number Publication date
JP2017157180A (ja) 2017-09-07

Similar Documents

Publication Publication Date Title
US9122540B2 (en) Transformation of computer programs and eliminating errors
Korshunova et al. CPP2XMI: Reverse engineering of UML class, sequence, and activity diagrams from C++ source code
JPH08202545A (ja) ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法
CN101398758A (zh) 一种代码抄袭的检测方法
CN110673854A (zh) Sas语言编译方法、装置、设备及可读存储介质
CN108037913B (zh) xUML4MC模型到MSVL语言程序的转换方法、计算机可读存储介质
CN106951305B (zh) 一种基于模型转换由QVT-R语言生成midCore脚本的方法
CN105243018B (zh) 一种面向对象的类测试数据生成方法
CN104679511A (zh) 基于MDE模型转换的MapReduce代码生成方法
CN106371887A (zh) 一种msvl语言的编译系统及方法
CN112306479A (zh) 一种基于抽象语法的代码可视化分析方法及装置
US20150020051A1 (en) Method and apparatus for automated conversion of software applications
JP6719798B1 (ja) 論理結合型プログラムが実行時に発生する非同期型アルゴリズムの正統性の検証を実施可能にするためのプログラム
Ramirez et al. Automatic generation of data conversion programs using a data description language
JP6906155B2 (ja) リバースエンジニアリング可能なソフトウェア自動生成装置
JP4835859B2 (ja) 状態遷移図作成装置および状態遷移図作成方法
US20160062738A1 (en) Methods and Apparatuses for Interactive Computer Programming
GB2509540A (en) Enterprise decision management
CN106843858A (zh) 一种由转换原语生成Spark代码的方法
CN117492753A (zh) 一种实现数据可视化的前端开发方法及系统
Schöpp et al. Requirements-based code model checking
CN112579088A (zh) 面向异构混合编程的一站式程序编译方法
CN117555626B (zh) 基于Jenkins的硬件测试方法、电子设备和介质
Quesada et al. Parsing abstract syntax graphs with ModelCC
JP3112623B2 (ja) プログラム生産支援装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200707

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201102

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210511

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210527

R150 Certificate of patent or registration of utility model

Ref document number: 6906155

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250