|
ScriptLanguage
The index page for the user script language that jarvar provides.
Featured Raison d'EtreAlthough the jarvar platform independence library (PIL) can be used to design and write programs for a number of platforms based on Java, jarvar itself, offers a programming language to users of those programs to adapt or customize them. This is the purpose of ScriptLanguage. To an extent ScriptLanguage offers interactive development upon a device, and the code so developed can be used as part of a jarvar program. Scripting is a right, and is implemented using the Scripting classes. Only one instance of ScriptLanguage may run in any application. An Overview of InternalsScriptLanguage (SL) is a semi-compiled list threaded language, which is a hybrid of FORTH and LISP, with some ideas from other languages. It is designed to remain unconditionally stable (never needing a reset of the VirtualMachine), and to have a low memory footprint with small programs. This requires a linked list style of stack, and security preventing overwriting critical words in the language lexicon. The choice of FORTH as a language basis may seem strange, but when it comes to small code size, type simplicity and an incrementally compiled interactive nature, it has a high ticking of the right boxes. Using the Java class model as a basis for the inner workings, has the advantages of hiding some quite complex logic, providing some powerful abstract data type methods, and running on many platforms. A considered approach using a few Java classes, can provide enough hidden typing so as to prevent code instability. Exporting the whole object oriented paradigm into the 4GL as a default coding strategy is a mistake for the size of the binary and the instruction manual. Don't mistake this for a dislike of big binaries with big function, just that more function for the memory is preferred. "Abstraction begets type conversion, which begets code size." - Simon Jackson. | |