Twostep compiler?

A.C.T. albrecht at act-net.com
Sun Mar 21 10:32:41 EST 2004


Hi,

please just ignore me if I am getting on your nerves - I have found a 
couple of hourse time to spend on Revolution so I am busy understanding 
the concepts behind it :-)

I read that many of you encode the plain text of their scripts to hide 
them from customer's eyes. Why is the plain text included at all? Even 
ancient interpreter languages (like old VC20 basic) don't write the 
PLAIN TEXT into a file, they use TOKEN. A "print" would be a one-byte 
token. This also speeds up reading the file in (less data to read).

The question I would like to ask is, since I HOPE Revolution isn't a 
"runtime-interpreter" but a modern "two-step" compiler that creates a 
bytecode from the "human readable code", which again is executed 
internally: Why isn't the bytecode saved as the executable code for 
standalone-applications? It's very likely that this bytecode is platform 
  independant (it would be funny if it wasn't since you would have to 
compile a new runtime-executor for every platform then)...

Anyway: Saving the "original source code" inside a runtime application 
does not make much sense: It needs a lot of space (all function names, 
variables etc don't have to be stored with their "human readable" fully 
qualified names, their code references would do nicely), the application 
has to compile the code every time it is run (what for? If it has to 
compile it anyway, the pre-executable code would do nicely for the 
application and it would be less "spyable") instead of directly using 
the bytecode - and it makes the application "hackable".
I tried changing the "Transcript" code inside a "standalone application" 
to see if this is a security issue (meaning: I use a normal text editor 
that is binary safe - I am NOT using Revolution). IT IS. Changing the 
clear text code inside the application leads to the CHANGED CODE being 
executed - so it would be easy for an evil minded to put some nasty 
stuff into the application, the code to be executed is not 
checksum-protected. This would at least be a BIT more difficult if only 
the bytecode was stored in the standalone app, not the original source code.

Again: Please excuse my potentially "offending" questions. I am trying 
to understand the technical implications of using Revolution and to find 
out why some issues seem ... somewhat "complicated", where they do not 
have to be complicated :-)

Marc Albrecht
A.C.T. / Level-2
Glinder Str. 2
27432 Ebersdorf
Deutschland
Tel. (+49) (0)4765-830060
Fax. (+49) (0)4765-830064


More information about the use-livecode mailing list