JP6245028B2 - 実行制御方法、実行制御プログラムおよび実行制御装置 - Google Patents
実行制御方法、実行制御プログラムおよび実行制御装置 Download PDFInfo
- Publication number
- JP6245028B2 JP6245028B2 JP2014066051A JP2014066051A JP6245028B2 JP 6245028 B2 JP6245028 B2 JP 6245028B2 JP 2014066051 A JP2014066051 A JP 2014066051A JP 2014066051 A JP2014066051 A JP 2014066051A JP 6245028 B2 JP6245028 B2 JP 6245028B2
- Authority
- JP
- Japan
- Prior art keywords
- character
- area
- program
- character code
- user
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 74
- 238000012545 processing Methods 0.000 claims description 124
- 230000008569 process Effects 0.000 claims description 50
- 230000015654 memory Effects 0.000 claims description 39
- 230000004044 response Effects 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 230000004913 activation Effects 0.000 description 8
- 230000010365 information processing Effects 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
-
- 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/451—Execution arrangements for user interfaces
- G06F9/454—Multi-language systems; Localisation; Internationalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
-
- 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/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Description
また、1つの態様では、メモリと演算部とを有する実行制御装置が提供される。メモリには、プログラムで用いられる文字型変数に応じて、1または2以上の文字それぞれに対して一の長さの文字コードを格納可能な第1の領域が割り当てられる。演算部は、プログラムによる文字型変数についての文字の処理を検出し、文字型変数についての文字の処理の検出に応じて、各文字について第1の領域と対応付けてメモリ上に第2の領域を確保し、第1および第2の領域を用いて、一の長さより長い他の文字コードで表現される文字を処理する。
[第1の実施の形態]
図1は、第1の実施の形態の実行制御装置を示す図である。
プログラム13をコンパイルするとき、コンパイラは、所定の文字型(例えば、C言語のchar型や、COBOL言語のX型など)の変数を検出する。1文字を表現するのに用いる想定するバイト数は、文字型によって予め決まっている。すると、コンパイラは、通常のコンパイルと同様に、この想定するバイト数に相当する第1の領域をメモリ11に確保するための命令を、オブジェクトコードに含める。第1の領域は、プログラム13の起動時に静的に確保されることもあるし、プログラム13自身が処理の途中でヒープ領域から動的に確保することもある。また、第1の領域は、ランタイムライブラリを介して動的に確保することもある。その場合、コンパイラは、第1の領域の確保をランタイムライブラリに要求する命令を、プログラム13に含めることになる。
図2は、第2の実施の形態の情報処理システムを示す図である。
第2の実施の形態の情報処理システムは、端末装置21、ストレージ装置22およびサーバ装置100を有する。端末装置21とサーバ装置100、および、サーバ装置100とストレージ装置22は、ネットワーク20を介して通信可能である。
サーバ装置100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。これらのユニットはバスに接続されている。CPU101は第1の実施の形態の演算部12の一例であり、RAM102は第1の実施の形態のメモリ11の一例である。
ここでは、ユーザが作成しサーバ装置100に配置するユーザプログラムの例として、COBOLプログラム31およびCプログラム32を考える。
ここでは、文字列「5コ 」(3文字目はスペース)の文字コードを読み込むことを考える。文字コード体系としてShift_JISを用いた場合、この3文字はそれぞれ1バイトで表現することができ、この文字列は16進数で「35BA20」と表現される。よって、COBOLプログラム31の配列変数BUFに文字コードを収容できる。
ここでは、1文字につき1〜4バイトであるUTF−8の文字コードを読み込むことを考える。COBOLプログラム31を実行する場合、RAM102には、配列変数BUFに対応する1バイト×3文字のユーザ定義領域と変数SECOND−CHARに対応する1バイト×1文字のユーザ定義領域とが確保される。
前述のCOBOLプログラム31などのユーザプログラムは、サーバ装置100において、コンパイラ方式またはインタープリタ方式で実行される。
図8は、サーバ装置の機能例を示すブロック図である。
領域管理テーブル136は、領域情報記憶部133に格納される。領域管理テーブル136は、ユーザ定義領域の開始アドレス、ユーザ定義領域の終了アドレス、ユニット種類、割当フラグ、隠し領域の開始アドレスおよび隠し領域のユニット数の項目を含む。
(S10)起動監視部132は、ユーザプログラムの起動を検出すると、空の領域管理テーブル136を生成して領域情報記憶部133に格納する。
(S13)領域解放部135は、ユーザプログラムによるユーザ定義領域の解放を検出したか判断する。ユーザ定義領域を解放するとき、ユーザプログラムから領域解放部135が呼び出される。ユーザ定義領域の解放を検出した場合はステップS14に処理が進み、それ以外の場合はステップS15に処理が進む。
(S16)起動監視部132は、ユーザプログラムの終了を検出すると、領域情報記憶部133に記憶された領域管理テーブル136を削除する。
この文字コード処理は、前述のステップS12において実行される。
(S20)文字コード処理部134は、文字コードの書き込みがユーザプログラムによって要求された場合、書き込み先のアドレスを特定する。なお、文字コードの書き込みが要求されていない場合は、ステップS20〜S27を実行しなくてよい。
(S28)文字コード処理部134は、文字コードの読み込みがユーザプログラムによって要求された場合、読み込み元が外部デバイスであるか判断する。外部デバイスとしては、HDD103・ディスプレイ111・端末装置21・ストレージ装置22など、CPU101とRAM102以外のデバイスが挙げられる。読み込み元が外部デバイスである場合はステップS29に処理が進み、それ以外の場合はステップS30に処理が進む。
(S40)文字コード処理部134は、文字コードの書き込み先が自言語処理系のユーザ定義領域であることから、領域管理テーブル136を参照して、書き込み先のユーザ定義領域に対応する隠し領域を検索してその隠し領域のアドレスを特定する。
隠し領域の1文字当たりのユニット数mは、文字コードの最大長に応じて決定されるため、UTF−8のような文字コードが可変長な文字コード体系を使用する場合、隠し領域の多くは空になる可能性がある。そこで、使用頻度の低い隠し領域に格納されたビット列を、ファイル圧縮技術を用いて圧縮することが考えられる。
文字コード処理部134は、n文字×1ユニットのユーザ定義領域と対応付けて、n文字×(m+1)ユニットの隠し領域をRAM102に確保する。m+1ユニットは、最大長の文字コードを収容できるサイズである。文字コード処理部134は、各文字について文字コードの先頭1ユニットをユーザ定義領域に格納すると共に、文字コード全体を隠し領域に格納する。外部デバイスに文字コードを出力する場合、文字コード処理部134は、ユーザ定義領域に格納されたビット列または隠し領域に格納された先頭1ユニットのビット列を無視する。ただし、ユーザ定義領域と隠し領域とで重複させるビット列は、文字コードの先頭1ユニットでなくてもよく所定の位置のビット列であればよい。
11 メモリ
12 演算部
13 プログラム
14,15 文字コード
16,17,18,19 領域
Claims (6)
- コンピュータが行う実行制御方法であって、
1または2以上の文字それぞれに対してメモリ上に一の長さの文字コードを格納可能な第1の領域を割り当てる文字型変数を用いたプログラムによる、前記文字型変数についての文字の処理を検出し、
前記文字型変数についての文字の処理の検出に応じて、各文字について前記第1の領域と対応付けて前記メモリ上に第2の領域を確保し、
前記第1および第2の領域を用いて、前記一の長さより長い他の文字コードで表現される文字を処理する、
実行制御方法。 - 前記他の文字コードのうち前記一の長さの部分を前記第1の領域に格納し、前記一の長さの部分以外の他の部分を前記第2の領域に格納する、
請求項1記載の実行制御方法。 - 前記他の文字コードを前記メモリ以外のデバイスに出力する場合、前記第1の領域に格納されたビット列と前記第2の領域に格納されたビット列とを結合して前記他の文字コードを再現する、
請求項1または2記載の実行制御方法。 - 前記他の文字コードの一部分を前記第1および第2の領域に重複して格納し、
前記第1の領域に格納された前記一部分に相当するビット列と前記第2の領域に格納された前記一部分に相当するビット列とを比較することで、他のプログラムに基づいて前記文字型変数についての文字の処理が行われたことを検出する、
請求項1乃至3の何れか一項に記載の実行制御方法。 - コンピュータに、
1または2以上の文字それぞれに対してメモリ上に一の長さの文字コードを格納可能な第1の領域を割り当てる文字型変数を用いたプログラムによる、前記文字型変数についての文字の処理を検出し、
前記文字型変数についての文字の処理の検出に応じて、各文字について前記第1の領域と対応付けて前記メモリ上に第2の領域を確保し、
前記第1および第2の領域を用いて、前記一の長さより長い他の文字コードで表現される文字を処理する、
処理を実行させる実行制御プログラム。 - プログラムで用いられる文字型変数に応じて、1または2以上の文字それぞれに対して一の長さの文字コードを格納可能な第1の領域が割り当てられるメモリと、
前記プログラムによる前記文字型変数についての文字の処理を検出し、前記文字型変数についての文字の処理の検出に応じて、各文字について前記第1の領域と対応付けて前記メモリ上に第2の領域を確保し、前記第1および第2の領域を用いて、前記一の長さより長い他の文字コードで表現される文字を処理する演算部と、
を有する実行制御装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014066051A JP6245028B2 (ja) | 2014-03-27 | 2014-03-27 | 実行制御方法、実行制御プログラムおよび実行制御装置 |
US14/643,471 US9880612B2 (en) | 2014-03-27 | 2015-03-10 | Execution control method and execution control apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014066051A JP6245028B2 (ja) | 2014-03-27 | 2014-03-27 | 実行制御方法、実行制御プログラムおよび実行制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015191272A JP2015191272A (ja) | 2015-11-02 |
JP6245028B2 true JP6245028B2 (ja) | 2017-12-13 |
Family
ID=54190563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014066051A Expired - Fee Related JP6245028B2 (ja) | 2014-03-27 | 2014-03-27 | 実行制御方法、実行制御プログラムおよび実行制御装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9880612B2 (ja) |
JP (1) | JP6245028B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10678524B2 (en) * | 2018-03-15 | 2020-06-09 | Intel Corporation | Runtime struct fields size reduction |
US20220374233A1 (en) * | 2021-05-24 | 2022-11-24 | International Business Machines Corporation | Data access performance in a memory |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6120129A (ja) * | 1984-07-06 | 1986-01-28 | Hitachi Ltd | 複数コ−ド系情報処理方式 |
JP2988394B2 (ja) * | 1995-10-19 | 1999-12-13 | 日本電気株式会社 | 可変長オブジェクトのデータベース処理装置、データベース処理方法、およびデータベース処理プログラムを記憶する記憶媒体 |
JPH11184710A (ja) | 1997-12-22 | 1999-07-09 | Nec Corp | 部分配列実引数最適化装置及びその方法 |
US7162712B2 (en) * | 2002-06-26 | 2007-01-09 | Sun Microsystems, Inc. | Method and apparatus for creating string objects in a programming language |
JP4202857B2 (ja) * | 2003-01-30 | 2008-12-24 | 富士通株式会社 | プログラム、文字入力編集方法、装置及び記録媒体 |
US7603488B1 (en) * | 2003-07-15 | 2009-10-13 | Alereon, Inc. | Systems and methods for efficient memory management |
JP4129981B2 (ja) | 2004-04-02 | 2008-08-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンパイラ、コンパイラプログラム、記録媒体、制御方法、及び中央処理装置 |
US7350047B2 (en) * | 2004-10-07 | 2008-03-25 | International Business Machines Corporation | Memory overflow management |
US7405677B2 (en) * | 2006-08-08 | 2008-07-29 | International Business Machines Corporation | Apparatus, system, and method for incremental encoding conversion of XML data using Java |
JP2008226010A (ja) * | 2007-03-14 | 2008-09-25 | Hitachi Ltd | コンパイル方法及びコンパイル装置 |
CA2809516C (en) * | 2013-03-13 | 2016-11-08 | Khalid Nawaf Alharbi | Preventing stack buffer overflow attacks |
JP6209901B2 (ja) * | 2013-08-26 | 2017-10-11 | 富士通株式会社 | 文字データ処理方法、プログラム及び情報処理装置 |
-
2014
- 2014-03-27 JP JP2014066051A patent/JP6245028B2/ja not_active Expired - Fee Related
-
2015
- 2015-03-10 US US14/643,471 patent/US9880612B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015191272A (ja) | 2015-11-02 |
US9880612B2 (en) | 2018-01-30 |
US20150278089A1 (en) | 2015-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005032259A (ja) | 共有ライブラリーシステム及び前記システム構築方法 | |
JP5236367B2 (ja) | 共用型ジャバjarファイル | |
WO2017067175A1 (zh) | 一种加载elf文件的方法、装置、设备和计算机存储介质 | |
US20140324873A1 (en) | Method, device and recording medium for managing application icon | |
US20200249925A1 (en) | On-demand loading of dynamic scripting language code for reduced memory usage | |
JP2011118901A (ja) | 外来情報を区分けすることにより仮想マシン・コードをメモリ最適化する方法、コンピュータ・プログラム、およびシステム | |
US20180276120A1 (en) | Manual memory management using lazy patching | |
US8205192B2 (en) | Compiler device, program, and recording medium | |
JPH05204656A (ja) | スレッド固有データ保持方法 | |
JP5088754B2 (ja) | システム、方法、プログラムおよびコード生成装置 | |
CN114153521B (zh) | 类加载方法和装置 | |
JP4086791B2 (ja) | コンパイラプログラム、動的コンパイラプログラム、再現コンパイラプログラム、再現コンパイラ、コンパイル方法、及び記録媒体 | |
US8589899B2 (en) | Optimization system, optimization method, and compiler program | |
CN115826946B (zh) | 一种程序异常向量空间优化系统、方法、设备及介质 | |
JP6245028B2 (ja) | 実行制御方法、実行制御プログラムおよび実行制御装置 | |
JP5489884B2 (ja) | 命令実行装置、命令実行方法、及び命令実行プログラム | |
CN106484375B (zh) | 一种指令块加载方法、软交换设备及系统 | |
CN106293963B (zh) | 一种用于windows系统中应用层和驱动层通讯的方法及系统 | |
US10310871B2 (en) | Non-transitory computer-readable recording medium storing control program, control device and control method | |
JP5895616B2 (ja) | 情報処理装置およびプログラム実行方法 | |
US9311065B2 (en) | Data splitting for multi-instantiated objects | |
JP5987501B2 (ja) | 分岐アドレス管理プログラム、方法、及び装置 | |
JP2003241967A (ja) | プログラム実行装置およびその方法、並びにそこで実行されるプログラム | |
JP6020071B2 (ja) | プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ | |
JP4504756B2 (ja) | Java(登録商標名)実行環境におけるメモリ管理方法及びメモリ管理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161206 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170920 |
|
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: 20171017 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171030 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6245028 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |