JP2013539130A - ユーザ定義型のコンパイル時境界検査 - Google Patents
ユーザ定義型のコンパイル時境界検査 Download PDFInfo
- Publication number
- JP2013539130A JP2013539130A JP2013531616A JP2013531616A JP2013539130A JP 2013539130 A JP2013539130 A JP 2013539130A JP 2013531616 A JP2013531616 A JP 2013531616A JP 2013531616 A JP2013531616 A JP 2013531616A JP 2013539130 A JP2013539130 A JP 2013539130A
- Authority
- JP
- Japan
- Prior art keywords
- boundary
- user
- type
- code
- memory
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/436—Semantic checking
- G06F8/437—Type checking
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/423—Preprocessors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
今日の管理コードシステム、例えば、Microsoft(登録商標).NETやJava(登録商標)環境(それぞれ、マイクロソフト社、オラクルアメリカ社の登録商標である)のような管理コードシステムは、管理コードプログラムによって使用されるすべてのメモリが割り当てられ、そして自動的に管理されることを前提としていることが多い。しかし、システムプログラミングにおいて、特にデバイスドライバプログラミングにおいて、この前提が成り立たないこともある。いくつかの事例において、デバイスドライバによって使用されるメモリは、デバイスのバッファが特定のアドレスセットにメモリマップされる時などに、物理的デバイスによって位置が固定される。他の事例において、メモリは、データの不必要な複製を回避するように、または一定の制限時間内にバッファを再使用するように明示的に管理される。
図1に関して、実施形態のオペレーティング環境100は、コンピュータシステム102を含む。コンピュータシステム102は、マルチプロセッサコンピュータシステムであってもよいし、そうでなくてもよい。オペレーティング環境は、所与のコンピュータシステム内に1または複数のマシンを含むことができ、そのコンピュータシステムは、クラスタ、クライアントサーバネットワーク、および/またはピアツーピアネットワークであってもよい。
図2は、いくつかの実施形態の使用に適しているアーキテクチャを示す。ユーザ定義クラス202などのユーザ定義型204は、開発者の境界検査の意思を、コンパイラに境界検査だけでなく冗長な境界検査の解除も提供するようにさせる方法でコンパイラ224に伝達する注釈206を有する。注釈は、例えば、ユーザ定義型のメモリアクセス(memory-accessing)208コードおよび境界提供(boundary-providing)210コードを特定できる。メモリアクセスコードを、例えば、インライン化ステートメント(inline statements)および/または個別メソッド(distinct methods)にできる。境界提供コードは、境界218を包含するフィールド212および/または呼び出されると境界218を返すメソッド214であってよい。
図3は、いくつかの処理の実施形態をフローチャート300で例示している。図面に示した処理は、いくつかの実施形態で自動的に、例えば、ユーザ入力をほとんどまたはまったく必要としないスクリプトの制御下でコンパイラ224およびオプティマイザ226によって、またはユーザ定義型204をユーザ供給仕様(user-supplied specifications)から生成する自動化されたソースコード122ジェネレータによって実行されることができる。処理を、一部では自動的に、および表示がなければ一部では手動で実行することもできる。所与の実施形態において、例示された0または1以上の処理のステップを繰り返してもよく、恐らく動作する異なるパラメータまたはデータを用いるであろう。実施形態のステップは、図3に並べられた上から下への順序とは異なる順序で行われてもよい。ステップは、順次に、部分的に重なる方法で、または完全に並行して実行されてもよい。フローチャート300が処理中に実行されるステップを示すためにトラバースする順序は、ある処理の実行から別の処理の実行までさまざまになり得る。フローチャートのトラバース順序も、ある処理の実施形態から別の処理の実施形態までさまざまになり得る。ステップは、実行される処理が動作可能で、且つ少なくとも1つの特許請求の範囲に従うという条件で、省略され、組み合わされ、名前を変えられ、再グループ化され、あるいは例示されたフローから離れてもよい。
いくつかの実施形態は、構成されたコンピュータ可読記憶媒体112を含む。媒体112は、ディスク(磁気ディスク、光ディスクその他)、RAM、EEPROMまたは他のROM、および/または、特に持続性のコンピュータ可読媒体(有線または他の伝搬信号媒体とは対照的である)を含む、他の構成可能メモリを含んでもよい。構成される記憶媒体は、特に、CD、DVD、またはフラッシュメモリなどの、取り外し可能な記憶媒体114であってもよい。取り外し可能でも取り外し不能でもよく、且つ揮発性でも不揮発性でもよい、汎用メモリは、ユーザ定義型204(それらの注釈206を含む)、および/または(注釈206を処理するように適応した)オプティマイザ226などの、項目を使用した実施形態に、取り外し可能な媒体114および/またはネットワーク接続などの別のソースから読み取って構成媒体を形成する、データ118および命令116の形式で構成されることができる。構成媒体112は、コンピュータシステムに、本明細書で説明するような注釈とコンパイル時に最適化される柔軟性のある境界検査とを通じて、ソースコードまたは他のコードを変換する処理ステップを実行するようにさせる能力がある。従って図1から図3までは、構成された記憶媒体の実施形態および処理の実施形態、ならびにシステムおよび処理の実施形態を明らかにするのに役立つ。特に、図3に例示した、あるいは本明細書で教示した処理ステップのいずれも、構成媒体の実施形態を形成する記憶媒体を構成するのに役立つように使用できる。
付加的な詳細および設計考察を以下に与える。本明細書の他の例と同様に、説明する機能は、所与の実施形態において、個々におよび/または組み合わせて使用されてもよいし、または全く使用されなくてもよい。
[return;SomeAttribute]
intSomeMethod(){...}
voidFoo(int i){
byte*p=...
[BoundsChecking](or[BoundsChecking(i)]
...*(p+i)...
}
class List{
int[]arr=new int[20];
[Bound]
int count=0;
void Aあdd(int i){
arr[coount]=i;
count=count+1;
}
[BoundsChecking]
void Get(int i){
return arr[i];
}
}
本明細書で説明される柔軟性のあるコンパイル時境界検査と先行アプローチとの違いをさらに明らかにするために、よく知られた配列境界検査の考察を以下に与える。この考察で説明する概念およびテクノロジーは、本明細書で教示された実施形態と互いに使用されないようにするという点において、実際に置き換えられるが、それらは、ここでは保護が求められる実施形態の範囲外にある。
特定の実施形態を、本明細書では、処理として、構成媒体として、またはシステムとして明確に説明しているが、ある種類の実施形態の考察はまた、概して別の種類の実施形態にまで及ぶことが認識されよう。例えば、図3と関連した処理の説明も、構成媒体を説明するのに役立ち、そして他の図面と関連して論じたようなシステムおよび製品の動作を説明するのにも役立つ。それは、一実施形態の制限を、必然的に別の実施形態を制限する意味に解釈するということではない。特に、処理は、システムまたは構成メモリなどの製品を論じている間に提示されたデータ構造および配置に必ずしも限定されるというわけではない。
Claims (15)
- データと、少なくとも1つのプロセッサによって実行された時に、前記プロセッサにユーザ定義型のコンパイル時境界検査の処理を実行させる命令と、によって構成されるコンピュータ可読の持続性記憶媒体であって、前記処理は、ソースコードから中間言語コードを通じて実行可能コードとなるプログラムのコンパイル中に実行されるステップであって、
メモリに安全にアクセスするために前記ソースコード内のユーザ定義クラス、即ち、ユーザ定義の境界検査の注釈で注釈付けられるメモリアクセスコードを注釈メンバとして有し、さらに前記メモリアクセスコードにおける境界検査を生成するための境界情報を提供することを示すように注釈付けられる境界提供メンバを別の注釈メンバとして有するユーザ定義クラスを特定するステップと、
前記ユーザ定義の境界検査の注釈の境界検査表現を前記中間言語コードに挿入するステップと、
前記実行可能コードで発生するであろう重複した境界検査を減らす最適化を適用するステップと
を備えることを特徴とするコンピュータ可読の持続性記憶媒体。 - 境界検査表現に応答して境界検査コードを前記中間言語コードに挿入するステップをさらに備え、
前記適用するステップは、前記最適化を境界検査表現に適用するよりはむしろ、前記最適化を、挿入された境界検査コードに適用すること、
を特徴とする請求項1に記載のコンピュータ可読の持続性記憶媒体。 - 前記適用するステップは、前記最適化を前記中間言語コード内の境界検査コードに適用するよりはむしろ、前記最適化を境界検査表現に適用することを特徴とする請求項1に記載のコンピュータ可読の持続性記憶媒体。
- 前記特定するステップは、明示的に割り当てられるメモリへのアクセスの注釈で注釈付けられたメモリアクセスメソッドを特定することを特徴とする請求項1に記載のコンピュータ可読の持続性記憶媒体。
- 前記特定するステップは、内蔵型のシステム定義の境界検査を補足することを、ユーザ定義の境界検査に示す注釈を特定することを特徴とする請求項1に記載のコンピュータ可読の持続性記憶媒体。
- 前記特定するステップは、ガーベジコレクタ管理型のシステム定義の境界検査を補足することを、ユーザ定義の境界検査に示す注釈を特定することを特徴とする請求項1に記載のコンピュータ可読の持続性記憶媒体。
- ユーザ定義型、即ち、内蔵ではない型のコンパイル時境界検査を管理するプログラム開発者のための処理であって、
コンピュータプログラムのソースコードを取得するステップと、
ユーザ定義のデータ型を前記ソースコードで特定するステップと、
前記ユーザ定義のデータ型によって定義されるメモリアクセスメソッドを見つけるステップと、
前記メモリアクセスメソッドを、明示的に割り当てられるメモリへのアクセスの注釈で注釈付けるステップと、
前記ユーザ定義のデータ型によって定義されるフィールドが前記メモリアクセスメソッドについての境界を包含することを示す境界を包含するフィールドの注釈、および
前記ユーザ定義のデータ型によって定義される境界取得メソッドが前記メモリアクセスメソッドについての境界を返すことを表示した境界取得メソッドの注釈、のうちの少なくとも1つによって前記ソースコードを注釈付けるステップと、
を備えることを特徴とする処理。 - 前記ユーザ定義型は、内蔵配列型および内蔵管理型のうちの少なくとも1つをラップすることを特徴とする請求項7に記載の処理。
- 論理プロセッサと、
前記論理プロセッサと動作可能に通信するメモリと、
前記メモリに常駐し、ユーザ定義型を有するソースコードであって、前記ユーザ定義型は、ユーザ定義の境界検査の注釈で注釈付けられるメモリアクセスメソッドを有し、前記ユーザ定義型は、少なくとも1つの境界指定子をも有する、ソースコードと、
前記メモリに常駐し、前記ユーザ定義の境界検査の注釈の境界検査表現を、中間言語コードに挿入するように構成されたコンパイラと、
前記メモリに常駐し、重複した境界検査を減らすために最適化を中間言語コードに適用するように構成されたオプティマイザと、
を備えるコンピュータシステム。 - 前記注釈付けられるソースコードは、デバイスドライバのソースコードを備え、前記ユーザ定義型は、メモリマップドバッファに対応することを特徴とする請求項9に記載のシステム。
- 前記ソースコードは、ガーベジコレクトされたデータ型を備え、前記ユーザ定義型は、明示的に割り当てられるメモリに対応することを特徴とする請求項9に記載のシステム。
- 前記ユーザ定義型は、多要素配列型ではない、構成型として定義されることを特徴とする請求項9に記載のシステム。
- 前記境界指定子は、
ユーザ定義のデータ型におけるフィールドが、前記メモリアクセスメソッドについての境界を包含することを示す境界を包含するフィールドの注釈、および
ユーザ定義のデータ型における境界取得メソッドが、前記メモリアクセスメソッドについての境界を返すことを示す境界ゲッタメソッドの注釈、のうちの少なくとも1つを備えることを特徴とする請求項9に記載のシステム。 - 前記メモリに常駐し、前記ユーザ定義の境界検査の注釈の境界検査表現で注釈付けられる中間言語コードをさらに備えることを特徴とする請求項9に記載のシステム。
- 前記ユーザ定義型は、前記コンパイラによって制御されないデータレイアウトを有することを特徴とする請求項9に記載のシステム。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/892,291 US8533695B2 (en) | 2010-09-28 | 2010-09-28 | Compile-time bounds checking for user-defined types |
| US12/892,291 | 2010-09-28 | ||
| PCT/US2011/051023 WO2012047447A1 (en) | 2010-09-28 | 2011-09-09 | Compile-time bounds checking for user-defined types |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JP2013539130A true JP2013539130A (ja) | 2013-10-17 |
| JP2013539130A5 JP2013539130A5 (ja) | 2014-10-02 |
| JP5893038B2 JP5893038B2 (ja) | 2016-03-23 |
Family
ID=45872016
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2013531616A Expired - Fee Related JP5893038B2 (ja) | 2010-09-28 | 2011-09-09 | ユーザ定義型のコンパイル時境界検査 |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US8533695B2 (ja) |
| EP (1) | EP2622466B1 (ja) |
| JP (1) | JP5893038B2 (ja) |
| KR (1) | KR101786156B1 (ja) |
| CN (1) | CN102402451B (ja) |
| CA (1) | CA2810986A1 (ja) |
| ES (1) | ES2733516T3 (ja) |
| WO (1) | WO2012047447A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2018158909A1 (ja) * | 2017-03-02 | 2018-09-07 | 三菱電機株式会社 | 情報処理装置およびアクセス管理プログラム |
Families Citing this family (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8291393B2 (en) * | 2007-08-20 | 2012-10-16 | International Business Machines Corporation | Just-in-time compiler support for interruptible code |
| US10705804B2 (en) * | 2012-02-26 | 2020-07-07 | Logistics Research Centre SIA | Strongly typed metadata access in object oriented programming languages with reflection support |
| US9195442B2 (en) | 2012-07-10 | 2015-11-24 | Oracle International Corporation | System and method for compiling lambda expression in a programming language environment |
| US8954939B2 (en) * | 2012-12-31 | 2015-02-10 | Microsoft Corporation | Extending a development environment |
| US9098269B2 (en) | 2013-01-04 | 2015-08-04 | Microsoft Technology Licensing, Llc | System and method to ensure resource access safety with immutable object types |
| US20140196015A1 (en) * | 2013-01-04 | 2014-07-10 | Microsoft Corporation | Declaration of lifetime of resource reference |
| US9772828B2 (en) * | 2014-04-22 | 2017-09-26 | Oracle International Corporation | Structural identification of dynamically generated, pattern-instantiation, generated classes |
| US9684492B2 (en) | 2015-09-28 | 2017-06-20 | Semmle Limited | Automatic determination of compiler configuration |
| US9672015B2 (en) * | 2015-09-28 | 2017-06-06 | Semmle Limited | Automatic determination of compiler configuration |
| US10706164B2 (en) * | 2017-09-29 | 2020-07-07 | Intel Corporation | Crypto-enforced capabilities for isolation |
| CN108459873B (zh) * | 2018-03-05 | 2021-09-24 | 中国人民解放军国防科技大学 | 一种提高开源代码注释率及注释质量的方法 |
| US11023214B2 (en) * | 2018-07-30 | 2021-06-01 | Roger James Poon | System and method for eliminating runtime out-of-bounds errors and exceptions |
| KR102322965B1 (ko) | 2020-03-23 | 2021-11-09 | 주식회사 티맥스 소프트 | Transpiler를 통하여 전환된 언어와 source 언어간 범용 런타임 검증 시스템 |
| US10963228B1 (en) * | 2020-12-22 | 2021-03-30 | Temper Systems, Inc. | Preventing garbage object accumulation on minimal runtimes |
| US20230090973A1 (en) * | 2021-09-21 | 2023-03-23 | Intel Corporation | Immediate offset of load store and atomic instructions |
| US20230315412A1 (en) * | 2022-03-30 | 2023-10-05 | Microsoft Technology Licensing, Llc | Scalable behavioral interface specification checking |
| US20240104013A1 (en) * | 2022-09-28 | 2024-03-28 | Intel Corporation | Deterministic adjacent overflow detection for slotted memory pointers |
| US20240272885A1 (en) * | 2023-02-13 | 2024-08-15 | Oracle International Corporation | Modeling java source code in a symbolic description language |
| US12436749B2 (en) * | 2023-03-31 | 2025-10-07 | Veracode, Inc. | Inferring type definitions of user-defined types of variables in application program code |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10275087A (ja) * | 1997-03-28 | 1998-10-13 | Fujitsu Ltd | コンパイル装置 |
| JP2000081983A (ja) * | 1998-07-10 | 2000-03-21 | Internatl Business Mach Corp <Ibm> | ル―プに対するバ―ジョニングを実行する方法及び装置、配列レンジ・チェックに関する情報をベ―シック・ブロック内において収集する方法及び装置、配列レンジ・チェックに関する情報を変更する方法、配列レンジ・チェック最適化方法、配列レンジ・チェックのためのコ―ドを生成する方法、不要配列レンジ・チェック除去方法及び装置、配列レンジ・チェックを選択する方法、配列レンジ・チェック変更方法、配列レンジ・チェック収集方法、及び配列レンジ・チェック取扱判断方法 |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4584666A (en) | 1984-06-21 | 1986-04-22 | Motorola, Inc. | Method and apparatus for signed and unsigned bounds check |
| US5075845A (en) * | 1989-12-22 | 1991-12-24 | Intel Corporation | Type management and control in an object oriented memory protection mechanism |
| US5644709A (en) | 1994-04-21 | 1997-07-01 | Wisconsin Alumni Research Foundation | Method for detecting computer memory access errors |
| US5694539A (en) * | 1994-08-10 | 1997-12-02 | Intrinsa Corporation | Computer process resource modelling method and apparatus |
| DE69713400T2 (de) | 1996-01-24 | 2002-10-31 | Sun Microsystems, Inc. | Prozessor mit Bereichsüberprüfung bei Matrixzugriffen |
| US6149318A (en) | 1997-04-15 | 2000-11-21 | Samuel C. Kendall | Link-time and run-time error detection, and program instrumentation |
| US6343375B1 (en) | 1998-04-24 | 2002-01-29 | International Business Machines Corporation | Method for optimizing array bounds checks in programs |
| US7260817B2 (en) * | 1999-07-09 | 2007-08-21 | International Business Machines Corporation | Method using array range check information for generating versioning code before a loop for execution |
| JP3564445B2 (ja) * | 2001-09-20 | 2004-09-08 | 松下電器産業株式会社 | プロセッサ、コンパイル装置及びコンパイル方法 |
| WO2005029241A2 (en) | 2003-09-15 | 2005-03-31 | Plum Thomas S | Automated safe secure techniques for eliminating |
| US20050108695A1 (en) * | 2003-11-14 | 2005-05-19 | Long Li | Apparatus and method for an automatic thread-partition compiler |
| US7448029B2 (en) * | 2004-04-26 | 2008-11-04 | International Business Machines Corporation | Modification of array access checking in AIX |
| US7325007B2 (en) * | 2005-03-07 | 2008-01-29 | Microsoft Corporation | System and method for supporting non-native data types in a database API |
| US7650346B2 (en) * | 2005-04-01 | 2010-01-19 | Microsoft Corporation | User-defined type consistency checker |
| US7810085B2 (en) * | 2005-12-07 | 2010-10-05 | Microsoft Corporation | Removal of unnecessary read-to-update upgrades in software transactional memory |
| US8484613B2 (en) * | 2010-01-28 | 2013-07-09 | Synopsys, Inc. | Optimizing bounds checking using computer algebra |
-
2010
- 2010-09-28 US US12/892,291 patent/US8533695B2/en not_active Expired - Fee Related
-
2011
- 2011-09-09 CA CA2810986A patent/CA2810986A1/en not_active Abandoned
- 2011-09-09 WO PCT/US2011/051023 patent/WO2012047447A1/en active Application Filing
- 2011-09-09 KR KR1020137007833A patent/KR101786156B1/ko not_active Expired - Fee Related
- 2011-09-09 ES ES11831155T patent/ES2733516T3/es active Active
- 2011-09-09 EP EP11831155.4A patent/EP2622466B1/en active Active
- 2011-09-09 JP JP2013531616A patent/JP5893038B2/ja not_active Expired - Fee Related
- 2011-09-26 CN CN201110306863.8A patent/CN102402451B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10275087A (ja) * | 1997-03-28 | 1998-10-13 | Fujitsu Ltd | コンパイル装置 |
| JP2000081983A (ja) * | 1998-07-10 | 2000-03-21 | Internatl Business Mach Corp <Ibm> | ル―プに対するバ―ジョニングを実行する方法及び装置、配列レンジ・チェックに関する情報をベ―シック・ブロック内において収集する方法及び装置、配列レンジ・チェックに関する情報を変更する方法、配列レンジ・チェック最適化方法、配列レンジ・チェックのためのコ―ドを生成する方法、不要配列レンジ・チェック除去方法及び装置、配列レンジ・チェックを選択する方法、配列レンジ・チェック変更方法、配列レンジ・チェック収集方法、及び配列レンジ・チェック取扱判断方法 |
Non-Patent Citations (2)
| Title |
|---|
| JPN6015039145; Matthew M. Papi et al.: '"Pluggable Type-checking for Custom Type Qualifiers in Java"' Computer Science and Artificial Intelligence Laboratory Technical Report , 20070917, pp.1-10, MIT * |
| JPN6015039146; 酒匂 寛: '"Eiffel-仕様記述能力をもつオブジェクト指向言語-"' 情報処理 第35巻,第3号(通巻349号), 19940315, pp.204-214, 社団法人情報処理学会 * |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2018158909A1 (ja) * | 2017-03-02 | 2018-09-07 | 三菱電機株式会社 | 情報処理装置およびアクセス管理プログラム |
| JPWO2018158909A1 (ja) * | 2017-03-02 | 2019-06-27 | 三菱電機株式会社 | 情報処理装置およびアクセス管理プログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| CN102402451B (zh) | 2014-07-23 |
| CN102402451A (zh) | 2012-04-04 |
| US20120079465A1 (en) | 2012-03-29 |
| KR101786156B1 (ko) | 2017-10-16 |
| CA2810986A1 (en) | 2012-04-12 |
| EP2622466A4 (en) | 2014-10-01 |
| JP5893038B2 (ja) | 2016-03-23 |
| EP2622466B1 (en) | 2019-04-10 |
| US8533695B2 (en) | 2013-09-10 |
| KR20130101037A (ko) | 2013-09-12 |
| EP2622466A1 (en) | 2013-08-07 |
| ES2733516T3 (es) | 2019-11-29 |
| WO2012047447A1 (en) | 2012-04-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5893038B2 (ja) | ユーザ定義型のコンパイル時境界検査 | |
| CN114041117B (zh) | 用于代码优化的语法图的持续注释 | |
| JP5851396B2 (ja) | 処理方法 | |
| US8843920B2 (en) | Systems and methods for deferring software implementation decisions until load time | |
| US20120317556A1 (en) | Optimizing execution of kernels | |
| MX2013003339A (es) | Sistemas y metodos para la vectorizacion basada en compilador de codigo no hoja. | |
| AU2014215529B2 (en) | A method for modeling source code having code segments that lack source location | |
| Chen et al. | Type-preserving compilation for large-scale optimizing object-oriented compilers | |
| US11972237B1 (en) | Member invocation declarative interception | |
| Bueno et al. | The Ciao Preprocessor | |
| US20250165237A1 (en) | Methods, systems, and computer program products for processing an excludable addressable entity | |
| US20200241857A1 (en) | Methods, systems, and computer program products for processing an excludable addressable entity | |
| Shivam et al. | OpenACC Routine Directive Propagation Using Interprocedural Analysis | |
| Lee | Pro Objective-C | |
| US20160266879A1 (en) | Methods, systems, and computer program products for processing an excludable addressable entity | |
| Stork | Concurrent Programming via Access Permissions | |
| XL | Getting Started with XL C | |
| SVOBODA | ARCHITECTURE INFORMATION FOR LLVM COMPILER OPTIMIZATIONS | |
| Kovalov | Context-sensitive Points-To Analysis: Comparing precision and scalability FFFFFFFF00000000000005005400650078007400310000000B0055006E00640065007200720075006200720069006B0000000000000000000000000000000000000000000000 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20130712 |
|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20130719 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140812 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140812 |
|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20150523 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150811 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150929 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151224 |
|
| 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: 20160126 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160223 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5893038 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |