Bytecode
"Bytecode is a sort of intermediate
code that is more abstract than machine code. It is often treated as a binary file containing an executable program much like an
object module, which is a binary file containing a machine code produced by
compilers."
Wikipedia
The
client compiles the
script, temporarily stores the
text script and the script together in the disk
cache, and uploads them together when the
sim is ready.
LSL is a language like
Java in that they both compile into bytecode which can is interpreted (
LSL is not compiled to machine code). LSL bytecode is high-level and does no optimization at compile time. LSL bytecode can be decompiled back into the original script with the only loss being the
variable and
user function names.
LL is moving to
Mono for scripting so, in the future, LSL will be compiled to
CIL, assembled into
CLR assemblies and run in a Mono virtual machine (VM) in the simulator. (This also opens up the possibility of using other languages that target the CLR, such as C#, VB.NET,
Python, and
many others, though LL has yet to announce any plans to allow this.) Babbage
Linden is doing the work of replacing the LSL VM with Mono; read about it in his
blog. According to
a post from April 2005, LSL scripts run
300 to 500 times faster in the Mono VM!
LSL |
Script |
Memory |
Glossary