Wie bereits von vielen angemerkt, gibt die Tatsache, dass Sie Zugang zur Quelle haben, Ihnen nicht das Recht, damit zu tun, was Sie wollen.
Sie fragen
Werden nicht fast alle Skripte interpretiert? Das heißt, braucht das Gerät, das das Skript interpretiert, nicht per Definition die "Quelle"?
Nein. Selbst in einem Interpreter durchläuft die Quelle mehrere Transformationen, bevor sie interpretiert wird. Die Form, die schließlich interpretiert wird, ist oft eine Folge von Anweisungen für eine stapel- oder registerbasierte virtuelle Maschine; solche Anweisungen werden gewöhnlich "Bytecode" genannt. Es ist auch möglich, interne Anweisungen zu interpretieren Bäume relativ effizient. Dolmetscher, die in erster Linie für Lehrzwecke konzipiert sind, können sogar noch weniger effiziente Systeme verwenden.
Einige Implementierungen erlauben es, die interne Form auf die Festplatte zu schreiben, von der sie dann wieder gelesen und interpretiert werden kann. Die vermeintlichen Vorteile sind in der Regel
-
Programme werden schneller geladen und ausgeführt, weil die ersten Verarbeitungsschritte einmal durchgeführt werden, bevor das interne Formular geschrieben wird, und dann immer wieder verwendet werden.
-
Das interne Formular schützt den Quellcode vor neugierigen Blicken.
Der Hauptnachteil besteht darin, dass eine typische interne Form in der Regel weniger portabel ist als Quellcode, etwa aufgrund von Unterschieden in der Byte-Reihenfolge oder der Wortgröße.
Im speziellen Fall von Lua ist die luac
Compiler schreibt den Bytecode auf die Festplatte. Er wird nur selten verwendet, da die Bytecodes nicht portabel sind und der Compiler bereits recht schnell ist. Im speziellen Fall von World of Warcraft sind sie sogar Ermutigung zur Verwendung von Lua, um die Schnittstelle zu ändern Sie wollen, dass jeder den Code mit anderen teilt, und halten ihn daher quelloffen. WoW hat über 10 Millionen Abonnenten, und mindestens 5000 Leute haben Code beigesteuert. Das ist also ein halbes Prozent der Nutzerbasis, die etwas Code beigesteuert haben, was mir Anlass zu frohen Gedanken über die Zukunft der Programmierung als Beruf gibt.