[Soot-list] Why does Java use bytecode instead of 3-address code IR like Shimple or Jimple
Patrick Lam
plam at sable.mcgill.ca
Wed Jan 23 16:53:04 EST 2019
Historical reasons, e.g.
http://web.archive.org/web/20010610045734/http://java.sun.com/nav/whatis/storyofjava.html
It really doesn't make any sense in today's context, but they just add
bytecodes rather than doing a fresh redesign of the VM.
pat
On 1/23/19 2:58 PM, Zhou, Tong wrote:
> Hi,
>
>
> 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?
>
>
> For portability, I don't see how Jimple is less portable than bytecode.
> Maybe someone can shed more lights.
>
>
> For interpretation simplicity, Jimple is also easy to interpret.
>
>
> For interoperability, supporting dynamic features might be even easier
> in Jimple-like IRs.
>
>
> For advanced compiler optimization, bytecode has to be translated to a
> Jimple or Shimple-like IR first anyway.
>
>
> 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.
>
>
> Can someone with more experience shed some light? Thanks!
>
>
> -Tong
>
>
> _______________________________________________
> Soot-list mailing list
> Soot-list at CS.McGill.CA
> https://mailman.CS.McGill.CA/mailman/listinfo/soot-list
>
More information about the Soot-list
mailing list