JP2014149587A - 情報処理装置およびコンパイラプログラム - Google Patents
情報処理装置およびコンパイラプログラム Download PDFInfo
- Publication number
- JP2014149587A JP2014149587A JP2013016698A JP2013016698A JP2014149587A JP 2014149587 A JP2014149587 A JP 2014149587A JP 2013016698 A JP2013016698 A JP 2013016698A JP 2013016698 A JP2013016698 A JP 2013016698A JP 2014149587 A JP2014149587 A JP 2014149587A
- Authority
- JP
- Japan
- Prior art keywords
- property
- code
- hidden type
- 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.)
- Granted
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 JP5404944B1 (ja) | 2014-02-05 |
JP2014149587A true 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) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5270022B1 (ja) * | 2012-08-29 | 2013-08-21 | 株式会社 ディー・エヌ・エー | サーバー装置、及び、ゲームプログラム |
CN110275709B (zh) * | 2018-03-15 | 2023-07-25 | 斑马智行网络(香港)有限公司 | 针对动态语言的处理及优化方法、装置、设备及存储介质 |
Family Cites Families (8)
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 |
DE60007771D1 (de) * | 1999-11-01 | 2004-02-19 | Curl Corp | System und verfahren zur unterstützung von optionentypenkontrolle |
AU1246001A (en) * | 1999-11-01 | 2001-05-14 | 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 |
US8438540B2 (en) * | 2009-05-29 | 2013-05-07 | Red Hat, Inc. | Fast late binding of object properties |
JP5536593B2 (ja) * | 2010-09-01 | 2014-07-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 最適化装置、最適化方法およびコンパイラ・プログラム |
-
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
Also Published As
Publication number | Publication date |
---|---|
JP5404944B1 (ja) | 2014-02-05 |
US8898650B2 (en) | 2014-11-25 |
US20140215447A1 (en) | 2014-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10324909B2 (en) | Omega names: name generation and derivation utilizing nested three or more attributes | |
US7945904B2 (en) | Embedding expression in XML literals | |
US20120110437A1 (en) | Style and layout caching of web content | |
JP2016519385A (ja) | ドライバをロードする方法及び組み込みデバイス | |
JP6162733B2 (ja) | コンピュータ環境における式の変換 | |
CN107924326A (zh) | 对经更新的类型的迁移方法进行覆盖 | |
US9483508B1 (en) | Omega names: name generation and derivation | |
US20180159830A1 (en) | Obfuscating Source Code Sent, from a Server Computer, to a Browser on a Client Computer | |
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 | |
US10983771B1 (en) | Quality checking inferred types in a set of code | |
JP2014149810A (ja) | 情報処理装置およびコンパイラプログラム | |
CN115951890A (zh) | 一种不同前端框架间的代码转换方法及***及装置 | |
JP5932707B2 (ja) | 計算機、プログラム及びデータ生成方法 | |
Höschele et al. | Active learning of input grammars | |
US9052913B2 (en) | Dynamic token resolution during compilation | |
US7024664B2 (en) | Symbolic assembly language | |
CN116360788A (zh) | 结构化文本编程语言的编译方法、编译器及电子设备 | |
CN116185406A (zh) | 一种TaroJS生态全局注入插件方法 | |
CN117785213A (zh) | 基于Rust开发的前端构建工具及构建方法 | |
JP2006011712A (ja) | 永続化アダプタ生成装置 | |
AU2013203830A1 (en) | Translating expressions in a computing environment |
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 |