{"id":156,"date":"2011-02-22T10:49:59","date_gmt":"2011-02-22T18:49:59","guid":{"rendered":"http:\/\/www.wirfs-brock.com\/allen"},"modified":"2015-04-27T22:33:14","modified_gmt":"2015-04-28T06:33:14","slug":"jove","status":"publish","type":"page","link":"https:\/\/wirfs-brock.com\/allen\/things\/jove","title":{"rendered":"JOVE"},"content":{"rendered":"<p><a href=\"http:\/\/www.wirfs-brock.com\/allen\/wp-content\/uploads\/2011\/02\/jovetitle.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-158\" title=\"jovetitle\" src=\"http:\/\/www.wirfs-brock.com\/allen\/wp-content\/uploads\/2011\/02\/jovetitle-300x221.png\" alt=\"\" width=\"300\" height=\"221\" srcset=\"https:\/\/wirfs-brock.com\/allen\/wp-content\/uploads\/2011\/02\/jovetitle-300x221.png 300w, https:\/\/wirfs-brock.com\/allen\/wp-content\/uploads\/2011\/02\/jovetitle-1024x754.png 1024w, https:\/\/wirfs-brock.com\/allen\/wp-content\/uploads\/2011\/02\/jovetitle.png 1141w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a>JOVE was an whole-program optimizing native code compiler for Java development by Instantiations Inc between 1998 and 2002.\u00a0 I was the overall architect and team leader of the development.\u00a0 JOVE compiled programs from Java bytecodes into native Windows x86 exe file. It applied very\u00a0 aggressive optimization techniques. It was able to compile AWT and Swing based GUI applications as well as non-GUI based applications.\u00a0 It was written in Java and was self-compiling.<\/p>\n<p>Technically, JOVE was quite successful but it was a business flop.\u00a0 Instantiations was never able to find a business model that would support its ongoing development.<\/p>\n<p>The design of JOVE drew heavily upon the team&#8217;s prior experience building high performance Smalltalk virtual machines and garbage collectors. We also tried to apply the latest research results relating to optimizing object-oriented languages.\u00a0 JOVE internally used a SSA based representation of the whole program and performed whole program class hierarchy analysis.\u00a0 At runtime it used selector row displacement method dispatch\u00a0 and Vitek constant time type inclusion testing.\u00a0 It used a multi-generational GC with thread specific heaps.<\/p>\n<p>Team members who made significant contributions to JOVE included:<\/p>\n<ul>\n<li>Pat Caudill<\/li>\n<li>Steve Messick<\/li>\n<li>Carl McConnell<\/li>\n<li>Brian Wilkerson<\/li>\n<li>Juantia Ewing<\/li>\n<li>Tim O&#8217;Connor<\/li>\n<\/ul>\n<h2>Some JOVE Documents<\/h2>\n<p><a title=\"http:\/\/www.wirfs-brock.com\/allen\/files\/jove\/jove-jaoo.pdf\" href=\"http:\/\/www.wirfs-brock.com\/allen\/files\/jove\/jove-jaoo.pdf\">JOVE Overview Presentation<\/a> (PDF).\u00a0 This is an overview presentation covering JOVE that was presentated at the JAOO conference in 2000.<\/p>\n<p><a title=\"http:\/\/www.wirfs-brock.com\/allen\/files\/jove\/joveismm00.pdf\" href=\"http:\/\/www.wirfs-brock.com\/allen\/files\/jove\/joveismm00.pdf\" target=\"_self\">JOVE GC Presentation<\/a> (PDF).\u00a0 This a a &#8220;lightening talk&#8221; overview of the JOVE garbage collector presented at the ISMM 2000<\/p>\n<p><a title=\"http:\/\/www.wirfs-brock.com\/allen\/files\/jove\/joveruntime.pdf\" href=\"http:\/\/www.wirfs-brock.com\/allen\/files\/jove\/joveruntime.pdf\" target=\"_blank\">JOVE Runtime Design<\/a> (PDF). This is the original design document describing the architecture of the JOVE runtime environment including the GC.<\/p>\n<p><a title=\"http:\/\/www.wirfs-brock.com\/allen\/files\/jove\/JOVmOpt.pdf\" href=\"http:\/\/www.wirfs-brock.com\/allen\/files\/jove\/JOVmOpt.pdf\" target=\"_blank\">JOVE Optimization Techniques<\/a> (PDF). This original document is an overview of the optimization techniques used by JOVE.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>JOVE was an whole-program optimizing native code compiler for Java development by Instantiations Inc between 1998 and 2002.\u00a0 I was the overall architect and team leader of the development.\u00a0 JOVE compiled programs from Java bytecodes into native Windows x86 exe file. It applied very\u00a0 aggressive optimization techniques. It was able to compile AWT and Swing [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":63,"menu_order":40,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/pages\/156"}],"collection":[{"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/comments?post=156"}],"version-history":[{"count":9,"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/pages\/156\/revisions"}],"predecessor-version":[{"id":594,"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/pages\/156\/revisions\/594"}],"up":[{"embeddable":true,"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/pages\/63"}],"wp:attachment":[{"href":"https:\/\/wirfs-brock.com\/allen\/wp-json\/wp\/v2\/media?parent=156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}