From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: f43e6,12f4d07c572005e3 X-Google-Attributes: gidf43e6,public X-Google-Thread: 103376,12f4d07c572005e3 X-Google-Attributes: gid103376,public X-Google-Thread: 10db24,12f4d07c572005e3 X-Google-Attributes: gid10db24,public X-Google-Thread: ff6c8,12f4d07c572005e3 X-Google-Attributes: gidff6c8,public X-Google-Thread: 1108a1,12f4d07c572005e3 X-Google-Attributes: gid1108a1,public From: dewar@cs.nyu.edu (Robert Dewar) Subject: Re: Ada News Brief - 96-05-24.txt [1/1] Date: 1996/06/01 Message-ID: #1/1 X-Deja-AN: 157932074 references: <4o56db$p66@ns1.sw-eng.falls-church.va.us> organization: Courant Institute of Mathematical Sciences newsgroups: comp.lang.ada,comp.sw.components,comp.object,comp.software-eng,comp.edu Date: 1996-06-01T00:00:00+00:00 List-Id: I find the claim that JBC is easier to reverse engineer than machine code unsupportable from a technical point of view. JBC is just machine code for a virtual machine. It is true this is a higher level machine code, which makes a difference, but that difference can be in either direction. Sometimes the encoding of stuff at a high level can be harder to disentangle. For example, access types in an Ada source program get translated to Java classes. Is it really true that this makes algorithms that at a conceptual level use pointers easier to understand by reverse engineering -- I think not. At least it is now clear what Richard is concerned with (the mention of reverse engineering was not in his original note), but it is also pretty clear that this his opinion is borrowed from others rather than based on technical analysis, and I suspect that the opinion, as stated in the trade press, may also be based on a general theory that interpretors are easier to reverse engineer. I am unconvinced, though to be fair, you really would have to try doing some reverse engineering to be sure. I think what you would find out is that some programs are far easier than others to reverse engineer, and these fundamental differences (having to do with how involved the algorithms are, and how extensively the code is optimized, etc.) will be much more significant than any minor difference caused by different machine models. Finally, it is important to emphasize that this has *nothing at all* to do with the Java language, but rather with the specific delivery methods, i.e Richard's comments about reverse engineering apply to Ada or any other language converted to JBC, and do not apply to Java programs that are compiled into hard machine code.