V8 javascript engineã«ã¤ã㦠ãã¼ãµã¼ãASTãIgnition/TurboFanãæé©åå¨ãç

V8 javascript engineã«ã¤ã㦠ãã¼ãµã¼ãASTãIgnition/TurboFanãæé©åå¨ãç
ã¢ããªã±ã¼ã·ã§ã³ãã¤ããªã¤ã³ã¿ãã§ã¼ã¹ï¼ABI, è±: Application Binary Interfaceï¼ã¨ã¯ãã¢ããªã±ã¼ã·ã§ã³ï¼ã¦ã¼ã¶ï¼ããã°ã©ã ã¨ã·ã¹ãã ï¼ãªãã¬ã¼ãã£ã³ã°ã·ã¹ãã ãã©ã¤ãã©ãªï¼ã¨ã®éã®ããã¤ããªã¬ãã«ã®ã¤ã³ã¿ãã§ã¼ã¹ã§ãããã¾ããã¢ããªã±ã¼ã·ã§ã³ç¸äºéãããããã®é¨åï¼ãã©ã°ã¤ã³çï¼ã¨ã®ãã¤ããªã¤ã³ã¿ãã§ã¼ã¹ãããã ABIã¯ã¢ããªã±ã¼ã·ã§ã³ããã°ã©ãã³ã°ã¤ã³ã¿ãã§ã¼ã¹ (API) ã¨ã¯ç°ãªããAPIã¯ã½ã¼ã¹ã³ã¼ãã¨ã©ã¤ãã©ãªéã®ã¤ã³ã¿ãã§ã¼ã¹ãå®ç¾©ãããã®ã§ãããåãAPIããµãã¼ãããã·ã¹ãã éã§ã¯åãã½ã¼ã¹ã³ã¼ããã³ã³ãã¤ã«ãã¦å©ç¨ã§ãããä¸æ¹ãABIã¯ãªãã¸ã§ã¯ãã³ã¼ãã¬ãã«ã®ã¤ã³ã¿ãã§ã¼ã¹ã§ãããäºæABIããµãã¼ãããã·ã¹ãã éã§ã¯åãå®è¡ãã¡ã¤ã«ãå¤æ´ç¡ãã§åä½ããããã¨ãã§ããã ABIã«ã¯ã以ä¸ã®ãããªå®ç¾©ãå«ã¾ããã CPU - å½ä»¤ã»ãã
æ¥æã«ããå¤ä¼ã¿ãã¤ããªå ¥é 2012 第1æ¥ç®ãã«åå ãã¦ãã¾ããã è²ã ã¨åå¿è 丸åºããªè³ªåããã¾ãããã詳ããæ¹ãä¸å¯§ã«æãã¦ãã ãã£ããããã§ãçåã解決ããªããé²ããã¨ãã§ãã¾ããããããã¨ããããã¾ãã åå¿ã®ããã«ãå¦ç¿ãããã¨ãã¡ã¢ãã¾ãã ãã£ãã㨠Javaã§ãhelloãã¨ã³ã³ã½ã¼ã«åºåããHello.javaãæ¸ãã ã³ã³ãã¤ã«ãããï¼javac Hello.javaï¼ å®è¡ãã¦ãæ£ããåããã¨ã確ããããï¼java Helloï¼ javapãããããï¼javap -v Hello.classï¼ ãã¤ããªã¨ãã£ã¿ã§Hello.classãéãã¦ãåºåãèªãã Javaã®ãã¤ãã³ã¼ããèªãããã®ãJavaä»®æ³ãã·ã³ä»æ§ãã®åç §æ¹æ³ãå¦ç¿ãã¾ããã ã¾ããã¹ã¿ããã®æ¹ãJavaScriptã§å®è£ ãããã¹ã¿ãã¯ãã·ã³ã®ãã¢ãè¦ãã¦ããã£ãããå ç®ã¨ä¹ç®ãæ··ãã£ãè¨ç®ãã©ã®
[2013/12/25 追è¨] ãã® DynamicPatcher ãããã«æ¹è¯ããVisual Studio ã®ã¢ãã¤ã³ã¨ãã¦å®è£ ãã Alcantarea ããªãªã¼ã¹ãã¾ãã DynamicObjLoader ãæ¹è¯ããå®ç¨ã«èããããªå®è¡æ C++ ã³ã¼ãç·¨éæ©è½ãå®è£ ãã¾ããã C++ ã³ã¼ããç·¨éãã¦ããããªã¢ã«ã¿ã¤ã ã«åæ ããããã¨ãã§ãã¾ãã DynamicPatcher https://github.com/i-saint/DynamicPatcher (bin) DynamicObjLoader ã®æç¹ã§ä¸å¿ã¯åçæ©è½ãå®ç¾ãã¦ããã®ã§ãããæ´æ°ãããé¢æ°ãäºåã«ãã¯ãã§å ãå¿ è¦ããã£ãããvirtual é¢æ°ãæ㤠class ã¯ã·ãªã¢ã©ã¤ãºãå¿ è¦ã ã£ããã¨ãéç¨ä¸è²ã é¢åãªç¹ãããã¾ããã ä»åã¯ãã®ã¸ãã大ããæ¹è¯ããã¦ãã¾ãã ã»åæºåãªãã«æ¢åã®ã»ã¼å ¨ã¦ã®é¢æ°ã
åæ¸ã ã馴æã¿ãhello worldã®ã½ã¼ã¹ã class Hello { public static void main(String[] args) { System.out.println("hello world"); } } ãã®ã³ã¼ãã¯ã³ã³ãã¤ã«ãããã¨ããããªãã¤ãã³ã¼ãã«ãªãã¾ãã ca fe ba be 00 00 00 32 00 22 07 00 02 01 00 05 48 65 6c 6c 6f 07 00 04 01 00 10 6a 61 76 61 2f 6c 61 6e 67 2f 4f 62 6a 65 63 74 01 00 06 3c 69 6e 69 74 3e 01 00 03 28 29 56 01 00 04 43 6f 64 65 0a 00 03 00 09 0c 00 05 00 06 01 00 0f 4c 69 6e 65 4e
ã©ã³ãã³ã°
ãç¥ãã
ã©ã³ãã³ã°
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}