maegaki_4_suzuki_yuusuke.pdf

Similar documents
#include <stdio.h> unsigned char x86[] = { 0x8b, 0x44, 0x24, 0x04, // mov eax,[esp+4] 0x03, 0x44, 0x24, 0x08, // add eax,[esp+8] 0xc3 // ret }; int ma

JavaScript Web Web Web Web Web JavaScript Web Web JavaScript JavaScript JavaScript GC GC GC GC JavaScript SSJSVM GC SSJSVM GC GC GC SSJSVM GC GC SSJSV

東京工業大学情報理工学院 AO 入試 活動実績報告書 氏名 ( よみ ): 大岡山花子 ( おおおかやまはなこ ) 高等学校 : 県立 高等学校 (2019 年 3 月 卒業 卒業予定 ) 活動実績概要 (150 字程度 ): JavaScript ではコールバックを多用することがある. これはプロ

Agenda Intro & history LLVM overview Demo Pros & Cons LLVM Intermediate Language LLVM tools

fiš„v8.dvi

1 Point 2 Point 3 Point 5 490, ,059,000 2,235,500 2,890,500 4,449, ,000 1,554,000 3,108,000 3,885,000 3,885,000 4,132,

@ LL Future 2008/08/30 MORITA Hajime

,,,,., C Java,,.,,.,., ,,.,, i

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

OOCOBOL紹介

IPSJ SIG Technical Report Vol.2017-ARC-225 No.12 Vol.2017-SLDM-179 No.12 Vol.2017-EMB-44 No /3/9 1 1 RTOS DefensiveZone DefensiveZone MPU RTOS

28 Docker Design and Implementation of Program Evaluation System Using Docker Virtualized Environment

fiš„v5.dvi

修士論文

Vol.6 No (Aug. 2013) 1,a) 2,b) 2,c) , Java Java Java Java Inner Method for Code Reuse in Fine-grained and Its Effective Im

CX-Checker CX-Checker (1)XPath (2)DOM (3) 3 XPath CX-Checker. MISRA-C 62%(79/127) SQMlint 76%(13/17) XPath CX-Checker 3. CX-Checker 4., MISRA-C CX- Ch

. IDE JIVE[1][] Eclipse Java ( 1) Java Platform Debugger Architecture [5] 3. Eclipse GUI JIVE 3.1 Eclipse ( ) 1 JIVE Java [3] IDE c 016 Information Pr

23 Fig. 2: hwmodulev2 3. Reconfigurable HPC 3.1 hw/sw hw/sw hw/sw FPGA PC FPGA PC FPGA HPC FPGA FPGA hw/sw hw/sw hw- Module FPGA hwmodule hw/sw FPGA h


インテル® VTune™ パフォーマンス・アナライザー 9.1 Windows* 版

JavaScript 1.! DOM Ajax Shelley Powers,, JavaScript David Flanagan, JavaScript 2

shift/reset [13] 2 shift / reset shift reset k call/cc reset shift k shift (...) k 1 + shift(fun k -> 2 * (k 3)) k 2 * (1 + 3) 8 reset shift reset (..

1 3DCG [2] 3DCG CG 3DCG [3] 3DCG 3 3 API 2 3DCG 3 (1) Saito [4] (a) 1920x1080 (b) 1280x720 (c) 640x360 (d) 320x G-Buffer Decaudin[5] G-Buffer D

Int Int 29 print Int fmt tostring 2 2 [19] ML ML [19] ML Emacs Standard ML M M ::= x c λx.m M M let x = M in M end (M) x c λx.


fiš„v3.dvi

2 P.83 Macintosh P.75 P.47 Windows P.83 Macintosh P.75 P.47 Windows P.83 Macintosh P.75 P.47 Windows P.33 P.83 Macintosh P.75 P.47 Windows P.88 Macint

今から間にあう仮想化入門とXenについて

Dual Stack Virtual Network Dual Stack Network RS DC Real Network 一般端末 GN NTM 端末 C NTM 端末 B IPv4 Private Network IPv4 Global Network NTM 端末 A NTM 端末 B

e10s におけるプロセス間通信の基本 219 HACK #34 Components.manager.removeBootstrappedManifestLocati on() function shutdown(adata, areason) { const IOService =


1 Table 1: Identification by color of voxel Voxel Mode of expression Nothing Other 1 Orange 2 Blue 3 Yellow 4 SSL Humanoid SSL-Vision 3 3 [, 21] 8 325

IPSJ SIG Technical Report NetMAS NetMAS NetMAS One-dimensional Pedestrian Model for Fast Evacuation Simulator Shunsuke Soeda, 1 Tomohisa Yam

2) TA Hercules CAA 5 [6], [7] CAA BOSS [8] 2. C II C. ( 1 ) C. ( 2 ). ( 3 ) 100. ( 4 ) () HTML NFS Hercules ( )

