JP2020087033A - Program generating apparatus, and program generating method - Google Patents
Program generating apparatus, and program generating method Download PDFInfo
- Publication number
- JP2020087033A JP2020087033A JP2018221532A JP2018221532A JP2020087033A JP 2020087033 A JP2020087033 A JP 2020087033A JP 2018221532 A JP2018221532 A JP 2018221532A JP 2018221532 A JP2018221532 A JP 2018221532A JP 2020087033 A JP2020087033 A JP 2020087033A
- Authority
- JP
- Japan
- Prior art keywords
- screen
- source code
- scope
- variable
- condition
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
本発明は、プログラム生成装置、及びプログラム生成方法に関する。 The present invention relates to a program generation device and a program generation method.
特許文献1には、プログラム設計変更における情報隠蔽作業を自動リファクタリング化することを目的として構成された情報隠蔽装置について記載されている。情報隠蔽装置は、入力されたプログラムにおける変数のうち、ユーザに指定された変数の生存範囲を算出し、ユーザに指定された変数の被覆メソッドを算出し、新規クラスの抽出が必要か否かを判定し、上記ユーザに指定された変数を、上記被覆メソッドまたはその上位にあるメソッドの局所変数とし、上記入力されたプログラムから新規クラスを抽出し、上記指定された変数をその新規クラスのメンバ変数とし、上記指定された変数にアクセスするメソッドを上記新規クラスに移動し、上記新規クラスのインスタンスを、上記被覆メソッドまたはその上位にあるメソッドの局所変数とする。
Webサービス等を提供するソフトウェアの開発に際しては、プログラムで用いられる変数に割り当てた記憶領域が解放されずに確保されたままとなり、主記憶装置等の記憶資源を枯渇させてサービスに影響を与える、いわゆるメモリリーク(Memory leak)の発生
を予防することが求められる。メモリリークの予防策としては、変数のスコープを最小の範囲に限定することが効果的である。
When developing software that provides a Web service or the like, the storage area allocated to the variable used in the program is not released and remains secured, which depletes the storage resources such as the main storage device and affects the service. It is required to prevent the occurrence of so-called memory leak. As a memory leak prevention measure, it is effective to limit the scope of variables to the minimum range.
しかし現状のソフトウェア開発工程では、複雑な判断が要求されるスコープの決定を変数毎に人手で行っており、作業負担やコストが課題となっている。尚、特許文献1では、メソッドやその上位メソッドの利用/被利用関係に基づき変数のスコープを判定している。そのため、利用/被利用関係がない場合は変数のスコープを判定することができない。
However, in the current software development process, the scope that requires complicated judgment is manually determined for each variable, and work load and cost are problems. In
本発明はこのような背景に鑑みてなされたものであり、変数のスコープを効率よく適切に設定することが可能な、プログラム生成装置、及びプログラム生成方法を提供することを目的とする。 The present invention has been made in view of such a background, and an object thereof is to provide a program generation device and a program generation method capable of efficiently and appropriately setting the scope of variables.
上記目的を達成するための本発明のうちの一つは、情報処理装置であって、画面に関する記述を含んだソースコードである解析対象ソースコード、及び、前記解析対象ソースコードにおいて画面に関する記述に用いられている変数である画面記述変数のスコープの決定に際して用いられ、前記画面の構造または挙動に関して設定された条件であるスコープ判定条件、を記憶し、前記解析対象ソースコードから前記画面記述変数を抽出し、抽出した前記画面記述変数によって記述される画面の構造または挙動を前記解析対象ソースコードに基づき取得される情報から特定し、特定した前記構造または挙動を前記スコープ判定条件と対照することにより前記画面記述変数に設定すべきスコープを決定し、前記解析対象ソースコードに基づき、前記画面記述変数が前記決定した前記スコープとなるように記述したソースコードである調整ソースコードを生成する、プログラム生成装置。 One of the present inventions for achieving the above-mentioned object is an information processing apparatus, which is an analysis target source code that is a source code including a description about a screen, and a description about a screen in the analysis target source code. Used in determining the scope of the screen description variable that is used, the scope determination condition, which is the condition set with respect to the structure or behavior of the screen, is stored, and the screen description variable is extracted from the analysis target source code. By extracting and identifying the structure or behavior of the screen described by the extracted screen description variable from the information acquired based on the analysis target source code, and comparing the identified structure or behavior with the scope determination condition. Program generation for determining a scope to be set in the screen description variable, and generating an adjustment source code that is a source code described so that the screen description variable becomes the determined scope based on the analysis source code apparatus.
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。 In addition, the problems disclosed by the present application and the solutions therefor will be made clear by the section of the embodiments for carrying out the invention and the drawings.
本発明によれば、変数のスコープを効率よく適切に設定することができる。 According to the present invention, the scope of variables can be set efficiently and appropriately.
以下、実施形態につき図面を参照しつつ説明する。 Hereinafter, embodiments will be described with reference to the drawings.
図1に一実施形態として示す情報処理システム1の概略的な構成を示している。同図に示すように、情報処理システム1は、プログラム生成装置10、及び一つ以上のソフトウェア管理装置20を含む。プログラム生成装置10とソフトウェア管理装置20は通信ネットワーク5を介して通信可能に接続されている。通信ネットワーク5は、有線または無線方式による通信手段であり、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット等である。
FIG. 1 shows a schematic configuration of an
ソフトウェア管理装置20は、情報処理装置であって、例えば、ソフトウェアの開発や保守のために用いられるリポジトリサーバ、ネットワークストレージ、ソフトウェアの開発者や保守者等が操作する端末装置等である。ソフトウェア管理装置20は、ソフトウェアを構成するプログラムのソースコードを管理(記憶)するとともに、上記のプログラムの実行に際して生成されるログ情報(以下、「実行ログ」と称する。)を生成する。
The
プログラム生成装置10は、情報処理装置であって、ソフトウェア管理装置20に管理されている上記のソースコードや実行ログに基づきソースコードを自動的に生成する機能を備える。
The
尚、本実施形態では、このようにプログラム生成装置10や各ソフトウェア管理装置20が夫々独立したハードウェア(情報処理装置)により実現されるとして説明するが、プログラム生成装置10やソフトウェア管理装置20のハードウェア構成は必ずしも限定されない。例えば、プログラム生成装置10とソフトウェア管理装置20の2つ以上を共通のハードウェアにより実現してもよい。またソフトウェア管理装置20をプログラム生成装置10として機能させるようにしてもよい。また上記のハードウェアは、その構成の全部または一部がクラウドシステム(cloud system)のクラウドサーバ(cloud server)の
ような仮想的な資源により実現されるものであってもよい。
In this embodiment, the
図2は、上記のハードウェアの一例として示す情報処理装置100のブロック図である。同図に示すように、情報処理装置100は、プロセッサ11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15、及び通信装置16の各構成を備える。これらは図示しないバス等の通信手段を介して通信可能に接続されている。
FIG. 2 is a block diagram of the
プロセッサ11は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等を用いて構成される。プロセッサ11が、主記憶装置12に格納されているプログラムを読み出して実行することにより、プログラム生成装置10やソフトウェア管理装置20の機能が実現される。
The
主記憶装置12は、プログラムやデータを記憶する装置であり、ROM(Read Only Memory)、RAM(Random Access Memory)、不揮発性半導体メモリ(NVRAM(Non Volatile RAM))等である。
The
補助記憶装置13は、SSD(Solid State Drive)、SDメモリカード等の各種不揮
発性メモリ(NVRAM:Non-volatile memory)、ハードディスクドライブ、光学式記憶装置
(CD(Compact Disc)、DVD(Digital Versatile Disc)等)、クラウドサーバの記憶領域等である。補助記憶装置13に格納されているプログラムやデータは主記憶装置12に随時読み込まれる。
The
入力装置14は、外部から情報の入力を受け付けるインタフェースであり、例えば、キーボード、マウス、タッチパネル、音声入力装置(マイクロフォン等)である。
The
出力装置15は、各種の情報を出力するインタフェースであり、画像表示装置(液晶モニタ、LCD(Liquid Crystal Display)、グラフィックカード)、印字装置、音声出力装置(スピーカ等)である。
The
通信装置16は、通信ネットワーク5を介した他の装置との間の通信を実現する有線方式または無線方式の通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、シリアル通信モジュール等である。尚、通信装置16を他の装置からの情報の入力を受け付ける入力装置14として機能させてもよい。また通信装置16を他の装置に情報を出力する出力装置15として機能させてもよい。
The
情報処理装置100は、上記の構成に加え、例えば、デバイスドライバ、オペレーティングシステム、ファイルシステム、DBMS(DataBase Management System)等をさらに備えていてもよい。情報処理装置100は、各種の情報(データ)を、例えば、データベースのテーブルやファイルシステムによって管理されるファイルとして管理(記憶)する。
The
図3にプログラム生成装置10が備える主な機能を示している。プログラム生成装置10は、ソースコードを解析し、ソースコードに含まれている、画面に関して用いられている変数(画面の構造定義や遷移の制御に用いられている変数等。以下、「画面記述変数」と称する。)のスコープ(変数を参照可能な範囲(可視範囲))を決定する。尚、変数はソースコードにおいて関数として機能するものであってもよい。
FIG. 3 shows main functions of the
同図に示すように、プログラム生成装置10は、記憶部110、ソースコード取得部111、実行ログ取得部112、ソースコード解析部113、スコープ判定部114、ソー
スコード生成部115、及びソースコード送信部116の各機能を有する。これらの機能は、プログラム生成装置10のプロセッサ11が、プログラム生成装置10の主記憶装置12に記憶されているプログラムを読み出して実行することにより実現される。
As shown in the figure, the
記憶部110は、ソースコード151、実行ログ152、画面記述変数表153、及びスコープ判定条件154を記憶する。
The
ソースコード151は、ソースコード取得部111によってソフトウェア管理装置20から取得(受信)され、ソースコード解析部113による解析の対象となるソースコード(以下、「解析対象ソースコード」と称する。)を含む。尚、解析対象ソースコードは、ソフトウェア管理装置20において管理されている既存のソースコードや、ソフトウェア管理装置20において設計情報等に基づき自動生成されたもの等、とくに限定されない。
The
またソースコード151は、ソースコード生成部115が、解析対象ソースコードに基づき生成したソースコード(以下、「調整ソースコード」とも称する。)を含む。
ソースコード生成部115は、画面記述変数がスコープ判定部114により決定されたスコープになるように調整ソースコードを生成する。調整ソースコードは、ソースコード送信部116によりソフトウェア管理装置20に送信される、
Further, the
The source
尚、本実施形態では、ソースコード151は、例えば、AngularJS(登録商標)等のフレ
ームワークを利用して生成される、JavaScript(登録商標)により記述されたものを例示するが、ソースコード151の種類は、特定のフレームワークによるものや特定の言語で記述されるものに限定されない。例えば、ソースコード151は、TypeScript(登録商標)やHTML(登録商標)等によって記述されたものであってもよい。
In the present embodiment, the
実行ログ152は、実行ログ取得部112によってソフトウェア管理装置20から取得(受信)された、ソースコードに基づくプログラムの実行ログである。
The
画面記述変数表153は、ソースコード解析部113がソースコード151から抽出した画面記述変数に関する情報を含む。画面記述変数表153はスコープ判定部114により参照される。
The screen description variable table 153 includes information about the screen description variables extracted from the
スコープ判定条件154は、画面記述変数のスコープの決定に用いる情報(以下、「スコープ判定条件」と称する。)を含む。スコープ判定条件154は、スコープ判定部114が、画面記述変数によって記述される画面の挙動を、解析対象ソースコードを解析することにより特定する際に参照する条件である「ソースコード判定条件」と、画面記述変数によって記述される画面の挙動を、実行ログにより解析することにより特定する際に参照する条件である「実行ログ判定条件」と、を含む。
The
プログラム生成装置10が有する上記機能のうち、ソースコード取得部111は、通信ネットワーク5を介してソフトウェア管理装置20からソースコードを取得(受信)する。取得したソースコードは記憶部110がソースコード151として記憶する。
Among the above functions of the
実行ログ取得部112は、通信ネットワーク5を介してソフトウェア管理装置20から実行ログを取得(受信)する。取得した実行ログは記憶部110が実行ログ152として記憶する。
The execution
ソースコード解析部113は、ソースコード151を解析してソースコード151から画面記述変数を抽出して画面記述変数表153を生成する。
The source
スコープ判定部114は、スコープ判定条件154に基づき、画面記述変数表153における各画面記述変数のスコープを決定する。
The
ソースコード生成部115は、解析対象ソースコードに基づき、画面記述変数表153における各画面記述変数がスコープ判定部114が決定したスコープになるように記述した調整ソースコードを生成する。
The source
ソースコード送信部116は、ソースコード生成部115が生成したソースコード151をソフトウェア管理装置20に送信する。
The source
図4にソフトウェア管理装置20が備える主な機能を示している。同図に示すように、ソフトウェア管理装置20は、記憶部210、ソフトウェア管理部211、プログラム実行部212、ソースコード送信部213、及び実行ログ送信部214の各機能を有する。これらの機能は、ソフトウェア管理装置20のプロセッサ11が、ソフトウェア管理装置20の主記憶装置12に記憶されているプログラムを読み出して実行することにより実現される。
FIG. 4 shows main functions of the
記憶部210は、ソースコード251及び実行ログ252を記憶する。ソースコード251は、ソフトウェア管理部211が管理するソースコードであり、例えば、開発対象や保守対象のソースコードである。実行ログ252は、プログラム実行部212がソースコード251に基づくプログラムを実行することにより生成される実行ログである。
The
ソフトウェア管理部211は、例えば、統合開発環境(IDE:Integrated Development Environment)等のソフトウェアの開発/編集環境を提供し、開発対象もしくは編集対象のプログラムのソースコード251を管理する。
The
プログラム実行部212は、ソースコード251に基づくプログラムを実行してその実行ログ253を生成する。
The
図5は、ソースコードの画面定義部、画面記述変数のスコープ、及び、以下の説明で用いる用語である「情報保存強度」の関係を説明する図である。情報保存強度とは、ソースコード151に記述されている変数の内容の情報処理装置100の主記憶装置12への残りやすさ(記憶の維持されやすさ)を示す指標である。情報保存強度が高いほどメモリリーク(Memory leak)が生じる危険性(リスク)が高くなる。
FIG. 5 is a diagram for explaining the relationship between the screen definition part of the source code, the scope of the screen description variable, and the term "information storage strength" used in the following description. The information storage strength is an index indicating how easily the content of the variable described in the
例示するソースコードの画面定義部は、画面の入れ子関係を構成する、ルート画面定義部、親画面定義部、及び子画面定義部を有する。この構造(ルート画面の配下に親画面が定義され、親画面の配下に子画面が定義される構造)において、例えば、親画面定義部で定義されている変数は、制御がルート画面に移る(画面が遷移する)とその内容が失われてしまう。また子画面定義部で定義されている変数は、制御が親画面やルート画面に移るとその内容が失われてしまう。 The screen definition unit of the illustrated source code has a root screen definition unit, a parent screen definition unit, and a child screen definition unit that form a nesting relationship of screens. In this structure (a structure in which a parent screen is defined under the root screen and a child screen is defined under the parent screen), for example, control of variables defined in the parent screen definition unit is transferred to the root screen ( The screen will transition) and its contents will be lost. Also, the variables defined in the child screen definition section lose their contents when the control moves to the parent screen or the root screen.
同図に示すように、情報保存強度が高い変数ほどグローバル性が強く、情報保存強度が低い変数ほどローカル性が強くなる。例示するソースコードの画面定義部の構造では、各画面定義部に定義された変数の情報保存強度は、ルート画面定義部で定義された変数>親画面定義部で定義された変数>子画面定義部で定義された変数の順となる。 As shown in the figure, a variable having a higher information storage strength has a stronger globality, and a variable having a lower information storage strength has a stronger locality. In the structure of the screen definition part of the illustrated source code, the information storage strength of the variables defined in each screen definition part is: variable defined in the root screen definition part>variable defined in the parent screen definition part>child screen definition It is in the order of the variables defined in the section.
図6に解析対象ソースコードの一例を示す。例示する解析対象ソースコードは、ルーティングの定義(例えばリクエストURLに応じた処理の受け渡し先(コントローラ、テンプレート)の定義)に関してJavaScript(登録商標)により記述されたソースコードである
。解析対象ソースコードは、「parent」画面の定義に関する記述、「parent.child1」画
面の定義に関する記述、及び「parent.child2」画面の定義に関する記述を含む。
FIG. 6 shows an example of the analysis source code. The illustrated source code for analysis is a source code written in JavaScript (registered trademark) with respect to the definition of routing (for example, the definition of the transfer destination (controller, template) according to the request URL). The analysis target source code includes a description about the definition of the “parent” screen, a description about the definition of the “parent.child1” screen, and a description about the definition of the “parent.child2” screen.
例示する解析対象ソースコードには、「parent」画面のソースコードが、「templates/parent.html」というファイルと、「ParentCtrl」というコントローラが定義されたJavaScript(登録商標)のファイルに含まれていることが記述されている。また例示する解析対
象ソースコードには、「parent.child1」画面のソースコードが、「templates/child1.html」というファイルと、「Child1Ctrl」というコントローラが定義されたJavaScript(登
録商標)のファイルに含まれていることが記述されている。また例示する解析対象ソース
コードには、「parent.child2」画面のソースコードが、「templates/child2.html」というファイルと、「Child2Ctrl」というコントローラが定義されたJavaScript(登録商標)のファイルに含まれていることが記述されている。
The source code of the "parent" screen is included in the file "templates/parent.html" and the JavaScript (registered trademark) file in which the controller "ParentCtrl" is defined in the source code to be analyzed. Is described. In the source code to be analyzed as an example, the source code of the "parent.child1" screen is included in the file "templates/child1.html" and the JavaScript (registered trademark) file in which the controller "Child1Ctrl" is defined. Is described. In addition, in the source code to be analyzed as an example, the source code of the "parent.child2" screen is included in the file "templates/child2.html" and the JavaScript (registered trademark) file in which the controller "Child2Ctrl" is defined. Is described.
図7は、図6の解析対象ソースコードに基づく画面の構造を説明する図である。尚、例示するソースコードは、parent画面、parent.child1画面、parent.child2画面、及びparent画面の親画面となる大元の画面である「ルート画面」を含む。 FIG. 7 is a diagram illustrating the structure of a screen based on the analysis target source code of FIG. The illustrated source code includes a parent screen, a parent.child1 screen, a parent.child2 screen, and a "root screen" which is a parent screen of the parent screen.
同図に示すように、parent画面のソースコードは、ルート画面の定義部であるルート画面定義部と、parent画面の定義部であるparent画面定義部とを有する。ルート画面定義部に定義された変数は、parent画面定義部に定義された変数に対してグローバルな関係となる。 As shown in the figure, the source code of the parent screen has a root screen definition part which is a definition part of the root screen and a parent screen definition part which is a definition part of the parent screen. The variables defined in the root screen definition section have a global relationship with the variables defined in the parent screen definition section.
また同図に示すように、parent.child1画面のソースコードは、ルート画面の定義部で
あるルート画面定義部と、parent画面の定義部であるparent画面定義部と、parent.child1画面の定義部であるparent.child1画面定義部と、を有する。ルート画面定義部に定義された変数は、parent画面定義部に定義された変数に対してグローバルな関係となり、parent画面定義部に定義された変数は、parent.child1画面定義部に定義された変数に対して
グローバルな関係となる。
Also, as shown in the figure, the source code of the parent.child1 screen is the root screen definition part that is the definition part of the root screen, the parent screen definition part that is the definition part of the parent screen, and the definition part of the parent.child1 screen. And a screen definition part of parent.child1. The variables defined in the root screen definition part have a global relationship with the variables defined in the parent screen definition part, and the variables defined in the parent screen definition part are the variables defined in the parent.child1 screen definition part. Have a global relationship with.
また同図に示すように、parent.child2画面のソースコードは、ルート画面の定義部で
あるルート画面定義部と、parent画面の定義部であるparent画面定義部と、parent.child2画面の定義部であるparent.child2画面定義部と、を有する。ルート画面定義部に定義された変数は、parent画面定義部に記述された変数に対してグローバルな関係となり、parent画面定義部に定義された変数は、parent.child2画面定義部に定義された変数に対して
グローバルな関係となる。
As shown in the figure, the source code of the parent.child2 screen is the root screen definition part that is the definition part of the root screen, the parent screen definition part that is the definition part of the parent screen, and the definition part of the parent.child2 screen. And a screen definition part of parent.child2. The variables defined in the root screen definition part have a global relationship with the variables described in the parent screen definition part, and the variables defined in the parent screen definition part are the variables defined in the parent.child2 screen definition part. Have a global relationship with.
図8(a)、(b)は、JavaScript(登録商標)で記述された、画面の遷移の挙動に関する記述を含むソースコードの例である。このうち(a)のソースコードは、parent.child1画面からparent.child2画面への遷移の挙動に関する記述を含む。また(b)のソースコードは、parent.child2画面からparent.child1画面への遷移の挙動に関する記述を含む。 FIG. 8A and FIG. 8B are examples of source code written in JavaScript (registered trademark) that includes a description regarding behavior of screen transition. Of these, the source code of (a) includes a description about the behavior of the transition from the parent.child1 screen to the parent.child2 screen. Further, the source code of (b) includes a description regarding the behavior of the transition from the parent.child2 screen to the parent.child1 screen.
図9に、画面記述変数表153の一例を示す。画面記述変数表153は、画面名1531で特定される各画面と、夫々に定義されている変数の変数名1532との対応を示す情報を含む。例示する画面記述変数表153の場合、ルート画面については画面記述変数は抽出されていない。一方、parent画面については「m0」という画面記述変数が抽出されている。またparent.child1画面については、「m1」と「m2」という画面記述変数が
、parent.child2画面については、「m3」と「m4」という画面記述変数が、夫々抽出
されている。
FIG. 9 shows an example of the screen description variable table 153. The screen description variable table 153 includes information indicating the correspondence between each screen specified by the
図10にスコープ判定条件154の一例を示す。スコープ判定条件154の内容は、例
えば、ソフトウェアの開発者や保守者等のユーザが設定する。
FIG. 10 shows an example of the
例示するスコープ判定条件154には、スコープ判定部114がソースコード151に記述されている変数をグローバル変数とすべきか否かを判定するための条件がスコープ判定条件として設定されている。また同図に示すように、例示するスコープ判定条件154は、前述したソースコード判定条件であるソースコード判定条件1541と、前述した実行ログ判定条件である実行ログ判定条件1542とを含む。
In the illustrated
尚、本実施形態では、このようにスコープ判定条件としてソースコード151に記述されている変数をグローバル変数とすべきか否かを判定するための条件を例示するが、これとは逆にスコープ判定条件をソースコード151に記述されている変数をローカル変数とすべきか否かを判定するための条件としてもよい。またスコープ判定条件に、ソースコード151に記述されている変数をグローバル変数とすべきか否かを判定するための条件と、ソースコード151に記述されている変数をローカル変数とすべきか否かを判定するための条件とを混在させてもよい。
In addition, in the present embodiment, a condition for determining whether or not the variable described in the
例示するスコープ判定条件154には、ソースコード判定条件1541として「画面記述変数が属する画面と双方向に遷移する画面はあるか」という条件(以下、条件(a)と称する。)と、「画面記述変数が属する画面定義部は遷移先画面で置き換わるか」という条件(以下、条件(b)と称する。)が設定されている。
In the illustrated
また実行ログ判定条件1542として「画面記述変数が属する画面と双方向に遷移する画面との遷移の往復回数が閾値以上か」という条件(以下、条件(A)と称する。)と、「画面記述変数が属する画面と双方向に遷移する画面との遷移の往復で、同じ値を該変数に格納する回数が閾値以上か」という条件(以下、条件(B)と称する。)が設定されている。
In addition, as the execution
尚、同図に示すパターンID1543は、上記の4つの条件(a)、条件(b)、条件(A)、条件(D)を選択して組み合わせることにより得られるパターン毎に付与される識別子(以下、パターンIDと称する。)である。スコープ判定部114は、画面記述変数のスコープの決定に際し、スコープ判定条件154に設定されているいずれかのパターンを選択して用いる。同図における「○」の記号は、当該パターンが該当する条件を選択することを意味している。また実行ログ判定条件1542の「○(閾値=7)」等における「閾値=7」等の表記は、実行ログ判定条件1542に記述されている閾値に設定する具体的な値を示している。
The
例えば、パターンIDが「1」のパターンを選択した場合、スコープ判定部114は、ソースコード判定条件である条件(a)及び条件(b)を用いた条件式に基づき画面記述変数のスコープを判定する。尚、上記条件式は、条件(a)と条件(b)とAND条件に基づくものとしてもよいし、条件(a)と条件(b)とのOR条件に基づくものとしてもよい。上記条件式が真となる場合、スコープ判定部114は、グローバル性が高くなるように画面記述変数のスコープを設定する。
For example, when the pattern with the pattern ID “1” is selected, the
一方、パターンIDが「2」のパターンを選択した場合、スコープ判定部114は、ソースコード判定条件である条件(a)及び条件(b)と、実行ログ判定条件である条件(A)及び条件(D)の4つの条件に基づく条件式によって画面記述変数のスコープを判定する。尚、上記条件式は、上記4つの条件の全てのAND条件としてもよいし、上記4つの条件の全てのOR条件としてもよい。また上記4つの条件をAND条件とOR条件とを混在させた条件式により真偽を判定するようにしてもよい。スコープ判定部114は、上記条件式が真となる場合、グローバル性が高くなるように画面記述変数のスコープを設定
する。
On the other hand, when the pattern having the pattern ID “2” is selected, the
以上に示したスコープ判定条件154は一例に過ぎず、例えば、ソースコードの種類やソースコードによって実現されるアプリケーションの機能等に応じて様々な態様で設定することができる。
The
図11は、プログラム生成装置10が、解析対象ソースコードから画面記述変数を抽出し、抽出した画面記述変数のスコープを決定し、決定したスコープに基づき調整ソースコードを生成する処理(以下、プログラム生成処理S1100と称する。)を説明するフローチャートである。以下、同図とともにプログラム生成処理S1100について説明する。
FIG. 11 shows a process in which the
まずソースコード取得部111が、ソフトウェア管理装置20からソースコードを取得する。取得したソースコードは記憶部110がソースコード151(解析対象ソースコード)として記憶する(S1111)。
First, the source
続いて、実行ログ取得部112が、ソフトウェア管理装置20から解析対象ソースコードの実行ログ152を取得する。取得した実行ログは記憶部110が実行ログ152として記憶する(S1112)。尚、後述するスコープの判定においてスコープ判定条件として実行ログ判定条件を用いない場合には当該処理は必ずしも必要ない。
Then, the execution
続いて、ソースコード解析部113が、解析対象ソースコードを解析することにより画面記述変数を抽出し、抽出した画面記述変数の情報を格納した画面記述変数表153を生成する(S1113)。
Subsequently, the source
続いて、スコープ判定部114が、画面記述変数表153に格納されている画面記述変数を一つ選択する(S1114)。尚、S1114〜S1151の処理は、画面記述変数表153に格納されている各画面記述変数について繰り返し実行される。
Then, the
続いて、スコープ判定部114が、スコープ判定条件154に基づき、選択中の画面記述変数をグローバルにすべき(情報保存強度を高めるべき)か否かを判定する(S1115)。判定の結果が真であれば(S1115:YES)、S1116の処理へ進む。判定の結果が偽であれば(S1115:NO)、S1121の処理へ進む。
Subsequently, the
例えば、スコープ判定部114がparent.child1画面の画面定義部に含まれている「m
1」という変数を選択した場合には次のようになる。尚、遷移の挙動は図8(a)、(b)のように記述され、スコープ判定条件154は図10のように設定され、スコープ判定部114はパターンID1543が「1」のパターンに基づき条件(a)と条件(b)のAND条件を条件式として真偽を判定するものとする。
For example, the
When the variable "1" is selected, it becomes as follows. The behavior of the transition is described as shown in FIGS. 8A and 8B, the
まず条件(a)「画面記述変数が属する画面と双方向に遷移する画面がある」に関し、変数「m1」が属する画面はparent.child1画面であり、その画面定義部はparent.child1画面定義部である。また図8(a)のソースコードによればparent.child1画面はparent.child2画面に遷移し、図8(b)のソースコードによればparent.child2画面はparent.child1画面へ遷移する。従って、スコープ判定部114は、変数「m1」は、「画面記述変数が属する画面と双方向に遷移する画面がある」と判定する。また条件(b)「画面記述変数が属する画面定義部は遷移先画面で置き換わるか」に関し、変数「m1」が属する画面はparent.child1画面であり、その画面定義部であるparent.child1画面定義部は、遷移先であるparent.child2画面に遷移した場合、図6に示すようにparent.child2画面定義部に置き換わる。従って、スコープ判定部114は、変数「m1」は、「画面記述変数が属
する画面の画面定義部は遷移先の画面で置き換わる」と判定する。以上より、条件式、即ち条件(a)と条件(b)のAND条件は真となり、スコープ判定部114は、画面記述変数「m1」はグローバル化すべきと判定し(S1115:YES)、処理はS1116に進む。
First, regarding the condition (a) “There is a screen that transits bidirectionally with the screen to which the screen description variable belongs”, the screen to which the variable “m1” belongs is the parent.child1 screen, and its screen definition part is the parent.child1 screen definition part. Is. Further, according to the source code of FIG. 8A, the parent.child1 screen changes to the parent.child2 screen, and according to the source code of FIG. 8B, the parent.child2 screen changes to the parent.child1 screen. Therefore, the
一方、スコープ判定条件154が図10のように設定され、スコープ判定部114が、スコープ判定条件154のパターンID1543が「2」のパターンに基づき画面記述変数のスコープを判定する場合は次のようになる。但し、スコープ判定部114は、図10のスコープ判定条件154における、条件(a)、条件(b)、条件(A)、及び条件(B)の全てをAND条件で結んだもの(=条件(a)、条件(b)、条件(A)、及び条件(B)のAND条件)を条件式として真偽を判定するものとする。
On the other hand, when the
まず条件(a)、条件(b)の真偽の判定については前述と同様である。また条件(A)「変数が属する画面と双方向に遷移する画面との遷移の往復回数が閾値以上か」に関し、実行ログ152から往復回数が7回以上であることがわかり、また条件(B)「変数が属する画面と双方向に遷移する画面との遷移の往復で、同じ値を該変数に格納する回数が閾値以上か」に関し、実行ログ152から同じ値を該変数に格納する回数が5回以上であることがわかった場合、条件式は真となり(S1115:YES)。この場合、スコープ判定部114は画面記述変数「m1」はグローバル化すべきと判定し、処理はS1116に進む。
First, whether the condition (a) or the condition (b) is true or false is the same as described above. Regarding the condition (A) “whether the number of round trips for transition between the screen to which the variable belongs and the screen for bidirectional transition is greater than or equal to a threshold”, the
S1116では、スコープ判定部114は、S1114で取得した画面記述変数の情報保存強度が現在よりも高くなるように画面記述変数表153を設定する。具体的には、スコープ判定部114は、例えば、現在選択中の画面記述変数が現在定義されている画面の親画面であるparent画面定義部で定義されるように設定する。またこのとき、スコープ判定部114は、スコープを変更した画面記述変数の変数名が他の変数の変数名との間で重複(コンフリクト)するか否かを判定し、重複が生じる場合は一方の変数名を変更(画面記述変数表153の内容を変更)する(S1117)。
In S1116, the
尚、以上の2つの例においてスコープ判定部114が画面記述変数「m1」をグローバル化すべきと判定して情報保存強度を現在よりも高く設定するのは、次の理由による。
In the above two examples, the
即ち図12に示すように、parent.child1画面のparent画面の画面定義部で変数「m0
」が定義され、parent.child1画面の画面定義部で変数「m1」及び変数「m2」が定義
されている場合、parent.child1画面からparent.child2画面に遷移した際、parent.child1画面定義部はparent.child2画面定義部に置き換わり、変数「m1」及び変数「m2」の内容はいずれも主記憶装置12から消えてしまう。
That is, as shown in FIG. 12, in the screen definition portion of the parent screen of the parent.child1 screen, the variable "m0
Is defined and the variable "m1" and variable "m2" are defined in the screen definition part of the parent.child1 screen, when the screen transitions from the parent.child1 screen to the parent.child2 screen, the parent.child1 screen definition part Is replaced by the parent.child2 screen definition part, and the contents of the variable “m1” and the variable “m2” are both erased from the
一方、parent画面定義部は、parent.child2画面に遷移した後も存在するため、parent
画面定義部に定義されている変数「m0」のデータは主記憶装置12に残り続ける。
On the other hand, the parent screen definition part still exists after the transition to the parent.child2 screen, so parent screen definition
The data of the variable “m0” defined in the screen definition section remains in the
そこで、スコープ判定部114は、parent.child1画面定義部の変数「m1」が現在よ
りも情報保存強度が高くなるように設定する。
Therefore, the
図11に戻り、S1121では、スコープ判定部114は、選択中の画面記述変数の情報保存強度を下げることができるか否かを判定する。この判定は、例えば、選択中の画面記述変数が現在定義されている画面の子画面内でのみ参照されるものであるか否かを判定することにより行う。判定が真であれば(S1121:YES)、S1122の処理に進む。判定が偽であれば(S1121:NO)、S1141の処理に進む。
Returning to FIG. 11, in S1121, the
S1122では、スコープ判定部114は、S1114で取得した画面記述変数の情報保存強度を下げる。前述の例であれば、スコープ判定部114は、例えば、画面記述変数「m0」が、parent画面定義部からそれよりも情報保存強度の低いparent.child1画面定
義部で定義されるように画面記述変数表153を設定する。S1122の処理の後、処理はS1114に戻る。
In S1122, the
続いて、プログラム生成装置10は、S1114において未選択の画面記述変数があるか否かを判定する(S1141)。未選択の画面記述変数がある場合(S1141:YES)、処理はS1114に戻る。未選択の画面記述変数がない場合(S1141:NO)、S1151の処理に進む。
Subsequently, the
S1151では、ソースコード生成部115が、解析対象ソースコードに基づき、画面記述変数表153に従って画面記述変数のスコープを設定した調整ソースコードを生成する。尚、記憶部110は、生成された調整ソースコードをソースコード151として記憶する。以上でプログラム生成処理S1100は終了する。
In S1151, the source
尚、S1151で生成された調整ソースコードは、ソースコード送信部116によってソフトウェア管理装置20に送信され、例えば、ソフトウェアの開発や保守に用いるソースコードとして利用される。
The adjusted source code generated in S1151 is transmitted to the
以上に説明したように、本実施形態のプログラム生成装置10は、解析対象ソースコードから抽出した画面記述変数によって記述される画面の挙動を、解析対象ソースコードに基づき取得される情報(解析対象ソースコード、実行ログ)から特定し、特定した挙動をスコープ判定条件154と対照することにより、抽出した画面記述変数に設定すべきスコープを決定し、決定したスコープとなるように記述した調整ソースコードを生成する。そのため、画面記述変数のスコープを適切に設定した調整ソースコードを効率よく生成することができる。また解析対象ソースコードにメソッドやその上位メソッドの利用/被利用関係がない場合でも画面記述変数のスコープを効率よく適切に設定することができる。
As described above, the
またプログラム生成装置10は、ローカル化することが可能な画面記述変数については情報保存強度を下げる方向にスコープを設定して調整ソースコードを生成するので、メモリリークの発生を効果的に予防することができる。
Further, since the
また解析対象ソースコードの解析と実行ログの解析を併用することで、より高い精度で適切に画面記述変数のスコープを設定することができ、メモリリークの発生を予防するとともに記憶資源を効率よく利用することが可能な調整ソースコードを生成することができる。 In addition, by using the analysis of the source code to be analyzed and the analysis of the execution log together, the scope of the screen description variables can be set more accurately and appropriately, preventing the occurrence of memory leaks and efficiently using storage resources. It is possible to generate adjustable source code that can be.
以上、本発明について実施の形態に基づき具体的に説明したが、本発明は上記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、上記の実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また上記実施形態の構成の一部について、他の構成の追加・削除・置換をすることができる。 Although the present invention has been specifically described above based on the embodiments, the present invention is not limited to the above embodiments, and various modifications can be made without departing from the scope of the invention. For example, the above embodiments have been described in detail for the purpose of explaining the present invention in an easy-to-understand manner, and are not necessarily limited to those having all the configurations described. Further, with respect to a part of the configuration of the above embodiment, other configurations can be added/deleted/replaced.
また上記の各構成、機能部、処理部、処理手段等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また上記の各構成、機能等は、プロセッサが夫々の機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録装置、またはI
Cカード、SDカード、DVD等の記録媒体に置くことができる。
Further, each of the above-described configurations, functional units, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit. Further, the above-described respective configurations, functions and the like may be realized by software by the processor interpreting and executing a program for realizing each function. Information such as programs, tables, and files for realizing each function is stored in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), or I
It can be placed on a recording medium such as a C card, SD card, or DVD.
また各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。例えば、実際にはほとんど全ての構成が相互に接続されていると考えてもよい。 Further, in each of the drawings, the control lines and information lines are shown to be necessary for explanation, and not all the control lines and information lines for mounting are necessarily shown. For example, it may be considered that practically all the configurations are connected to each other.
また以上に説明した情報処理装置の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、各情報処理装置がハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。 Further, the arrangement modes of the various functional units, the various processing units, and the various databases of the information processing apparatus described above are merely examples. The arrangement form of the various functional units, the various processing units, and the various databases can be changed by each information processing device to an optimum arrangement form from the viewpoint of the performance of hardware and software, processing efficiency, communication efficiency, and the like.
1 情報処理システム
5 通信ネットワーク
10 プログラム生成装置
110 記憶部
111 ソースコード取得部
112 実行ログ取得部
113 ソースコード解析部
114 スコープ判定部
115 ソースコード生成部
116 ソースコード送信部
151 ソースコード(解析対象ソースコード、調整ソースコード)
152 実行ログ
153 画面記述変数表
154 スコープ判定条件
20 ソフトウェア管理装置
210 記憶部
211 ソフトウェア管理部
212 プログラム実行部
213 ソースコード送信部
214 実行ログ送信部
251 ソースコード
252 実行ログ
S1100 プログラム生成処理
1
152
Claims (15)
画面に関する記述を含んだソースコードである解析対象ソースコード、及び、
前記解析対象ソースコードにおいて画面に関する記述に用いられている変数である画面記述変数のスコープの決定に際して用いられ、前記画面の構造または挙動に関して設定された条件であるスコープ判定条件、
を記憶し、
前記解析対象ソースコードから前記画面記述変数を抽出し、
抽出した前記画面記述変数によって記述される画面の構造または挙動を前記解析対象ソースコードに基づき取得される情報から特定し、特定した前記構造または挙動を前記スコープ判定条件と対照することにより前記画面記述変数に設定すべきスコープを決定し、
前記解析対象ソースコードに基づき、前記画面記述変数が前記決定した前記スコープとなるように記述したソースコードである調整ソースコードを生成する、
プログラム生成装置。 An information processing device,
Source code that is the source code that includes the description about the screen, and
The scope determination condition, which is a condition set regarding the structure or behavior of the screen, which is used in determining the scope of the screen description variable that is a variable used for the description about the screen in the analysis target source code,
Remember
Extracting the screen description variable from the analysis source code,
The screen description by identifying the structure or behavior of the screen described by the extracted screen description variable from the information acquired based on the analysis target source code, and comparing the identified structure or behavior with the scope determination condition Decide the scope to be set in the variable,
Generating an adjusted source code that is a source code described so that the screen description variable is in the determined scope based on the analysis target source code;
Program generator.
前記画面記述変数によって記述される画面の構造または挙動を、前記解析対象ソースコードを解析することにより特定する、
プログラム生成装置。 The program generation device according to claim 1,
The structure or behavior of the screen described by the screen description variable is specified by analyzing the analysis target source code,
Program generator.
前記解析対象ソースコードに基づくプログラムを実行することにより生成される実行ログを記憶し、
前記抽出した画面記述変数によって記述される画面の挙動を、前記実行ログを解析することにより特定し、特定した前記挙動を前記スコープ判定条件と対照することにより、前記画面記述変数のスコープを決定する、
プログラム生成装置。 The program generation device according to claim 1 or 2, wherein
Stores an execution log generated by executing a program based on the analysis source code,
The behavior of the screen described by the extracted screen description variable is specified by analyzing the execution log, and the specified behavior is compared with the scope determination condition to determine the scope of the screen description variable. ,
Program generator.
前記スコープ判定条件が、前記画面記述変数が属する画面と双方向に遷移する画面はあるかという条件、及び画面記述変数が属する画面定義部は遷移先画面で置き換わるかという条件、のうちの少なくともいずれかに基づくものである、
プログラム生成装置。 The program generation device according to claim 2, wherein
At least one of the condition that the scope determination condition is a screen that bidirectionally transits with the screen to which the screen description variable belongs, and the condition that the screen definition part to which the screen description variable belongs is replaced with the transition destination screen Based on crab,
Program generator.
前記スコープ判定条件が、画面記述変数が属する画面と双方向に遷移する画面との遷移の往復回数が予め設定された閾値以上かという条件、及び画面記述変数が属する画面と双方向に遷移する画面との遷移の往復で、同じ値を該画面記述変数に格納する回数が予め設定された閾値以上かという条件、のうちの少なくともいずれかに基づくものである、
プログラム生成装置。 The program generation device according to claim 3,
The scope determination condition is a condition that the number of round trips between the screen to which the screen description variable belongs and the screen to which the screen bidirectionally transits is equal to or greater than a preset threshold value, and a screen that bidirectionally transits to the screen to which the screen description variable belongs Is based on at least one of the condition that the number of times the same value is stored in the screen description variable in the round trip of the transition between and is greater than or equal to a preset threshold value,
Program generator.
前記抽出した画面記述変数に設定すべきとして決定したスコープが現在よりもローカルなスコープである場合、当該画面記述変数のスコープが現在よりもローカルなスコープになるように前記解析対象ソースコードを変更することにより前記調整ソースコードを生成する、
プログラム生成装置。 The program generation device according to claim 1,
When the scope determined to be set in the extracted screen description variable is a scope more local than the present, the source code for analysis is changed so that the scope of the screen description variable is a scope more local than the present. Generate the adjusted source code by
Program generator.
前記抽出した画面記述変数に設定すべきとして決定したスコープが現在よりもグローバルなスコープである場合、当該画面記述変数のスコープが現在よりもグローバルなスコープになるように前記解析対象ソースコードを変更することにより前記調整ソースコードを生成する、
プログラム生成装置。 The program generation device according to claim 1,
When the scope that is determined to be set in the extracted screen description variable is a global scope than the current one, the analysis target source code is changed so that the scope of the screen description variable is a global scope than the current scope. Generate the adjusted source code by
Program generator.
前記画面記述変数の変数名が重複しないように前記調整ソースコードを生成する、
プログラム生成装置。 The program generation device according to claim 7,
The adjustment source code is generated so that the variable names of the screen description variables do not overlap,
Program generator.
前記解析対象ソースコードは、入れ子の関係を有する複数の画面の夫々に対応した画面定義部を有し、
前記抽出した画面記述変数に設定すべきとして決定したスコープに応じて前記画面記述変数を記述する前記画面定義部を選択して前記調整ソースコードを生成する、
プログラム生成装置。 The program generation device according to claim 7 or 8, wherein
The analysis target source code has a screen definition unit corresponding to each of a plurality of screens having a nesting relationship,
The adjustment source code is generated by selecting the screen definition unit that describes the screen description variable according to the scope determined to be set in the extracted screen description variable,
Program generator.
画面に関する記述を含んだソースコードである解析対象ソースコード、及び、前記解析対象ソースコードにおいて画面に関する記述に用いられている変数である画面記述変数のスコープの決定に際して用いられ、前記画面の構造または挙動に関して設定された条件であるスコープ判定条件、を記憶するステップと、
前記解析対象ソースコードから前記画面記述変数を抽出するステップと、
抽出した前記画面記述変数によって記述される画面の構造または挙動を前記解析対象ソースコードに基づき取得される情報から特定し、特定した前記構造または挙動を前記スコープ判定条件と対照することにより前記画面記述変数に設定すべきスコープを決定するステップと、
前記解析対象ソースコードに基づき、前記画面記述変数が前記決定した前記スコープとなるように記述したソースコードである調整ソースコードを生成するステップと、
を実行する、プログラム生成方法。 The information processing device
The analysis target source code that is the source code including the description about the screen, and the structure of the screen used when determining the scope of the screen description variable that is the variable used for the description about the screen in the analysis target source code. Storing a scope judgment condition, which is a condition set regarding the behavior,
Extracting the screen description variable from the analysis source code,
The screen description by identifying the structure or behavior of the screen described by the extracted screen description variable from the information acquired based on the analysis target source code, and comparing the identified structure or behavior with the scope determination condition The step of determining the scope to be set in the variable,
Generating an adjusted source code that is a source code described so that the screen description variable is in the determined scope based on the analysis target source code;
A program generation method for executing.
前記情報処理装置が、前記画面記述変数によって記述される画面の構造または挙動を、前記解析対象ソースコードを解析することにより特定するステップ
を更に実行する、プログラム生成方法。 The program generation method according to claim 10, wherein
The program generation method, wherein the information processing device further executes a step of identifying the structure or behavior of the screen described by the screen description variable by analyzing the analysis target source code.
前記情報処理装置が、
前記解析対象ソースコードに基づくプログラムを実行することにより生成される実行ログを記憶するステップと、
前記抽出した画面記述変数によって記述される画面の挙動を、前記実行ログを解析することにより特定し、特定した前記挙動を前記スコープ判定条件と対照することにより、前記画面記述変数のスコープを決定するステップと、
を更に実行する、プログラム生成方法。 The program generation method according to claim 10 or 11, wherein
The information processing device is
Storing an execution log generated by executing a program based on the analysis target source code,
The behavior of the screen described by the extracted screen description variable is specified by analyzing the execution log, and the specified behavior is compared with the scope determination condition to determine the scope of the screen description variable. Steps,
And a program generation method.
前記スコープ判定条件が、前記画面記述変数が属する画面と双方向に遷移する画面はあるかという条件、及び画面記述変数が属する画面定義部は遷移先画面で置き換わるかという条件、のうちの少なくともいずれかに基づくものである、
プログラム生成方法。 The program generation method according to claim 11, wherein
At least one of the condition that the scope determination condition is a screen that bidirectionally transits with the screen to which the screen description variable belongs, and the condition that the screen definition part to which the screen description variable belongs is replaced with the transition destination screen Based on crab,
Program generation method.
前記スコープ判定条件が、画面記述変数が属する画面と双方向に遷移する画面との遷移の往復回数が予め設定された閾値以上かという条件、及び画面記述変数が属する画面と双方向に遷移する画面との遷移の往復で、同じ値を該画面記述変数に格納する回数が予め設定された閾値以上かという条件、のうちの少なくともいずれかに基づくものである、
プログラム生成方法。 The program generation method according to claim 12, wherein
The scope determination condition is a condition that the number of round trips between the screen to which the screen description variable belongs and the screen to which the screen bidirectionally transits is equal to or greater than a preset threshold value, and a screen that bidirectionally transits to the screen to which the screen description variable belongs Is based on at least one of the condition that the number of times the same value is stored in the screen description variable in the round trip of the transition between and is greater than or equal to a preset threshold value,
Program generation method.
前記情報処理装置が、
前記抽出した画面記述変数に設定すべきとして決定したスコープが現在よりもグローバルなスコープである場合、当該画面記述変数のスコープが現在よりもグローバルなスコープになるように前記解析対象ソースコードを変更することにより前記調整ソースコードを生成するステップと、
前記画面記述変数の変数名が重複しないように前記調整ソースコードを生成するステップと、
を更に実行する、プログラム生成方法。
The program generation method according to claim 10, wherein
The information processing device is
When the scope that is determined to be set in the extracted screen description variable is a global scope than the current one, the analysis target source code is changed so that the scope of the screen description variable is a global scope than the current scope. Generating the adjusted source code by
Generating the adjustment source code so that the variable names of the screen description variables do not overlap,
And a program generation method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018221532A JP7059165B2 (en) | 2018-11-27 | 2018-11-27 | Program generator and program generation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018221532A JP7059165B2 (en) | 2018-11-27 | 2018-11-27 | Program generator and program generation method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020087033A true JP2020087033A (en) | 2020-06-04 |
JP7059165B2 JP7059165B2 (en) | 2022-04-25 |
Family
ID=70908306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018221532A Active JP7059165B2 (en) | 2018-11-27 | 2018-11-27 | Program generator and program generation method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7059165B2 (en) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05241755A (en) * | 1992-02-29 | 1993-09-21 | Fujitsu Ltd | Variable storage area control method |
JPH11272475A (en) * | 1998-03-20 | 1999-10-08 | Nec Corp | Automatic re-entrant method for non-re-entrant program and system therefor |
JP2002049521A (en) * | 2000-08-03 | 2002-02-15 | Ntt Comware Corp | Transmitting method for variable and computer-readable recording medium with recorded program thereof |
JP2009048259A (en) * | 2007-08-14 | 2009-03-05 | Seiko Epson Corp | Program conversion method and program for conversion |
JP2017027331A (en) * | 2015-07-22 | 2017-02-02 | コニカミノルタ株式会社 | Image forming apparatus and information display method |
US20170161035A1 (en) * | 2015-12-03 | 2017-06-08 | International Business Machines Corporation | Method of Adding Local Variables In Place of Global in JavaScript |
JP2018106556A (en) * | 2016-12-27 | 2018-07-05 | 株式会社日立製作所 | Screen information generating apparatus, screen information generating method, and program |
-
2018
- 2018-11-27 JP JP2018221532A patent/JP7059165B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05241755A (en) * | 1992-02-29 | 1993-09-21 | Fujitsu Ltd | Variable storage area control method |
JPH11272475A (en) * | 1998-03-20 | 1999-10-08 | Nec Corp | Automatic re-entrant method for non-re-entrant program and system therefor |
JP2002049521A (en) * | 2000-08-03 | 2002-02-15 | Ntt Comware Corp | Transmitting method for variable and computer-readable recording medium with recorded program thereof |
JP2009048259A (en) * | 2007-08-14 | 2009-03-05 | Seiko Epson Corp | Program conversion method and program for conversion |
JP2017027331A (en) * | 2015-07-22 | 2017-02-02 | コニカミノルタ株式会社 | Image forming apparatus and information display method |
US20170161035A1 (en) * | 2015-12-03 | 2017-06-08 | International Business Machines Corporation | Method of Adding Local Variables In Place of Global in JavaScript |
JP2018106556A (en) * | 2016-12-27 | 2018-07-05 | 株式会社日立製作所 | Screen information generating apparatus, screen information generating method, and program |
Non-Patent Citations (1)
Title |
---|
WAKAMSHA: "【AngularJS x TypeScript デザインパターン】 Controller と Routing 篇 - AngularJS + TypeScript #4", PSYENCE:MEDIA [ONLINE], JPN6022013068, 25 December 2015 (2015-12-25), ISSN: 0004742225 * |
Also Published As
Publication number | Publication date |
---|---|
JP7059165B2 (en) | 2022-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180262509A1 (en) | Differentiated containerization and execution of web content based on trust level and other attributes | |
US9245144B2 (en) | Secure data container for web applications | |
KR101143191B1 (en) | Aligned behavior in templated lists | |
DK2972827T3 (en) | COLLABORATIVE EDITING | |
JP6692289B2 (en) | Screen information generating device, screen information generating method, and program | |
US20170262550A1 (en) | Caching of a site model in a hierarchical modeling system for network sites | |
JP2007025928A (en) | Device control system, device control processing method and device control program | |
JP7059165B2 (en) | Program generator and program generation method | |
WO2020250164A1 (en) | Dynamic synchronized image text localization | |
JP4144885B2 (en) | How to reuse application objects | |
JP4870956B2 (en) | Embedded program generation method, embedded program development system, and information table section | |
JP7025104B2 (en) | Information processing equipment, methods and programs | |
JP2013235508A (en) | Object-oriented program generation device, method therefor, and program | |
JP4944434B2 (en) | Layout method and program | |
JP2013196547A (en) | Information processor and information processing program | |
JP7260150B2 (en) | WEBSITE DESIGN SUPPORT DEVICE, WEBSITE DESIGN SUPPORT METHOD, AND PROGRAM | |
KR20130076062A (en) | Management system and method for distributed data quality | |
JP6142878B2 (en) | Information system performance evaluation apparatus, method and program | |
US8495033B2 (en) | Data processing | |
JP6497087B2 (en) | Information processing apparatus and information processing program | |
JPWO2018225747A1 (en) | Distributed system, data management device, data management method, and computer-readable recording medium | |
JP2020160854A (en) | Code management system, and code management method | |
JP5948926B2 (en) | Object-oriented program generator, program | |
JP5932262B2 (en) | Information processing apparatus, information processing method, and program | |
JP2011150736A (en) | Profiling program, profiling method and computer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210415 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220323 |
|
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: 20220405 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220413 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7059165 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |