<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0">Hi,</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">I've been working on a number of Java program analysis/Java JIT compiler related work for sometime, but I still can't figure out a basic question. Why did Java choose to use stack machine based bytecode as its IR instead
 of quad IR like Jimple? </p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">For portability, I don't see how Jimple is less portable than bytecode. Maybe someone can shed more lights.</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">For interpretation simplicity, Jimple is also easy to interpret.</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">For interoperability, supporting dynamic features might be even easier in Jimple-like IRs.</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">For advanced compiler optimization, bytecode has to be translated to a Jimple or Shimple-like IR first anyway.</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">Finally, if using bytecode is no longer a good decision, it's totally possible to redesign Java distributable IR to be 3-address code. This hasn't discussed so I assume bytecode still has its reasons to be used.  </p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">Can someone with more experience shed some light? Thanks!</p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0">-Tong</p>
</div>
</body>
</html>