JP6906155B2 - リバースエンジニアリング可能なソフトウェア自動生成装置 - Google Patents
リバースエンジニアリング可能なソフトウェア自動生成装置 Download PDFInfo
- 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
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Description
デバッグ用のログコードを自動的に入れたり削除したりすること、
プログラムの不使用部分を自動的に削除すること、
ライブラリの使い方を抽出したりする手段を提供すること、
必要十分なテスト仕様を自動生成すること、
等が出来る様にしておく事である。
単方向にしか辿れない「Lisp2進木パースツリー」を
双方向に辿れる「環境依存モデル双方向グラフ構造データ」へと変換する機能と、
その逆の変換をする機能を、
同じ「ツリーグラフ変換ルールファイル」を用意しただけで同時に実現する。
「環境依存モデル双方向グラフ構造データ」及び
「環境非依存標準モデル双方向グラフ構造データ」に対し
再利用性のあるプログラムを用いて、各種分析や各種加工を行う。
ある言語の「文法定義ファイル」とその言語のソースコードを与えると
「Lisp2進木パースツリー」を生成し、
「ツリーグラフ変換用」拡張Prolog装置は、
その言語環境の「ツリーグラフ変換ルールファイル」と
その「Lisp2進木パースツリー」を与えると、
単方向にしか辿れない「Lisp2進木パースツリー」を
双方向に辿れる「環境依存モデル双方向グラフ構造データ」に変換する。
「環境依存モデル双方向グラフ構造データ」は言語環境に依存するが、
「グラフデータ操作用」拡張Prolog装置に、
「標準モデル化プログラムファイル」と
この「環境依存モデル双方向グラフ構造データ」を与えると、
これを「環境非依存標準モデル双方向グラフ構造データ」に変換する。
「環境非依存標準モデル双方向グラフ構造データ」に対して、
あらかじめ用意して置いた「各種分析プログラム」や「各種加工プログラム」を用いて、プログラムの分析や加工を行う。
各種加工を行った後の「環境非依存標準モデル双方向グラフ構造データ」と
任意の言語の「標準モデル用ツリーグラフ変換ルールファイル」を与えると、
その言語の「Lisp2進木パースツリー」を生成する。
「ツリーグラフ変換用」拡張Prolog装置が生成した
「Lisp2進木パースツリー」を与えると、
その言語のソースコードを自動生成する。
ソースコードは、「Lisp2進木のパースツリー」と
「環境依存グラフ構造データ」を経由するが、
最後に「環境非依存モデル双方向グラフ構造データ」にすることが出来れば、
人は内部仕様/ソースコードを読んで直接理解する必要がなくなる。
人の作業は、発明の図1に現れる各種ファイル群のメインテナンスと
「環境非依存標準モデル双方向グラフ構造データ」を分析/加工する
「各種分析プログラム」「各種加工プログラム」を追加も含めて充実させることとなる。
既存システム言語環境の「標準モデル化プログラムファイル」群(7)と
「グラフデータ操作用」拡張Prolog装置(3)で
「環境非依存標準モデル双方向グラフ構造データ」の内部データに変換する。
図7に「1から100までを足して結果を出力するプログラム」を
「環境非依存標準モデル双方向グラフ構造データ」で表現した例を示す。
図8と図9に、Altairという言語の
「標準モデル化プログラムファイル」の例の抜粋を示す。
「環境非依存標準モデル双方向グラフ構造データ」で示しており、
グラフ構造データのグラフは有向グラフであるが、
アークはコンピュータ上で双方向に辿ることが出来る。
双方向グラフ構造データで表したコンピュータソフトウェアの
プログラムのグラフのアークには、
inclusionとassociationの2種類のアークが存在する。
inclusionのみのグラフは、
プログラムを構文解析した結果の構文木を表している。
associationは、
プログラムの構文解析の後の、プログラムを意味解析した結果、
同一シンボル(同一クラス名/同一変数名/同一関数名、等)と
判定された部分をつなぐアークである。
移行先システム言語環境の「文法定義ファイル」群(5)と
「汎用パーサ&汎用ジェネレータ」装置(1)で移行先システム言語環境の
「ターゲット言語環境のソースコードファイル」群(11)を自動生成する。
図3に、図2の「文法定義ファイル」で自動生成したソースコードの例を示す。
図5に、図4の「文法定義ファイル」で自動生成したソースコードの例を示す。
2 ツリーグラフ変換用拡張Prolog装置
3 グラフデータ操作用拡張Prolog装置
4 既存システム言語環境のソースコードファイル群
5 文法定義ファイル群
6 ツリーグラフ変換ルールファイル群
7 標準モデル化プログラムファイル群
8 各種分析プログラムファイル群
9 各種加工プログラムファイル群
10 標準モデル用ツリーグラフ変換ルールファイル群
11 ターゲット言語環境のソースコードファイル群
12 各種分析結果群
13 各種生成物群
14 グラフデータベース
Claims (4)
- 特定の言語の文脈自由文法を記述した「文法定義ファイル」の言語で書かれた「既存システム環境依存ソースコードファイル」群を用いて内部データである単方向にしか辿れない「Lisp2進木パースツリー」を生成するパーサ機能と、
内部データである単方向にしか辿れない「Lisp2進木パースツリー」と「文法定義ファイル」を用いて、文法定義ファイルで記述した言語で書かれた「ターゲットシステム環境依存ソースコードファイル」群または「既存システム環境依存ソースコードファイル」群を生成するジェネレータ機能とから構成され、
パーサ機能とジェネレータ機能を同じ「文法定義ファイル」を与えただけで、
同時に実現することを特徴とする「汎用パーサ&汎用ジェネレータ」装置。 - ソースコードと文法定義ファイルから生成された単方向にしか辿れない「Lisp2進木パースツリー」を入力とし双方向に辿れる「環境依存モデル双方向グラフ構造データ」に変換すること、及び、
双方向に辿れる「環境依存モデル双方向グラフ構造データ」を文法定義ファイルでソースコードにするための単方向にしか辿れない「Lisp2進木パースツリー」に出力として変換すること、
の相互変換する為の「ツリーグラフ変換ルールファイル」群を用いて単方向にしか辿れない「Lisp2進木パースツリー」を双方向に辿れる「環境依存モデル双方向グラフ構造データ」へと変換する機能と、
その逆の変換をする機能を、
同じ「ツリーグラフ変換ルールファイル」を与えただけで同時に実現することを特徴とする「ツリーグラフ変換用」拡張Prolog装置。 - 「標準モデル化プログラムファイル」群を用いて「環境依存モデル双方向グラフ構造データ」を「環境非依存標準モデル双方向グラフ構造データ」に変換する機能を持ち、
「コールグラフを作成すること」「フローチャートを作成すること」「データフローグラフを作成すること」「状態遷移図を作成すること」をする「分析プログラムファイル」群のうち少なくとも1つの「分析プログラムファイル」と、
「デバッグ用のログコードを自動的に入れたり削除したりすること」「プログラムの不使用部分を自動的に削除すること」「ライブラリの使い方を抽出したりする手段を提供すること」「必要十分なテスト仕様を自動生成すること」をする「加工プログラムファイル」群のうち少なくとも1つの「加工プログラムファイル」を用いて「環境非依存標準モデル双方向グラフ構造データ」の分析・加工が可能なことを特徴とする「グラフデータ操作用」拡張Prolog装置。 - 請求項1に記載の「汎用パーサ&汎用ジェネレータ」装置と、
請求項2に記載の「ツリーグラフ変換用」拡張Prolog装置と、
請求項3に記載の「グラフデータ操作用」拡張Prolog装置とで構成され、
既存システム言語環境の請求項1に記載の「ソースコードファイル」群を前記の「汎用パーサ&汎用ジェネレータ」装置で単方向にしか辿れない請求項1に記載の「Lisp2進木パースツリー」に変換し、
その前記の「Lisp2進木パースツリー」を前記の「ツリーグラフ変換用」拡張Prolog装置で双方向に辿れる請求項2に記載の「環境依存モデル双方向グラフ構造データ」に変換し、その前記の「環境依存モデル双方向グラフ構造データ」を前記の「グラフデータ操作用」拡張Prolog装置で請求項3に記載の「環境非依存標準モデル双方向グラフ構造データ」に変換し、
その前記の「環境非依存標準モデル双方向グラフ構造データ」を前記の「グラフデータ操作用」拡張Prolog装置で請求項3に記載の「分析プログラムファイル」群を用いて分析し、
その前記の「環境非依存標準モデル双方向グラフ構造データ」を前記の「グラフデータ操作用」拡張Prolog装置で請求項3に記載の「加工プログラムファイル」群を用いて加工し、
その加工後の前記の「環境非依存標準モデル双方向グラフ構造データ」を前記の「ツリーグラフ変換用」拡張Prolog装置で単方向にしか辿れない前記の「Lisp2進木パースツリー」に変換し、
その前記の「Lisp2進木パースツリー」から前記の「汎用パーサ&汎用ジェネレータ」装置で既存システム言語環境またはターゲット言語環境の前記の「ソースコードファイル」群を自動生成する装置。
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)
| 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 |
-
2016
- 2016-03-01 JP JP2016053046A patent/JP6906155B2/ja active Active
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 |