ipsj-final.dvi

ohp1.dvi


RubyKaigi2009 COBOL

1_26.dvi

作図ツール GC/html5 ビューア版の開発と iPad を使った教育実践 (数学ソフトウェアと教育 : 数学ソフトウェアの効果的利用に関する研究)

クラウド時代のインフラ構成/変更管理とコンプライアンス管理

GPGPU

Javaで体験するスクリプト言語の威力

事例に見るSCORMの・・・

SCM (v0201) ( ) SCM 2 SCM 3 SCM SCM 2.1 SCM SCM SCM (1) MS-DOS (2) Microsoft(R) Windows 95 (C)Copyright Microsoft Corp

10_細川直史.indd

(a) 1 (b) 3. Gilbert Pernicka[2] Treibitz Schechner[3] Narasimhan [4] Kim [5] Nayar [6] [7][8][9] 2. X X X [10] [11] L L t L s L = L t + L s

% 95% 2002, 2004, Dunkel 1986, p.100 1


IPSJ SIG Technical Report Vol.2016-ARC-221 No /8/9 GC 1 1 GC GC GC GC DalvikVM GC 12.4% 5.7% 1. Garbage Collection: GC GC Java GC GC GC GC Dalv

Infoprint 250 GA

IPSJ SIG Technical Report Vol.2014-CE-126 No /10/11 1,a) Kinect Support System for Romaji Learning through Exercise Abstract: Educatio

IPSJ SIG Technical Report iphone iphone,,., OpenGl ES 2.0 GLSL(OpenGL Shading Language), iphone GPGPU(General-Purpose Computing on Graphics Proc


Emacs ML let start ::= exp (1) exp ::= (2) fn id exp (3) ::= (4) (5) ::= id (6) const (7) (exp) (8) let val id = exp in

カイケン96号d.indd

B 20 Web

Web Web ID Web 16 Web Web i

endo.PDF


2

(3.6 ) (4.6 ) 2. [3], [6], [12] [7] [2], [5], [11] [14] [9] [8] [10] (1) Voodoo 3 : 3 Voodoo[1] 3 ( 3D ) (2) : Voodoo 3D (3) : 3D (Welc

2

258 5) GPS 1 GPS 6) GPS DP 7) 8) 10) GPS GPS ) GPS Global Positioning System

P2P P2P peer peer P2P peer P2P peer P2P i

E4X in Firefox nanto_vi (TOYAMA Nao)

IPSJ SIG Technical Report Vol.2013-CE-122 No.16 Vol.2013-CLE-11 No /12/14 Android 1,a) 1 1 GPS LAN 2 LAN Android,,, Android, HTML5 LAN 1. ICT(I

A B C B C ICT ICT ITC ICT

2

Present Situation and Problems on Aseismic Design of Pile Foundation By H. Hokugo, F. Ohsugi, A. Omika, S. Nomura, Y. Fukuda Concrete Journal, Vol. 29

ID 3) 9 4) 5) ID 2 ID 2 ID 2 Bluetooth ID 2 SRCid1 DSTid2 2 id1 id2 ID SRC DST SRC 2 2 ID 2 2 QR 6) 8) 6) QR QR QR QR

gc.dvi

sato-FBSDW key

TC316_A5_2面_web用PDF台紙.indd

untitled

Oracle Policy Automation 10.0システム要件

自然言語処理16_2_45

& Vol.5 No (Oct. 2015) TV 1,2,a) , Augmented TV TV AR Augmented Reality 3DCG TV Estimation of TV Screen Position and Ro

AlertCon SOC SOC IBM X-Force SOC SOC

How to Use the PowerPoint Template

56

2

fmaster.dvi

ActionScript Flash Player 8 ActionScript3.0 ActionScript Flash Video ActionScript.swf swf FlashPlayer AVM(Actionscript Virtual Machine) Windows

