JP5845788B2 - 実行制御プログラム、実行制御装置および実行制御方法 - Google Patents
実行制御プログラム、実行制御装置および実行制御方法 Download PDFInfo
- Publication number
- JP5845788B2 JP5845788B2 JP2011218560A JP2011218560A JP5845788B2 JP 5845788 B2 JP5845788 B2 JP 5845788B2 JP 2011218560 A JP2011218560 A JP 2011218560A JP 2011218560 A JP2011218560 A JP 2011218560A JP 5845788 B2 JP5845788 B2 JP 5845788B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- instruction
- return
- unit
- execution
- 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
- 238000000034 method Methods 0.000 title claims description 30
- 238000012545 processing Methods 0.000 claims description 63
- 238000006243 chemical reaction Methods 0.000 claims description 34
- 230000006870 function Effects 0.000 claims description 18
- 230000010365 information processing Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 21
- 238000003860 storage Methods 0.000 description 14
- 239000000284 extract Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 229920002189 poly(glycerol 1-O-monomethacrylate) polymer Polymers 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
Description
図2は、実施例2に係る情報処理装置の構成を示す機能ブロック図である。図2に示すように、実施例2に係る情報処理装置10は、入出力インタフェース部11とHDD(ハードディスクドライブ)12とメモリ13とプロセッサ14とを有するコンピュータである。なお、情報処理装置10は、図2に示した処理部以外の処理部を有してもよい。例えば、情報処理装置10は、マウスなどの入力部、ディスプレイなどの表示部、ハードディスクなどの記憶装置等を有していてもよい。
次に、図5から図7を用いて具体例を説明する。図5は、実行対象のプログラム例を示す図であり、図6は、コンパイル後のオブジェクトコード例を示す図であり、図7は、プログラムの実行例を示す図である。ここでは、最上位プログラムAがサブプログラムBを呼び出し、サブプログラムBがさらにサブプログラムCを呼び出すCOBOLアプリケーションを例にして説明する。
次に、図8から図10を用いて情報処理装置が実行する処理の流れを説明する。ここでは、図8を用いて、コンパイル実行時の処理の流れを説明し、図9を用いて、プログラム実行時の処理の流れを説明し、図10を用いて、エラー処理の流れを説明する。
図8は、コンパイル実行時の処理の流れを示すフローチャートである。図8に示すように、情報処理装置10のコンパイル部15の変換部15bは、入力部15aから渡されたソースコードを読み込む(S101)。
図9は、プログラム実行時の処理の流れを示すフローチャートである。図9に示すように、情報処理装置10の実行部17aは、生成部16が生成した実行ファイルをメモリ13上に展開して実行する(S201)。
図10は、エラー処理の流れを示すフローチャートである。実行制御部17がエラーを検出すると(S301肯定)、分岐処理部18cは、エラーが検出されたプログラムのスタック環境値を退避させる(S302)。なお、エラーの検出方法は、プログラムのエラー検出として一般的に利用されている様々な手法を用いることができる。
上記実施例では、COBOLプログラムを例にして説明したがこれに限定されるものではなく、C言語などコンパイルを実行する言語であればよい。
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
1a 受付部
1b 変換部
2 実行制御装置
2a 実行制御部
2b エラー処理部
10 情報処理装置
11 入出力インタフェース部
12 HDD
12a ソースコード
12b オブジェクトコード
13 メモリ
13a 実行ファイル
13b スタック環境値
13c リソーステーブル
13d 作業領域
14 プロセッサ
15 コンパイル部
15a 入力部
15b 変換部
16 生成部
17 実行制御部
17a 実行部
18 ランタイムシステム
18a 分岐箇所登録部
18b リソース管理部
18c 分岐処理部
18d リソース初期化部
18e 復帰判定部
Claims (4)
- 第1のプログラムから呼び出される関係にある第2のプログラムを受付け、
受付けた前記第2のプログラムを、前記第2のプログラムの実行に伴って使用されるリソースを初期化する初期化命令と前記第1のプログラムに戻る復帰命令とをエラーが発生した場合に実行する命令と、最終的な戻り先への復帰を開始する命令とを含むプログラムに変換するとともに、前記第1のプログラムを、前記最終的な戻り先を登録する命令を含むプログラムに変換し、
変換された各プログラムと所定の関数群とを連携させた実行ファイルを実行し、
エラーが発生した場合に、エラーを発生させた実行ファイル内のプログラムに記述される前記初期化命令に基づいてリソースを初期化する場合に、該プログラムのスタック環境値を退避させ、退避させたスタック環境値と前記最終的な戻り先として登録されたスタック環境値とを比較し、一致しない場合は前記復帰命令に基づいて呼出元のプログラムに戻り、一致する場合は前記スタック環境値によって特定される戻りアドレスに制御を移す
各処理をさらにコンピュータに実行させることを特徴とする実行制御プログラム。 - 第1のプログラムから呼び出される関係にある第2のプログラムを受付け、
受付けた前記第2のプログラムを、前記第2のプログラムの実行に伴って使用されるリソースを初期化する初期化命令と、前記第1のプログラムに戻る復帰命令とをエラーが発生した場合に実行する命令とを含むプログラムに変換し、
変換されたプログラムと所定の関数群とを連携させた実行ファイルを実行し、
実行した実行ファイル内で最終的な戻り先として指定されたプログラム内に、該プログラムが実行されたときのスタック環境の値を登録し、
エラーが発生した場合に、エラーを発生させた実行ファイル内のプログラムに記述される初期化命令に基づいてリソースを初期化し、該プログラム内に前記スタック環境の値が登録されていない場合には、該プログラムに記述される復帰命令に基づいて呼出元のプログラムに戻り、
呼出元のプログラム内に前記スタック環境の値が登録されていない場合には、前記初期化命令と前記復帰命令を実行し、
呼出元のプログラム内に前記スタック環境の値が登録されている場合には、前記初期化命令を実行するとともに、前記スタック環境の値によって特定される戻りアドレスに制御を移す、
各処理をさらにコンピュータに実行させることを特徴とする実行制御プログラム。 - 第1のプログラムから呼び出される関係にある第2のプログラムを受付ける受付部と、
前記受付部によって受け付けられた前記第2のプログラムを、前記第2のプログラムの実行に伴って使用されるリソースを初期化する初期化命令と前記第1のプログラムに戻る復帰命令とをエラーが発生した場合に実行する命令と、最終的な戻り先への復帰を開始する命令とを含むプログラムに変換するとともに、前記第1のプログラムを、前記最終的な戻り先を登録する命令を含むプログラムに変換する変換部と、
前記変換部が変換した各プログラムと所定の関数群とを連携させた実行ファイルを実行する実行制御部と、
エラーが発生した場合に、エラーを発生させた実行ファイル内のプログラムに記述される前記初期化命令に基づいてリソースを初期化する場合に、該プログラムのスタック環境値を退避させ、退避させたスタック環境値と前記最終的な戻り先として登録されたスタック環境値とを比較し、一致しない場合は前記復帰命令に基づいて呼出元のプログラムに戻り、一致する場合は前記スタック環境値によって特定される戻りアドレスに制御を移すエラー処理部と
有することを特徴とする実行制御装置。 - コンピュータが、
第1のプログラムから呼び出される関係にある第2のプログラムを受付け、
受け付けた前記第2のプログラムを、前記第2のプログラムの実行に伴って使用されるリソースを初期化する初期化命令と前記第1のプログラムに戻る復帰命令とをエラーが発生した場合に実行する命令と、最終的な戻り先への復帰を開始する命令とを含むプログラムに変換るとともに、前記第1のプログラムを、前記最終的な戻り先を登録する命令を含むプログラムに変換し、
変換した各プログラムと所定の関数群とを連携させた実行ファイルを実行し、
エラーが発生した場合に、エラーを発生させた実行ファイル内のプログラムに記述される前記初期化命令に基づいてリソースを初期化する場合に、該プログラムのスタック環境値を退避させ、退避させたスタック環境値と前記最終的な戻り先として登録されたスタック環境値とを比較し、一致しない場合は前記復帰命令に基づいて呼出元のプログラムに戻り、一致する場合は前記スタック環境値によって特定される戻りアドレスに制御を移す
処理を含んだことを特徴とする実行制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011218560A JP5845788B2 (ja) | 2011-09-30 | 2011-09-30 | 実行制御プログラム、実行制御装置および実行制御方法 |
US13/590,232 US8839191B2 (en) | 2011-09-30 | 2012-08-21 | Computer-readable recording medium, compiler, execution control apparatus, and execution control method for converting a program to be called |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011218560A JP5845788B2 (ja) | 2011-09-30 | 2011-09-30 | 実行制御プログラム、実行制御装置および実行制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013080281A JP2013080281A (ja) | 2013-05-02 |
JP5845788B2 true JP5845788B2 (ja) | 2016-01-20 |
Family
ID=47993931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011218560A Active JP5845788B2 (ja) | 2011-09-30 | 2011-09-30 | 実行制御プログラム、実行制御装置および実行制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8839191B2 (ja) |
JP (1) | JP5845788B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
PL3427148T3 (pl) | 2016-03-11 | 2022-05-09 | Lzlabs Gmbh | Kompilator modułu ładowania |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59135551A (ja) | 1983-01-21 | 1984-08-03 | Matsushita Electric Ind Co Ltd | 高機能命令計算機 |
JPH0776928B2 (ja) * | 1987-04-27 | 1995-08-16 | 富士通株式会社 | Cobolコンパイラにおけるuse手続き処理方法 |
JP3024131B2 (ja) * | 1988-09-02 | 2000-03-21 | 富士通株式会社 | コンパイラシステム |
JPH0279125A (ja) | 1988-09-16 | 1990-03-19 | Nec Corp | ベイシックインタプリタ言語での中断処理方法 |
JPH06168124A (ja) | 1992-11-30 | 1994-06-14 | Hitachi Ltd | アドレスチェック方式 |
US5748964A (en) * | 1994-12-20 | 1998-05-05 | Sun Microsystems, Inc. | Bytecode program interpreter apparatus and method with pre-verification of data type restrictions |
US6247169B1 (en) * | 1996-11-04 | 2001-06-12 | Sun Microsystems, Inc. | Structured exception-handling methods, apparatus, and computer program products |
JP2002073347A (ja) * | 2000-09-04 | 2002-03-12 | Hitachi Ltd | 例外処理方法及びコンパイラ |
JP2004086545A (ja) * | 2002-08-27 | 2004-03-18 | Nippon Yunishisu Kk | データ項目の状態を管理することでプログラムを自動生成するプログラム開発支援システム |
US7559063B2 (en) * | 2004-06-03 | 2009-07-07 | International Business Machines Corporation | Program flow control in computer systems |
JP2006127440A (ja) * | 2004-10-29 | 2006-05-18 | Satoshi Obana | 敷衍化した例外処理方法、およびそのコンピュータ読み取り可能なプログラム |
US7389460B1 (en) * | 2005-11-14 | 2008-06-17 | University Of Central Florida Research Foundation, Inc. | Runtime-competitive fault handling for reconfigurable logic devices |
-
2011
- 2011-09-30 JP JP2011218560A patent/JP5845788B2/ja active Active
-
2012
- 2012-08-21 US US13/590,232 patent/US8839191B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20130086596A1 (en) | 2013-04-04 |
JP2013080281A (ja) | 2013-05-02 |
US8839191B2 (en) | 2014-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101687213B1 (ko) | 동적으로 로딩하는 그래프 기반 계산 | |
US6003095A (en) | Apparatus and method for demand loading a dynamic link library | |
US8583413B2 (en) | Computer method and apparatus for chaining of model-to-model transformations | |
KR101903805B1 (ko) | 프로그램 상태를 체크포인팅하며 복원하기 위한 방법 | |
US20120159466A1 (en) | Dynamic determination of application server runtime classloading | |
JPH11242597A (ja) | Javaバイトコードデータのフローグラフの生成方法 | |
US8701096B2 (en) | In-order execution in an asynchronous programming environment | |
US7320121B2 (en) | Computer-implemented system and method for generating embedded code to add functionality to a user application | |
JP6412276B2 (ja) | 仮想マシン作成方法及び装置 | |
US20180203676A1 (en) | Removing library objects from a static library | |
WO2015032311A1 (zh) | 一种代码生成方法、编译器、调度方法、装置及调度*** | |
Narayan et al. | Gobi: WebAssembly as a practical path to library sandboxing | |
US7673284B2 (en) | Method and system for versioning codes based on relative alignment for single instruction multiple data units | |
CN111596970B (zh) | 动态库延迟加载方法、装置、设备和存储介质 | |
JP5845788B2 (ja) | 実行制御プログラム、実行制御装置および実行制御方法 | |
JP2011141676A (ja) | 言語処理装置、言語処理方法およびコンピュータプログラムプロダクト | |
US9229698B2 (en) | Method and apparatus for compiler processing for a function marked with multiple execution spaces | |
JP6013315B2 (ja) | アプリケーション開発支援プログラム及びアプリケーション開発支援システム | |
JP5716469B2 (ja) | ラッパープログラム及び集積回路装置 | |
US20230325476A1 (en) | Obfuscation device, obfuscation method, and obfuscation program | |
CN111596923B (zh) | Haxe静态链接库构建方法、装置和电子设备 | |
JP7073813B2 (ja) | 制御プログラム、制御方法および情報処理装置 | |
JP2007133820A (ja) | プログラム開発支援装置およびプログラム開発支援方法 | |
JP2009259078A (ja) | バッファオーバーフロー検出方法、バッファオーバーフロー検出プログラム、およびバッファオーバーフロー検出装置 | |
EP4270298A1 (en) | Enhanced computer vision application programming interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140603 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150119 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150217 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150420 |
|
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: 20151027 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151109 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5845788 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |