{"id":122,"date":"2013-09-09T17:43:22","date_gmt":"2013-09-10T02:43:22","guid":{"rendered":"http:\/\/prg.is.titech.ac.jp\/?page_id=122"},"modified":"2020-01-18T13:31:14","modified_gmt":"2020-01-18T22:31:14","slug":"bytecode-specialization","status":"publish","type":"page","link":"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/runtime-compilation\/bytecode-specialization\/","title":{"rendered":"(English) BCS: BYTECODE SPECIALIZATION"},"content":{"rendered":"<p>\u5897\u539f\u82f1\u5f66\" target=\"_blank\" rel=\"noopener\">Hidehiko Masuhara<\/a> and Akinori Yonezawa,<br \/>\n&#8220;A Portable Approach to Dynamic Optimization in Run-time Specialization&#8221;,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/strong>In Journal of New Generation Computing, Volume 20, Number 1, November 2001. (28 pages)<br \/>\n\u25cbA4 size Postscript file(289kbytes),<br \/>\n\u25cbPDF file(221kbytes)<br \/>\n\u25cf<a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/people\/masuhara\/\" data-internallinksmanager029f6b8e52c=\"285\" title=\"\u5897\u539f\u82f1\u5f66\" target=\"_blank\" rel=\"noopener\">Hidehiko Masuhara<\/a> and Akinori Yonezawa,<br \/>\n&#8220;Run-time Bytecode Specialization: A Portable Approach to Generating Optimized Specialized Code&#8221;,<br \/>\nIn Olivier Danvy and Andrzej Filinski eds., Second Symposium on Programs as Data Objects (PADO II), Aarhus, Denmark, LNCS 2053,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u3000\u3000\u3000\u00a0\u00a0 \u3000pp.138&#8211;154, May 2001. (17 pages)<br \/>\n\u25cbA4 size Postscript file(231kbytes),<br \/>\n\u25cbPDF file(155kbytes)<br \/>\n\u25cf<a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/people\/masuhara\/\" data-internallinksmanager029f6b8e52c=\"285\" title=\"\u5897\u539f\u82f1\u5f66\" target=\"_blank\" rel=\"noopener\">Hidehiko Masuhara<\/a> and Akinori Yonezawa, Generating Optimized Residual Code in Run-Time Specialization,<br \/>\nIn Technical Report on Partial Evaluation and Program Transformation Day (PE Day&#8217;99), Nov., 1999. 20 pages.<br \/>\n\u25cbA4 size Postscript file (232k bytes)<br \/>\n\u25cbPDF file (173k bytes)<br \/>\n\u25cf<a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/people\/masuhara\/\" data-internallinksmanager029f6b8e52c=\"285\" title=\"\u5897\u539f\u82f1\u5f66\" target=\"_blank\" rel=\"noopener\">Hidehiko Masuhara<\/a> and Akinori Yonezawa, Run-time Program Specialization in Java Bytecode, in Proceedings of the JSSST SIGOOC 1999 \u3000\u3000 Workshop on Systems for Programming and Applications (SPA&#8217;99), March 1999, in Japanese.<br \/>\n\u25cbgzipped PostScript file<br \/>\n\u25cbPDF file<\/p>\n<p>Brief introduction to BCS<\/p>\n<p>Run-time specialization (RTS) is a technique that efficiently generates specialized programs with respect to run-time values. For efficiently generating specialized programs, RTS constructs compiled native code fragments called templates at compile-time, and generates a specialized program by merely copying the templates. The generated programs are, on the other hand, less efficient, since the technique prevents many optimizations.<\/p>\n<p>We propose bytecode specialization (BCS), which generates programs in a bytecode language, and then translates the generated bytecode into native code by using Just-In-Time (JIT) compilers. The advantages of BCS are: (1) efficient specialization processes that are similar to RTS, (2) efficient specialized programs thanks to the optimizations of JIT compilers, and (3) independence of source-to-bytecode compilers and of bytecode-to-native compilers thanks to our proposed binding-time analysis, which directly handles bytecode programs.<\/p>\n<p>Thus far, we have implemented a BCS system for a Java Virtual Machine subset. Our micro-benchmark shows that BCS with JIT compiler generates a specialized program that runs more than 3-fold faster than the one specialized by traditional RTS techniques, and that our specialization process takes only 610 microseconds.<\/p>\n<p><a href=\"https:\/\/prg.is.titech.ac.jp\/ja\/people\/masuhara\/\" data-internallinksmanager029f6b8e52c=\"285\" title=\"\u5897\u539f\u82f1\u5f66\" target=\"_blank\" rel=\"noopener\">Hidehiko Masuhara<\/a>. June 10, 1999.<\/p>","protected":false},"excerpt":{"rendered":"<p>\u5897\u539f\u82f1\u5f66&#8221; target=&#8221;_blank&#8221; rel=&#8221;noopener&#8221;>Hidehiko Masuhara and Akinori Yonezawa, &#8220;A Portable Approach to Dyn&hellip; <a class=\"continue\" href=\"https:\/\/prg.is.titech.ac.jp\/ja\/projects\/runtime-compilation\/bytecode-specialization\/\">Continue Reading (English) BCS: BYTECODE SPECIALIZATION<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":2579,"menu_order":800,"comment_status":"closed","ping_status":"closed","template":"","meta":{"nf_dc_page":"","footnotes":""},"class_list":["post-122","page","type-page","status-publish","hentry","radius"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/prg.is.titech.ac.jp\/ja\/wp-json\/wp\/v2\/pages\/122","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prg.is.titech.ac.jp\/ja\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/prg.is.titech.ac.jp\/ja\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/prg.is.titech.ac.jp\/ja\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/prg.is.titech.ac.jp\/ja\/wp-json\/wp\/v2\/comments?post=122"}],"version-history":[{"count":9,"href":"https:\/\/prg.is.titech.ac.jp\/ja\/wp-json\/wp\/v2\/pages\/122\/revisions"}],"predecessor-version":[{"id":190,"href":"https:\/\/prg.is.titech.ac.jp\/ja\/wp-json\/wp\/v2\/pages\/122\/revisions\/190"}],"up":[{"embeddable":true,"href":"https:\/\/prg.is.titech.ac.jp\/ja\/wp-json\/wp\/v2\/pages\/2579"}],"wp:attachment":[{"href":"https:\/\/prg.is.titech.ac.jp\/ja\/wp-json\/wp\/v2\/media?parent=122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}