1994 Bruner(1983) performative use of language , , Bruner 1983, 2006, , (2001) (1979) 198

Web Web Web Web i

解きながら学ぶC言語


FAX-760CLT

¥¤¥ó¥¿¡¼¥Í¥Ã¥È·×¬¤È¥Ç¡¼¥¿²òÀÏ Âè2²ó

Vol. 42 No. SIG 8(TOD 10) July HTML 100 Development of Authoring and Delivery System for Synchronized Contents and Experiment on High Spe


design_pattern.key

パナソニック技報

jssst07.dvi

IPSJ SIG Technical Report Vol.2013-CE-119 No /3/15 enpoly enpoly enpoly 1) 2) 2 C Java Bertrand Meyer [1] 1 1 if person greeting()

<8E6C969C8F5C8E738D4C95F1368C8E8D868F4390B394C52E706466>

2

untitled

1., 1 COOKPAD 2, Web.,,,,,,.,, [1]., 5.,, [2].,,.,.,, 5, [3].,,,.,, [4], 33,.,,.,,.. 2.,, 3.., 4., 5., ,. 1.,,., 2.,. 1,,

Transcription:

JavaScript, ECMA262 5.1(June 2011) TC39 Conformance Suite Test262 Building modern JavaScript Engine YUSUKE SUZUKI, We implemented an engine that is fully compliant with ECMA262 5.1 (June 2011) and confirmed it by using Conformance Suite Test262 provided by TC39. And we optimized it. 1. ECMAScript JavaScript TC39 (Technical Committee 39) 1. ECMA262 2 5.1. V8 3, JavaScriptCore 4, SpiderMonkey 5.,,. ECMA262 5.1 lv5. ECMA262 5.1,, 2. TC39, ECMA262 Test Suite Test262 6 Cybozu Labs Youth 3 3rd grade of Department of Science and Technology, Keio University 1 http://www.ecma-international.org/memento/tc39.htm 2 http://www.ecma-international.org/ publications/standards/ecma-262.htm 3 http://code.google.com/p/v8/ 4 http://www.webkit.org/projects/javascript/ 5 https://developer.mozilla.org/en/spidermonkey 6 http://test262.ecmascript.org/. Test. Test sputniktests 7 ES5 Conformance Suite 8,,, lv5 Test Suite. Opera 11.51 Safari 5.1.1 GoogleChrome 15.0.824.120 : V8 3.5.10.23 Firefox 8.0 lv5 : 1 1. lv5, Test262 11029 11011, 99.83% pass 18 Test262, Test262 1 Test pass fail (%) Opera 11029 7276 3753 65.97 Safari 11029 10256 773 92.99 GoogleChrome 11029 10611 418 96.21 Firefox 11029 10865 164 98.51 lv5 11029 11011 18 99.83 7 http://code.google.com/p/sputniktests/ 8 http://es5conform.codeplex.com/ 171

1. 1 2 3 4, Test262 3. lv5 lv5, 3.1 NaN boxing ECMAScript. JSVal. JSVal,, JSVal 64bit 2 IEEE 754 IEEE 754 (Exp) 1 (Fraction) 0 quiet NaN, NaN NaN, NaN, boxing. LuaJIT 5 2 IEEE 754 1 https://bugs.ecmascript.org/show_bug.cgi?id=215 2 https://bugs.ecmascript.org/show_bug.cgi?id=216 3 https://bugs.ecmascript.org/show_bug.cgi?id=217 4 https://bugs.ecmascript.org/show_bug.cgi?id=218 5 http://luajit.org/, JavaScriptCore SpiderMonkey. 32bit, 32bit 32bit, int32 t boxing, JSVal 64bit 64bit 64bit., Linux, Windows OS 16bit 0, boxing. Solaris JSVal 128bit. 6 NaN 16bit 0x0000 0xFFF0. -Infinity. 16bit 1, 0x0001 0xFFF1., 0x0000, NaN 7, 16bit 0x0000,, GC lv5, BoehmGC 8 GC,. 6 https://bugzilla.mozilla.org/show_bug.cgi?id=577056 7 0xFFF1 8 http://www.hpl.hp.com/personal/hans_boehm/gc/ 172

