JP5404944B1 - 情報処理装置およびコンパイラプログラム - Google Patents
情報処理装置およびコンパイラプログラム Download PDFInfo
- Publication number
- JP5404944B1 JP5404944B1 JP2013016698A JP2013016698A JP5404944B1 JP 5404944 B1 JP5404944 B1 JP 5404944B1 JP 2013016698 A JP2013016698 A JP 2013016698A JP 2013016698 A JP2013016698 A JP 2013016698A JP 5404944 B1 JP5404944 B1 JP 5404944B1
- Authority
- JP
- Japan
- Prior art keywords
- hidden type
- code
- property
- offset
- value
- 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
Images
Classifications
-
- 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)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
【解決手段】ソースコードからオブジェクトコードを生成する情報処理装置であって、前記ソースコードに含まれるオブジェクトのプロパティに対するアクセスについて、オブジェクトに対応して設けられたヒドンタイプ情報のオフセットテーブルに、プロパティに対応付けてバリューを格納する1次元配列のオフセットを設定し、前記オフセットテーブルを介してプロパティにアクセスするコードを生成する手段を備える。
【選択図】図4
Description
function Point(x, y) {this.x = x; this.y = y;}
において、新規に Point(x, y)が実行されると、
ヒドンタイプ情報の示すオフセットに対応するメモリ領域にプロパティx、yの値が書き込まれる。このヒドンタイプ情報をもとに動的に生成したコードを実行することで、プロパティへのアクセスが行われる。
obj = {};
obj.x = 123;
obj.y = 456;
をコンパイルする過程で生成されるオブジェクト(object)とハッシュテーブル(hash table)の関係の例を示している。
図4は本発明の一実施形態にかかる情報処理装置1の構成例を示す図である。
図6〜図8は、ソースコード(source code)として
obj = {};
obj.x = 123;
obj.y = 456;
をコンパイルする過程で生成されるオブジェクト(object)とヒドンタイプ情報(hidden type)およびハッシュテーブル(hash table)の関係の例を示している。これらの情報やテーブルはコンパイル結果としてのオブジェクトコード(object code)に含められる。
図11(b)の記述d31において、変数hidden typeの示すヒドンタイプ情報hidden typeのオフセットハッシュテーブルoffset hash tableの要素数occupiedを変数offsetに設定する。
以上説明したように、本実施形態によれば、静的なコンパイラにおいて、コンパイルされたオブジェクトコードの実行時には、ファストオフセットテーブルfast offset tableに該当するプロパティが存在する場合、処理の遅いハッシュテーブルhash tableを参照することなく、即座にスロットテーブルslot tableにアクセスすることができるため、プロパティへのアクセスを高速に実現することができる。
11 ソースコード
12 コンパイラ
13A、13B 機種別コンパイラ
14 オブジェクトコード
Claims (3)
- ソースコードからオブジェクトコードを生成する情報処理装置であって、
前記ソースコードに含まれるオブジェクトのプロパティに対するアクセスについて、オブジェクトに対応して設けられたヒドンタイプ情報のオフセットテーブルに、プロパティに対応付けてバリューを格納する1次元配列のオフセットを設定し、前記オフセットテーブルを介してプロパティにアクセスするコードを生成する手段
を備えたことを特徴とする情報処理装置。 - 請求項1に記載の情報処理装置において、
前記オフセットテーブルによるプロパティへのアクセスが行えない場合のために、ハッシュテーブルを介してプロパティにアクセスするコードを生成する手段
を備えたことを特徴とする情報処理装置。 - ソースコードからオブジェクトコードを生成する情報処理装置を構成するコンピュータを、
前記ソースコードに含まれるオブジェクトのプロパティに対するアクセスについて、オブジェクトに対応して設けられたヒドンタイプ情報のオフセットテーブルに、プロパティに対応付けてバリューを格納する1次元配列のオフセットを設定し、前記オフセットテーブルを介してプロパティにアクセスするコードを生成する手段
として機能させるコンパイラプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013016698A JP5404944B1 (ja) | 2013-01-31 | 2013-01-31 | 情報処理装置およびコンパイラプログラム |
US14/028,641 US8898650B2 (en) | 2013-01-31 | 2013-09-17 | Technique to actualize a high-speed access to a property when executing a compiled object code in a static compiler |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013016698A JP5404944B1 (ja) | 2013-01-31 | 2013-01-31 | 情報処理装置およびコンパイラプログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013223618A Division JP2014149810A (ja) | 2013-10-28 | 2013-10-28 | 情報処理装置およびコンパイラプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5404944B1 true JP5404944B1 (ja) | 2014-02-05 |
JP2014149587A JP2014149587A (ja) | 2014-08-21 |
Family
ID=50202562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013016698A Active JP5404944B1 (ja) | 2013-01-31 | 2013-01-31 | 情報処理装置およびコンパイラプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8898650B2 (ja) |
JP (1) | JP5404944B1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275709A (zh) * | 2018-03-15 | 2019-09-24 | 阿里巴巴集团控股有限公司 | 针对动态语言的处理及优化方法、装置、设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5270022B1 (ja) * | 2012-08-29 | 2013-08-21 | 株式会社 ディー・エヌ・エー | サーバー装置、及び、ゲームプログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100306742A1 (en) * | 2009-05-29 | 2010-12-02 | James Paul Schneider | Fast late binding of object properties |
JP2012053679A (ja) * | 2010-09-01 | 2012-03-15 | Internatl Business Mach Corp <Ibm> | 最適化装置、最適化方法およびコンパイラ・プログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5848423A (en) * | 1997-04-23 | 1998-12-08 | Sun Microsystems, Inc. | Garbage collection system and method for locating root set pointers in method activation records |
AU1443701A (en) * | 1999-11-01 | 2001-05-14 | Curl Corporation | System and method supporting type checking of options |
WO2001033337A2 (en) * | 1999-11-01 | 2001-05-10 | Curl Corporation | System and method supporting property values as options |
US7730462B2 (en) * | 2004-01-27 | 2010-06-01 | Microsoft Corporation | Generalized comprehension in imperative languages |
US8244775B1 (en) | 2008-05-13 | 2012-08-14 | Google Inc | Using map objects to access object properties in a dynamic object-oriented programming language |
US8108437B2 (en) * | 2008-06-12 | 2012-01-31 | Oracle International Corporation | Sortable hash table |
-
2013
- 2013-01-31 JP JP2013016698A patent/JP5404944B1/ja active Active
- 2013-09-17 US US14/028,641 patent/US8898650B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100306742A1 (en) * | 2009-05-29 | 2010-12-02 | James Paul Schneider | Fast late binding of object properties |
JP2012053679A (ja) * | 2010-09-01 | 2012-03-15 | Internatl Business Mach Corp <Ibm> | 最適化装置、最適化方法およびコンパイラ・プログラム |
Non-Patent Citations (1)
Title |
---|
JPN6013052025; 森田創: '新型エンジン「V8」はなぜ速いのか' 日経エレクトロニクス 第990号, 20081103, p.61-73, 日経BP社 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275709A (zh) * | 2018-03-15 | 2019-09-24 | 阿里巴巴集团控股有限公司 | 针对动态语言的处理及优化方法、装置、设备及存储介质 |
CN110275709B (zh) * | 2018-03-15 | 2023-07-25 | 斑马智行网络(香港)有限公司 | 针对动态语言的处理及优化方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20140215447A1 (en) | 2014-07-31 |
US8898650B2 (en) | 2014-11-25 |
JP2014149587A (ja) | 2014-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9830341B2 (en) | Resource name generation and derivation utilizing attribute space monikers and their associated context | |
US7945904B2 (en) | Embedding expression in XML literals | |
CN106462425B (zh) | 使用复常量的方法和系统 | |
US20120110437A1 (en) | Style and layout caching of web content | |
JP6162733B2 (ja) | コンピュータ環境における式の変換 | |
CN107924326A (zh) | 对经更新的类型的迁移方法进行覆盖 | |
US9483508B1 (en) | Omega names: name generation and derivation | |
US11474796B1 (en) | Build system for distributed applications | |
US9027008B2 (en) | Method, computer, and computer program for speculatively optimizing code | |
JP5404944B1 (ja) | 情報処理装置およびコンパイラプログラム | |
US8869109B2 (en) | Disassembling an executable binary | |
JP2014149810A (ja) | 情報処理装置およびコンパイラプログラム | |
CN115951890A (zh) | 一种不同前端框架间的代码转换方法及系统及装置 | |
JP5932707B2 (ja) | 計算機、プログラム及びデータ生成方法 | |
US9052913B2 (en) | Dynamic token resolution during compilation | |
JP2021103354A (ja) | プログラムの試験方法 | |
US7024664B2 (en) | Symbolic assembly language | |
CN116360788A (zh) | 结构化文本编程语言的编译方法、编译器及电子设备 | |
JP2005228047A (ja) | 言語処理装置及び言語処理プログラム | |
AU2013203830A1 (en) | Translating expressions in a computing environment | |
JP2006011712A (ja) | 永続化アダプタ生成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131029 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5404944 Country of ref document: JP 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 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |