On Feb 2, 12:47 am, Phil Carmody <
[email protected]>
On 02/01/2010 06:14 AM, Nobody wrote:
On Sun, 31 Jan 2010 20:40:26 +1100, Borax Man wrote:
All code in all languages end up as machine code in the end.
Consider an interpreter [...] Just because in order to complete the
execution you require the machine code of the interpreter does not
mean that the source programs have become machine code.
You use an interesting expression; "...have become...". What does it
mean exactly, for a program to "become" something else? Is it
transformed by means of its own workings? Is it manipulated by forces
beyond its limited rules of comprehension; the Programmer, or the
Compiler, or the Interpreter? Surely, for the Interpreter to transmute
the Programmer's word into actions, certain "machine code" has to be
executed, does it not? One could say, with much certainty, that the
original program has "become" a much different series of instructions,
mandated now not only by the Programmer, but also the Interpreter (or
Virtual Machine, or whatever we decide to call It, at this point), and
they would be right, because the loose definition of the expression
"...have become..." with regard to programs certainly leaves a lot of
room for bullshit. Also note, that one could posit the following:
given a program in an interpreted language, A, and its interpreter, B,
which when executing A will produce a series of instructions, C, it is
practically possible to duplicate the semantics of program A ran on
interpreter B by executing the series C and that alone - I am not
trying to advocate this position (at first sight it looks a little
problematic too, but I haven't had coffee yet), but I could see how
someone would say that A "has become" C.
what if I never compile or interpret the program but "execute" it
using pencil and paper?
What about the code i never compile, does that end up as machine code?