3.2 Stack VM AST, ECMA262., VM. VM,, ECMAScript. VM ECMAScript,, ECMAScript VM, C, VM ECMAScript, finally return 3.3 ECMAScript, STACK, HEAP, DY- NAMIC, GLOBAL 4,.,.,,,,. STACK.,.,, HEAP.,, HEAP.,,, Global, Global, Global function stack() { function heap() { inner(); function global() { function with_dynamic() { var obj = {; with (obj) { function with_not_dynamic() { var obj = {; with (obj) { function eval_dynamic() { eval("var i = 20"); 3 GLOBAL. ECMAScript,,. DYNAMIC. (1) with 3 with dynamic i 173

function Point(x, y) { this.x = x; this.y = y; Point.prototype.add = function(rhs) { return new Point( this.x + rhs.x, this.y + rhs.y); var point = new Point(0, 10); 4 class with with, with trap. DYNAMIC with not dynamic i trap, (2) direct call to eval eval eval, direct call to eval., eval, eval, strict, 1,., eval, eval, 3 eval dynamic i DYNAMIC. (3) arguments arguments,. strict, arguments, HEAP. 3.4 Inline Cache Inline Cache Self 1,V8 Hidden Class 2 V8, JavaScriptCore 3. ECMAScript, prototypal, 1 http://labs.oracle.com/self/papers/pics.html 2 http://code.google.com/ intl/ja/apis/v8/design.html#prop_access 3 http://www.webkit.org/ blog/214/introducing-squirrelfish-extreme/,, ECMAScript,, ECMAScript. 4, Point x, y, add rhs Point V8 HiddenClass 4, JavaScriptCore Structure., Map Map Map. Map, Map Map, transit., Map transit,, transit Map Map Map Map., rhs.x, Map,, Map, Map, 3.5 Global ECMAScript Global Global, Global., Global ECMAScript, Global Inline Cache. 4 Map 174

lv5, Own Property. Global, [[Prototype]] Object.prototype 3.6, eval,,,,. 3.7 String Rope ECMAScript String., String Rope, lv5 Rope String. 3.8,. 3.9 RegExp V8 JavaScriptCore JSCRE, ECMA262, RegExp. 3.10 strict ECMA262 5 strict. strict, strict 3.10.1 arguments arguments strict 5 normal, arguments[0], x.,, arguments, HEAP arguments, arguments, arguments, strict arguments., strict lv5 x STACK,, function normal(x) { arguments[0] = 20; console.assert(x === 20); normal(10); function strict(x) { "use strict"; arguments[0] = 20; console.assert(x === 10); strict(10); 5 function normal() { function outer(str) { eval(str); function strict() { "use strict"; function outer(str) { eval(str); 6 strict arguments mode strict eval STACK, HEAP 3.10.2 eval strict eval, 6 normal, outer( var i = 50 ) eval i trap, i strict, 6 strict, inner i outer eval trap. strict 175

2 SunSpider (ms) lv5 55000 lv5 1830 Opera 212 Safari 185 GoogleChrome 214 Firefox 223 SpiderMonkey JIT 950 SpiderMonkey C 3657 eval 1,, i strict i, lv5 HEAP. 4., SunSpider 1.,. 2. 10, 20 5. 5.1 GC BoehmGC GC, GC,, C++ RAII Exact GC, Mark & Sweep 5.2 JIT ECMAScript JIT. JIT dispatch, V8 VM JavaScript- Core VM VM, VM, JIT, 1 http://www.webkit.org/perf/sunspider/sunspider.html Inline Cache. 5.3 RegExp JIT RegExp, RegExp VM,. 5.4 V8 API V8, ECMAScript node.js 2,, V8Monkey 3 SpiderMonkey V8 API, lv5 V8 API. 6. Test262, ECMA262 5.1, lv5. lv5 4,,,,, 1) Urs Hlzle, Craig Chambers, and David Ungar: Optimizing Dynamically-Typed Object- Oriented Programming Languages with Polymorphic Inline Caches (1991). 2) Russ Cox: Regular Expression Matching: the Virtual Machine Approach (2009). 3) Standard ECMA-262 ECMAScript Language Specification Edition 5.1: http://www.ecma-international.org/ publications/standards/ecma-262.htm. 4) V8: http://code.google.com/p/v8/. 5) WebKit: http://www.webkit.org/. 2 http://nodejs.org/ 3 https://github.com/zpao/v8monkey 4 https://github.com/constellation/iv 176