JP5165234B2 - ジャバ言語におけるメソッド参照のサポート - Google Patents
ジャバ言語におけるメソッド参照のサポート Download PDFInfo
- Publication number
- JP5165234B2 JP5165234B2 JP2006331172A JP2006331172A JP5165234B2 JP 5165234 B2 JP5165234 B2 JP 5165234B2 JP 2006331172 A JP2006331172 A JP 2006331172A JP 2006331172 A JP2006331172 A JP 2006331172A JP 5165234 B2 JP5165234 B2 JP 5165234B2
- Authority
- JP
- Japan
- Prior art keywords
- class
- call
- interface
- source code
- program
- 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 241
- 230000004044 response Effects 0.000 claims description 16
- 238000013507 mapping Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 description 16
- 230000007246 mechanism Effects 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000004020 conductor Substances 0.000 description 3
- 235000006719 Cassia obtusifolia Nutrition 0.000 description 2
- 235000014552 Cassia tora Nutrition 0.000 description 2
- 244000201986 Cassia tora Species 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000011800 void material Substances 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/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- 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)
- Devices For Executing Special Programs (AREA)
Description
上の説明において、オリジナルのメソッド呼出しが「現在の」オブジェクトのメソッドへ参照をパスしていた。例えば、図1のボックス106において、オリジナルのメソッド呼出し「fred.addActionListener(MY)」は、そのメソッド参照が明示的にいずれかのオブジェクトを指定するものではないので「現在の」オブジェクトのメソッドをパスするものと仮定されている。そのメソッド参照がオブジェクト参照により資格が与えられるものでない場合には、そのメソッド参照は「現在の」オブジェクト「this」のメソッドを参照するものと仮定される。従って、ボックス106に示されるオリジナルのメソッド呼出しは等価的に「fred.addActionListener(this.MY)」と書くことが可能である。
fred.addActionListener(jack.MY)
のようにボックス106に示したオリジナルのメソッド呼出しをコード化する場合がある。
fred.addActionListener(new MYBoxer(jack))
である。
本発明の1実施例によれば、特定のメソッドのシグネチャは特定のメソッドの名前、特定のメソッドの仮パラメータの引き数型、及びその特定のメソッドの型パラメータの境界を包含している。本発明の1実施例によれば、2つのメソッドが同一の名前及び同一の引き数型を有している場合にはそれら2つのメソッドは同一のシグネチャを有している。本発明の1実施例によれば、以下の全てが真である場合には2つのメソッドは同一の引き数型を有している。
図3は本発明の1実施例をインクリメントすることが可能なコンピュータシステム300を例示したブロック図である。コンピュータシステム300は、情報交換を容易化するためのバス302と、情報を処理するためにバス302と結合されている1つ又はそれ以上のプロセッサ304とを包含している。コンピュータシステム300は、又、プロセッサ304により実行されるべき情報及び命令を格納するためにバス302へ結合されているランダムアクセスメモリ(RAM)又はその他の動的格納装置等のメインメモリ306を包含している。メインメモリ306は、又、プロセッサ304による命令の実行期間中に一時的な変数又はその他の中間情報を格納するために使用することが可能である。コンピュータシステム300は、更に、プロセッサ304に対する静的情報及び命令を格納するためにバス302へ結合されている読取専用メモリ(ROM)308又はその他の静的格納装置を包含することが可能である。磁気ディスク又は光学ディスク等の格納装置310が設けられており且つ情報及び命令を格納するためにバス302へ結合されている。
Claims (22)
- プログラムコードを発生するためのマシンで実現される方法において、
ソースコード内において、メソッド呼出しにおいて呼び出されている第一プログラムメソッドに対するパラメータとしてパスされる特定の参照を見つけ、
該参照を見つけることに応答して、該特定の参照が第二プログラムメソッドに対する参照であるか否かを決定し、
該特定の参照が該第二プログラムメソッドに対する参照であることの決定に応答して、
前記メソッド呼出しにおいて呼び出された前記第一プログラムメソッドにより期待されるオブジェクトのクラスによりインプリメントされるインターフェースを決定し、
前記インターフェースをインプリメントする新たなブリッジクラスに対応するバイトコードを生成し、
前記メソッド呼出しを、前記第二プログラムメソッドに対する参照の代わりに、前記ブリッジクラスのオブジェクトへの参照をパスするメソッド呼出しへマッピングする
ことを包含している方法。 - 請求項1において、前記バイトコードが、該ソースコードが該クラスの定義を有している場合に自動的にコンパイラにより発生されるコンパイルされたコードであり、該ソースコードは該クラスの定義を有するものでない方法。
- 請求項1において、該ソースコードがJAVAプログラミング言語で書かれている方法。
- 請求項1において、該第一プログラムメソッドが該第二プログラムメソッドに対応するイベントリスナーを登録するメソッドである方法。
- 請求項1において、該第二プログラムメソッドが、特定したオブジェクトに対する特定したイベント型のイベントの発生に応答して自動的に呼び出されるイベント処理メソッドである方法。
- 請求項6において、該特定の参照を見つけることが、メソッド呼出しにおいて呼びされているメソッドに対するパラメータとしてメソッドMYに対する参照をパスするメソッド呼出しを見つけ出すことを包含している方法。
- 請求項6において、XはメソッドMXを定義するインターフェースであり、且つ該特定の参照を見つけることが、インターフェースXをインプリメントするクラスのインスタンスであるオブジェクトに対する参照をパラメータとして受取ることを期待するメソッド呼出しを見つけることを包含している方法。
- 請求項6において、更に、
「OBJECTNAME.METHODNAME(MY)」の形のメソッド呼出しを「OBJECTNAME.METHODNAME(new CLASSNAME(this))」の形の代替的メソッド呼出しに対してマッピングする、
ことを包含しており、その場合に、OBJECTNAMEはオブジェクトの名前であり且つMETHODNAMEはインターフェースXをインプリメントするクラスのインスタンスであるオブジェクトに対する参照をパラメータとして受取ることを期待するメソッドの名前である方法。 - 請求項1において、更に、
「OBJECTNAME.METHODNAME(MY)」の形のメソッド呼出しを「
OBJECTNAME.METHODNAME(new CLASSNAME(this
))」の形の代替的メソッド呼出しへマッピングする、
ことを包含しており、その場合に、OBJECTNAMEはオブジェクトの名前であり、
その場合に、METHODNAMEはクラスのインスタンスであるオブジェクトに対する
参照をパラメータとして受取ることを期待するメソッドの名前であり、且つ
その場合にCLASSNAMEは該第二プログラムメソッドを呼び出すメソッドをインプリメントするクラスの名前である方法。 - 請求項1において、前記バイトコードが、該ソースコードが該クラスの定義を有している場合にコンパイラにより自動的に発生されるコンパイルされたコードであり、その場合に該ソースコードは該クラスの定義を有するものではなく、その場合に該パラメータは特定のインターフェース型に対して定義されており、且つその場合に該クラスが該インターフェース型をインプリメントする方法。
- 命令の1つ又はそれ以上のシーケンスを担持するマシンにより読取可能な記憶媒体において、その命令は、1つ又はそれ以上のプロセッサにより実行される場合に、該1つ又はそれ以上のプロセッサをして、
ソースコード内において、メソッド呼出しにおいて呼び出されている第一プログラムメソッドに対するパラメータとしてパスされる特定の参照を見つけ、
該参照を見つけることに応答して、該特定の参照が第二プログラムメソッドに対する参照であるか否かを決定し、
該特定の参照が該第二プログラムメソッドに対する参照であることの決定に応答して、
前記メソッド呼出しにおいて呼び出された前記第一プログラムメソッドにより期待されるオブジェクトのクラスによりインプリメントされるインターフェースを決定し、
前記インターフェースをインプリメントする新たなブリッジクラスに対応するバイトコードを生成し、
前記メソッド呼出しを、前記第二プログラムメソッドに対する参照の代わりに、前記ブリッジクラスのオブジェクトへの参照をパスするメソッド呼出しへマッピングする
ステップを実施するマシンにより読取可能な記憶媒体。 - 請求項12において、前記バイトコードが、該ソースコードが該クラスの定義を有している場合にコンパイラにより自動的に発生されるコンパイルされたコードであり、その場合に該ソースコードは該クラスの定義を有するものでないマシンにより読取可能な記憶媒体。
- 請求項12において、該ソースコードがJAVAプログラミング言語で書かれているマシンにより読取可能な記憶媒体。
- 請求項12において、該第一プログラムメソッドが該第二プログラムメソッドに対応するイベントリスナーを登録するメソッドであるマシンにより読取可能な記憶媒体。
- 請求項12において、該第二プログラムメソッドが特定したオブジェクトに対する特定したイベント型のイベントの発生に応答して自動的に呼び出されるイベント処理メソッドであるマシンにより読取可能な記憶媒体。
- 請求項17において、該特定の参照を見つけることが、メソッド呼出しにおいて呼出されるメソッドに対するパラメータとしてメソッドMYに対する参照をパスするメソッド呼出しを見つけることを包含しているマシンにより読取可能な記憶媒体。
- 請求項17において、XはメソッドMXを定義するインターフェースであり、且つ該特定の参照を見つけることが、インターフェースXをインプリメントするクラスのインスタンスであるオブジェクトへの参照をパラメータとして受取ることを期待するメソッド呼出しを見つけることを包含しているマシンにより読取可能な記憶媒体。
- 請求項17において、前記命令は、前記1つ又はそれ以上のプロセッサにより実行される場合に、前記1つ又はそれ以上のプロセッサをして付加的に、
「OBJECTNAME.MEHTODNAME(MY)」の形のメソッド呼出しを「
OBJECTNAME.METHODNAME(new CLASSNAME(this
))」の形の代替的メソッド呼出しへマッピングする、
ステップを実施させ、
その場合に、OBJECTNAMEはオブジェクトの名前であり且つMETHODNAMEはインターフェースXをインプリメントするクラスのインスタンスであるオブジェクトへの参照をパラメータとして受取ることを期待するメソッドの名前であるマシンにより読取可能な記憶媒体。 - 請求項12において、前記命令は、前記1つ又はそれ以上のプロセッサにより実行される場合に、前記1つ又はそれ以上のプロセッサをして付加的に、
「OBJECTNAME.METHODNAME(MY)」の形のメソッド呼出しを「OBJECTNAME.METHODNAME(new CLASSNAME(this))」の形の代替的メソッド呼出しへマッピングする、
ステップを実施させ、
その場合にOBJECTNAMEはオブジェクトの名前であり、
その場合にMETHODNAMEはクラスのインスタンスであるオブジェクトへの参照をパラメータとして受取ることを期待するメソッドの名前であり、且つ
その場合にCLASSNAMEは該第二プログラムメソッドを呼出すメソッドをインプリメントするクラスの名前であるマシンにより読取可能な記憶媒体。 - 請求項12において、前記バイトコードが、該ソースコードが該クラスの定義を有している場合にコンパイラにより自動的に発生されるコンパイルされたコードであり、その場合に該ソースコードは該クラスの定義を有するものではなく、その場合に該パラメータは特定のインターフェース型を有するべく定義されており、且つその場合に該クラスは該インターフェース型をインプリメントするマシンにより読取可能な記憶媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/271424 | 2005-11-09 | ||
US11/271,424 US7802239B2 (en) | 2005-11-09 | 2005-11-09 | Supporting method references in the JAVA language |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007141248A JP2007141248A (ja) | 2007-06-07 |
JP5165234B2 true JP5165234B2 (ja) | 2013-03-21 |
Family
ID=37946036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006331172A Active JP5165234B2 (ja) | 2005-11-09 | 2006-11-09 | ジャバ言語におけるメソッド参照のサポート |
Country Status (3)
Country | Link |
---|---|
US (1) | US7802239B2 (ja) |
EP (1) | EP1785852A3 (ja) |
JP (1) | JP5165234B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8601456B2 (en) * | 2006-08-04 | 2013-12-03 | Microsoft Corporation | Software transactional protection of managed pointers |
CN105893103A (zh) * | 2014-11-26 | 2016-08-24 | 深圳他拍档电子商务有限公司 | 编译方法及其编译器 |
US11809839B2 (en) | 2022-01-18 | 2023-11-07 | Robert Lyden | Computer language and code for application development and electronic and optical communication |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4875186A (en) * | 1986-02-28 | 1989-10-17 | Prime Computer, Inc. | Peripheral emulation apparatus |
US6167565A (en) * | 1998-01-08 | 2000-12-26 | Microsoft Corporation | Method and system of custom marshaling of inter-language parameters |
JP2000148460A (ja) * | 1998-11-17 | 2000-05-30 | Digital Vision Laboratories:Kk | プログラム変換方法 |
US6647546B1 (en) * | 2000-05-03 | 2003-11-11 | Sun Microsystems, Inc. | Avoiding gather and scatter when calling Fortran 77 code from Fortran 90 code |
US7251594B2 (en) * | 2001-12-21 | 2007-07-31 | Hitachi, Ltd. | Execution time modification of instruction emulation parameters |
US7171652B2 (en) * | 2002-12-06 | 2007-01-30 | Ricoh Company, Ltd. | Software development environment with design specification verification tool |
US7207032B1 (en) * | 2003-03-28 | 2007-04-17 | Applied Micro Circuits Corporation | Expanding a software program by insertion of statements |
JP4652680B2 (ja) * | 2003-12-22 | 2011-03-16 | パナソニック株式会社 | コンパイル方法および装置、ならびにコンパイラ |
US20050198624A1 (en) * | 2004-03-02 | 2005-09-08 | Chipman Timothy W. | Method and system for program transformation |
US7367019B2 (en) * | 2004-09-16 | 2008-04-29 | International Business Machines Corporation | Parameter management using compiler directives |
US7500230B2 (en) * | 2005-03-25 | 2009-03-03 | Microsoft Corporation | Raising native software code |
-
2005
- 2005-11-09 US US11/271,424 patent/US7802239B2/en active Active
-
2006
- 2006-11-09 JP JP2006331172A patent/JP5165234B2/ja active Active
- 2006-11-09 EP EP06255752A patent/EP1785852A3/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
US7802239B2 (en) | 2010-09-21 |
EP1785852A3 (en) | 2007-12-26 |
JP2007141248A (ja) | 2007-06-07 |
US20100169869A1 (en) | 2010-07-01 |
EP1785852A2 (en) | 2007-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101795844B1 (ko) | 런타임 시스템 | |
US11599346B2 (en) | Accessing a migrated member in an updated type | |
US8739190B2 (en) | Determining an extension to use to process an input object to a call in a program | |
US7669184B2 (en) | Introspection support for local and anonymous classes | |
JP5044139B2 (ja) | 移行互換性を維持したままのジェネリック型の具体化 | |
US10083014B2 (en) | Generating dynamic modular proxies | |
US20190034178A1 (en) | Compiling non-native constants | |
US20050172300A1 (en) | System and method for transferring computer-readable objects across a remote boundary | |
US10310827B2 (en) | Flow-based scoping | |
JP5845221B2 (ja) | 高速パッチベースメソッドコール | |
CN103853535A (zh) | 修改中间件的方法和装置 | |
US7735070B2 (en) | Allowing non-generified methods to override generified methods | |
US6951022B1 (en) | Delegate-based event handling | |
JP5165234B2 (ja) | ジャバ言語におけるメソッド参照のサポート | |
US20180081648A1 (en) | Producing an internal representation of a type based on the type's source representation | |
US10394610B2 (en) | Managing split packages in a module system | |
US7526752B1 (en) | Introspection support for generic types | |
US20090144752A1 (en) | Unmanaged-to-managed aggregation | |
US6904516B2 (en) | Mechanism for enabling efficient execution of an instruction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091109 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20110113 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20110118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120703 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120926 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121030 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121115 |
|
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: 20121204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121219 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151228 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5165234 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |