JP2006338190A - 実装コード開発システム、及び実装コード開発プログラム - Google Patents
実装コード開発システム、及び実装コード開発プログラム Download PDFInfo
- Publication number
- JP2006338190A JP2006338190A JP2005160427A JP2005160427A JP2006338190A JP 2006338190 A JP2006338190 A JP 2006338190A JP 2005160427 A JP2005160427 A JP 2005160427A JP 2005160427 A JP2005160427 A JP 2005160427A JP 2006338190 A JP2006338190 A JP 2006338190A
- Authority
- JP
- Japan
- Prior art keywords
- class
- source code
- code
- object model
- function
- 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
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
【解決手段】記録媒体13には、ソースコード20、及びホットスポットに適合する条件が記述された継承情報記述ファイル40が格納される。ソースコードパース部110は、記録媒体13から読み込まれるソースコード20の内容に応じて所定のクラス群をインスタンス化し、ソースコード20の内容を示す第1オブジェクトモデルをメモリ12上に展開する。継承情報付与部120は、記録媒体13から継承情報記述ファイル40を読み込み、第1オブジェクトモデルを、上記条件が付与された第2オブジェクトモデルに変更する。アウトプット部130は、メモリ12上に展開された第2オブジェクトモデルをコード化することにより、ホットスポット実装コード50を作成する。
【選択図】図2
Description
図2は、本発明に係る実装コード開発システム10の構成を示すブロック図である。実装コード開発システム10は、演算処理装置11、メモリ12、記録媒体13、入力装置14、及び表示装置15を備えている。メモリ12は、データ処理用の一時記憶装置であり、例としてDRAM(Dynamic Random Access Memory)が挙げられる。記録媒体13は、データやプログラムを格納するための記憶装置であり、例としてハードディスクが挙げられる。入力装置14としては、キーボードやマウスが例示される。表示装置15としては、液晶ディスプレイが例示される。演算処理装置11は、プログラムの命令に従って、各種演算や各装置の制御を実行する。開発者は、表示装置15に表示される情報を参照しながら、入力装置14を用いてファイルの編集やコマンドの入力を行うことができる。この実装コード開発システム10は、例えばワークステーション上に構築される。
図3A及び図3Bは、本発明に係る実装コード開発システム10におけるデータ処理の流れを示している。以下、図2と共にこれら図3A及び図3Bを参照することによって、ソースコード20がホットスポット実装コード50に変換されるまでの処理を説明する。尚、ソースコード20及び継承情報記述ファイル40は、開発者により予め作成され、記録媒体13に格納されているとする。ソースコード20は、開発者が得意とするプログラミング言語により作成されている。また、継承情報記述ファイル40は、所定の言語により作成されている。また、作成されるホットスポット実装コード50のファイル形式、すなわち所望のファイル形式は、開発者により予め指定されている。例えば、出力ファイル形式は、Java(登録商標)に設定される。以下に示される処理は、演算処理装置11と、その演算処理装置11によって実行される変換プログラム100とによって実現される。
図3Aは、本発明に係るデータ処理の前半を示しており、ソースコード20からオブジェクトモデル30が作成されるまでの処理を示している。開発者が入力装置14を用いてソースコード20を指定すると、変換プログラム100のソースコードパース部110は、指定されたソースコード20を記録媒体13から読み込む。そして、ソースコードパース部110は、そのソースコード20の内容を示すオブジェクトモデル30(以下、「ソースコードオブジェクトモデル30A」と参照される)を生成する。ソースコードパース部110は、生成されるソースコードオブジェクトモデル30Aをメモリ12上に展開する。
図3Bは、本発明に係るデータ処理の後半を示しており、オブジェクトモデル30からホットスポット実装コード50が作成されるまでの処理を示している。現在、メモリ12上には、図10に示されたソースコードオブジェクトモデル30Aが作成されている。
・スーパークラスは、上記パッケージの“FrameworkTemplateクラス”であること。つまり、出力されるコードは、上記パッケージの“FrameworkTemplateクラス”を継承する。
・出力されるコードは、staticクラスではない(“false”)こと。
2 フローズンスポット
3 ホットスポット
10 実装コード開発システム
11 演算処理装置
12 メモリ
13 記録媒体
14 入力装置
15 表示装置
20 ソースコード
30 オブジェクトモデル
30A ソースコードオブジェクトモデル
30B 継承情報付与後オブジェクトモデル
40 継承情報記述ファイル
50 ホットスポット実装コード
100 変換プログラム
110 ソースコードパース部
111 字句解析部
112 構文解析部
113 拡張子判定部
120 継承情報付与部
130 アウトプット部
1000 SourceFileクラス
1100 Functionsクラス
1200 Variablesクラス
1300 Functionクラス
1400 Statementsクラス
1600 Statementクラス
1800 Expressionクラス
3000 SourceFileオブジェクト
3100 Functionsオブジェクト
3200 Variablesオブジェクト
3300 Functionオブジェクト
3400 Statementsオブジェクト
3600 Statementオブジェクト
3800 Expressionオブジェクト
4000 継承情報
Claims (15)
- フレームワークのホットスポットを実装するホットスポット実装コードを開発する実装コード開発システムであって、
ソースコード、及び前記ホットスポットに適合する条件が記述された継承情報記述ファイルが格納される記録媒体と、
前記記録媒体から読み込まれる前記ソースコードの内容に応じて所定のクラス群をインスタンス化し、前記ソースコードの内容を示す第1オブジェクトモデルをメモリ上に展開するソースコードパース部と、
前記記録媒体から前記継承情報記述ファイルを読み込み、前記第1オブジェクトモデルを、前記条件が付与された第2オブジェクトモデルに変更する継承情報付与部と、
前記メモリ上に展開された前記第2オブジェクトモデルをコード化することにより、前記ホットスポット実装コードを作成するアウトプット部と
を具備する
実装コード開発システム。 - 請求項1に記載の実装コード開発システムであって、
前記ソースコードパース部は、
前記ソースコードを受け取り前記ソースコードに含まれる字句を抽出する字句解析部と、
前記抽出された字句に基づいて、前記ソースコードの構文を解析する構文解析部と
を備え、
前記構文解析部は、前記構文の解析結果に基づいて前記所定のクラス群をインスタンス化することにより、前記第1オブジェクトモデルを前記メモリ上に展開する
実装コード開発システム。 - 請求項1に記載の実装コード開発システムであって、
前記ソースコードパース部は、
複数のファイル形式のそれぞれに対応した複数の字句解析部と、
前記複数のファイル形式のそれぞれに対応した複数の構文解析部と
を備え、
前記複数の字句解析部の各々は、前記ソースコードに含まれる字句を抽出し、
前記複数の構文解析部の各々は、前記抽出された字句に基づいて、前記ソースコードの構文を解析し、
前記ソースコードは、前記複数の字句解析部のうち前記ソースコードのファイル形式に対応する一の字句解析部に入力され、
前記複数の構文解析部のうち前記ソースコードのファイル形式に対応する一の構文解析部は、前記構文の解析結果に基づいて前記所定のクラス群をインスタンス化することにより、前記第1オブジェクトモデルを前記メモリ上に展開する
実装コード開発システム。 - 請求項3に記載の実装コード開発システムであって、
前記ソースコードパース部は、更に、拡張子判定部を備え、
前記拡張子判定部は、前記ソースコードの拡張子を識別することにより、前記複数の字句解析部から前記一の字句解析部を決定し、前記ソースコードを前記一の字句解析部に出力する
実装コード開発システム。 - 請求項1乃至4のいずれかに記載の実装コード開発システムであって、
前記継承情報記述ファイルに記述される情報は、前記ホットスポットにおける抽象クラスを継承するための継承情報を含む
実装コード開発システム。 - 請求項1乃至5のいずれかに記載の実装コード開発システムであって、
前記アウトプット部は、デザインパターンであるVisitorパターンに基づいて構築され、前記第2オブジェクトモデルに含まれる複数のインスタンスを順番に巡りながら、前記第2オブジェクトモデルをコード化する
実装コード開発システム。 - 請求項1乃至6のいずれかに記載の実装コード開発システムであって、
前記所定のクラス群は、
前記ソースコードを表現するためのSourceFileクラスと、
前記ソースコードに含まれる関数群を表現するためのFunctionsクラスと、
前記ソースコードに含まれる変数群を表現するためのVariablesクラスと
を含み、
前記SourceFileクラスは、集約クラスであり、前記Functionsクラス及び前記Variablesクラスを含む
実装コード開発システム。 - 請求項7に記載の実装コード開発システムであって、
前記Functionsクラスは、集約クラスであり、前記関数群に含まれる関数を表現するためのFunctionクラスを含み、
前記Functionクラスは、集約クラスであり、
前記関数に含まれるメソッド群を表現するためのStatementsクラスと、
前記関数の引数を表現するためのArgumentListクラスと、
前記関数で用いられる変数群を表現するための前記Variablesクラスと、
前記関数で用いられる定数を表現するためのConstantクラスと
を含む
実装コード開発システム。 - フレームワークのホットスポットを実装するホットスポット実装コードを開発するための実装コード開発プログラムであって、
前記実装コード開発プログラムは、コンピュータにより実行され、
前記コンピュータは、ソースコード及び前記ホットスポットに適合する条件が記述された継承情報記述ファイルが格納される記録媒体と、メモリとを備え、
(A)前記記録媒体から前記ソースコードを読み込むステップと、
(B)前記ソースコードの内容に応じて所定のクラス群をインスタンス化し、前記ソースコードの内容を示す第1オブジェクトモデルを前記メモリ上に展開するステップと、
(C)前記記録媒体から前記継承情報記述ファイルを読み込み、前記第1オブジェクトモデルを、前記条件が付与された第2オブジェクトモデルに変更するステップと、
(D)前記メモリ上に展開された前記第2オブジェクトモデルをコード化することにより、前記ホットスポット実装コードを作成するステップと
をコンピュータに実行させる
実装コード開発プログラム。 - 請求項9に記載の実装コード開発プログラムであって、
前記(B)ステップは、
(B1)前記ソースコードに含まれる字句を抽出するステップと、
(B2)前記抽出された字句に基づいて、前記ソースコードの構文を解析するステップと、
(B3)前記構文の解析結果に基づいて前記所定のクラス群をインスタンス化することにより、前記第1オブジェクトモデルを前記メモリ上に展開するステップと
を含む
実装コード開発プログラム。 - 請求項9に記載の実装コード開発プログラムであって、
前記(B)ステップは、
(b1)前記ソースコードの拡張子を識別することにより、前記ソースコードのファイル形式を決定するステップと、
(b2)前記ファイル形式に準拠して、前記ソースコードに含まれる字句を抽出するステップと、
(b3)前記抽出された字句及び前記ファイル形式に基づいて、前記ソースコードの構文を解析するステップと、
(b4)前記構文の解析結果に基づいて前記所定のクラス群をインスタンス化することにより、前記第1オブジェクトモデルを前記メモリ上に展開するステップと
を含む
実装コード開発プログラム。 - 請求項9乃至11のいずれかに記載の実装コード開発プログラムであって、
前記継承情報記述ファイルに記述される情報は、前記ホットスポットにおける抽象クラスを継承するための継承情報を含む
実装コード開発プログラム。 - 請求項9乃至12のいずれかに記載の実装コード開発プログラムであって、
前記(D)ステップは、デザインパターンであるVisitorパターンに基づいて、前記第2オブジェクトモデルに含まれる複数のインスタンスを順番に巡りながら、前記第2オブジェクトモデルをコード化するステップを含む
実装コード開発プログラム。 - 請求項9乃至13のいずれかに記載の実装コード開発プログラムであって、
前記所定のクラス群は、
前記ソースコードを表現するためのSourceFileクラスと、
前記ソースコードに含まれる関数群を表現するためのFunctionsクラスと、
前記ソースコードに含まれる変数群を表現するためのVariablesクラスと
を含み、
前記SourceFileクラスは、集約クラスであり、前記Functionsクラス及び前記Variablesクラスを含む
実装コード開発プログラム。 - 請求項14に記載の実装コード開発プログラムであって、
前記Functionsクラスは、集約クラスであり、前記関数群に含まれる関数を表現するためのFunctionクラスを含み、
前記Functionクラスは、集約クラスであり、
前記関数に含まれるメソッド群を表現するためのStatementsクラスと、
前記関数の引数を表現するためのArgumentListクラスと、
前記関数で用いられる変数群を表現するための前記Variablesクラスと、
前記関数で用いられる定数を表現するためのConstantクラスと
を含む
実装コード開発プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005160427A JP5399601B2 (ja) | 2005-05-31 | 2005-05-31 | 実装コード開発システム、及び実装コード開発プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005160427A JP5399601B2 (ja) | 2005-05-31 | 2005-05-31 | 実装コード開発システム、及び実装コード開発プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006338190A true JP2006338190A (ja) | 2006-12-14 |
JP5399601B2 JP5399601B2 (ja) | 2014-01-29 |
Family
ID=37558713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005160427A Expired - Fee Related JP5399601B2 (ja) | 2005-05-31 | 2005-05-31 | 実装コード開発システム、及び実装コード開発プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5399601B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009098750A (ja) * | 2007-10-12 | 2009-05-07 | Nomura Research Institute Ltd | コーディング支援装置 |
JP2009098751A (ja) * | 2007-10-12 | 2009-05-07 | Nomura Research Institute Ltd | コーディング支援装置 |
JP2013524322A (ja) * | 2010-03-31 | 2013-06-17 | イルデト カナダ コーポレーション | カプセル化し、ソフトウェアライブラリ中の多様化によって保護を可能にするための、システムと方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0231235A (ja) | 1988-07-20 | 1990-02-01 | Nec Software Ltd | 複数言語の構文解析方式 |
JPH02133824A (ja) | 1988-11-14 | 1990-05-23 | Yokogawa Electric Corp | トランスレータ |
JP2000112769A (ja) | 1998-10-02 | 2000-04-21 | Nec Software Ltd | 多段トランスレータ |
JP2001222486A (ja) * | 2000-02-10 | 2001-08-17 | Mitsubishi Electric Corp | ネットワーク管理エージェント装置、ネットワーク管理方法およびその方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2002157117A (ja) * | 2000-11-21 | 2002-05-31 | Mitsubishi Electric Corp | フレームワーク開発支援装置及びフレームワーク開発支援方法 |
JP2004272908A (ja) * | 2003-03-06 | 2004-09-30 | Microsoft Corp | システムの設計、展開、管理のフェーズを統合する方法 |
JP2004362343A (ja) | 2003-06-05 | 2004-12-24 | Internatl Business Mach Corp <Ibm> | ソースコード変換装置、ソースコード変換方法、およびプログラム |
-
2005
- 2005-05-31 JP JP2005160427A patent/JP5399601B2/ja not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0231235A (ja) | 1988-07-20 | 1990-02-01 | Nec Software Ltd | 複数言語の構文解析方式 |
JPH02133824A (ja) | 1988-11-14 | 1990-05-23 | Yokogawa Electric Corp | トランスレータ |
JP2000112769A (ja) | 1998-10-02 | 2000-04-21 | Nec Software Ltd | 多段トランスレータ |
JP2001222486A (ja) * | 2000-02-10 | 2001-08-17 | Mitsubishi Electric Corp | ネットワーク管理エージェント装置、ネットワーク管理方法およびその方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2002157117A (ja) * | 2000-11-21 | 2002-05-31 | Mitsubishi Electric Corp | フレームワーク開発支援装置及びフレームワーク開発支援方法 |
JP2004272908A (ja) * | 2003-03-06 | 2004-09-30 | Microsoft Corp | システムの設計、展開、管理のフェーズを統合する方法 |
JP2004362343A (ja) | 2003-06-05 | 2004-12-24 | Internatl Business Mach Corp <Ibm> | ソースコード変換装置、ソースコード変換方法、およびプログラム |
Non-Patent Citations (6)
Title |
---|
CSNG200100224012; 増田 剛 外2名: 'デザインパターンの決定木学習システム開発への適用' レクチャーノート/ソフトウェア学 19 ソフトウェア工学の基礎 IV 初版, 19971220, p.87-90, 株式会社近代科学社 * |
CSNG200201320002; 増田 ゆりか 外2名: '制約記述の導入によるフレームワークのカスタマイズ作法の提示' 電子情報通信学会技術研究報告 第100巻、第472号, 20001121, p.9-16, 社団法人電子情報通信学会 * |
CSNG200400219001; 下之園 孝 外2名: 'アスペクト指向の導入によるフレームワークの理解容易性の向上' 電子情報通信学会技術研究報告 第102巻、第371号, 20021004, p.1-6, 社団法人電子情報通信学会 * |
JPN6013033708; 下之園 孝 外2名: 'アスペクト指向の導入によるフレームワークの理解容易性の向上' 電子情報通信学会技術研究報告 第102巻、第371号, 20021004, p.1-6, 社団法人電子情報通信学会 |
JPN6013033709; 増田 ゆりか 外2名: '制約記述の導入によるフレームワークのカスタマイズ作法の提示' 電子情報通信学会技術研究報告 第100巻、第472号, 20001121, p.9-16, 社団法人電子情報通信学会 |
JPN6013033710; 増田 剛 外2名: 'デザインパターンの決定木学習システム開発への適用' レクチャーノート/ソフトウェア学 19 ソフトウェア工学の基礎 IV 初版, 19971220, p.87-90, 株式会社近代科学社 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009098750A (ja) * | 2007-10-12 | 2009-05-07 | Nomura Research Institute Ltd | コーディング支援装置 |
JP2009098751A (ja) * | 2007-10-12 | 2009-05-07 | Nomura Research Institute Ltd | コーディング支援装置 |
JP2013524322A (ja) * | 2010-03-31 | 2013-06-17 | イルデト カナダ コーポレーション | カプセル化し、ソフトウェアライブラリ中の多様化によって保護を可能にするための、システムと方法 |
US10185837B2 (en) | 2010-03-31 | 2019-01-22 | Irdeto B.V. | System and method for encapsulating and enabling protection through diverse variations in software libraries |
Also Published As
Publication number | Publication date |
---|---|
JP5399601B2 (ja) | 2014-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11036614B1 (en) | Data control-oriented smart contract static analysis method and system | |
JP4130713B2 (ja) | プログラム変換装置 | |
US8516458B2 (en) | System representation and handling techniques | |
WO2016163901A1 (en) | An apparatus for processing an abstract syntax tree being associated with a source code of a source program | |
US20060200796A1 (en) | Program development apparatus, method for developing a program, and a computer program product for executing an application for a program development apparatus | |
CN113504914B (zh) | 操作系统的构建编译方法及装置、电子设备、存储介质 | |
Crary et al. | Intensional polymorphism in type-erasure semantics | |
CN107463421B (zh) | 一种静态流程模型的编译执行方法及系统 | |
JP4652680B2 (ja) | コンパイル方法および装置、ならびにコンパイラ | |
RU2347269C2 (ru) | Система и способ декларативного определения и использования подклассов внутри разметки | |
JP5399601B2 (ja) | 実装コード開発システム、及び実装コード開発プログラム | |
JP2009169864A (ja) | コンパイル方法およびコンパイルプログラム | |
JP2005332146A (ja) | 動的コンテンツ作成プログラムの生成装置、動的コンテンツ作成プログラムを生成するためのプログラム、及び動的コンテンツ作成プログラムの生成方法 | |
JP2008276735A (ja) | プログラムコード変換装置及びプログラムコード変換方法 | |
US9697021B2 (en) | Modifiable high-level intermediate representation of source code | |
Fritzson et al. | Metamodelica–a symbolic-numeric modelica language and comparison to julia | |
JP5600301B2 (ja) | システム表現およびハンドリング技術 | |
Amatriain et al. | A framework for efficient and rapid development of cross-platform audio applications | |
CN107562430B (zh) | 一种针对移动π演算语言的文件处理功能的编译方法 | |
CN111221532A (zh) | 一种动态链接库的生成方法及装置 | |
Walia et al. | Sham: A DSL for Fast DSLs | |
Leupers | Compiler optimization for media processors | |
Jeffery | Build Your Own Programming Language: A programmer's guide to designing compilers, interpreters, and DSLs for solving modern computing problems | |
Mårtensson et al. | Extending a Small Language with a Java Bytecode Back End | |
KR100276086B1 (ko) | 로토스 명세로부터 씨 플러스 플러스 코드 생성방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080414 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110330 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110819 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111013 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111102 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111130 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120112 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120411 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20120418 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20120511 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130906 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131024 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |