Peter Newman 9 January 2005 ---------------------- Unified Programming Language
The language parsers are what parse and run the program scripts.
Obviously, each language (Perl, Tcl, C, etc) or variant thereof has its own parser/interpreter.
One defect with current versions of Tcl and Perl, is that the parser/interpreter parses and then immediately executes the source code. I know that's not totally true; there's an intermediate byte-code step in between. But in effect it's what happens.
The problem with this is that it makes writing compilers, syntax checkers and language convertors etc. very difficult. Because every such tool not only has to compile and syntax check (or whatever it does), it first has to parse the source code - interpreting it exactly as the real parser does.
This is by no means an easy thing to do.
So UPL divides the whole parsing and execution thing up. There is:-
And then there are some optional things:-
PWQ 10 Jan 05 I would suggest a Tree Executioner to eliminate the need to have a bytecode compiler.
DKF: What bytecodes do you define? Should there be a mechanism for modules to define new bytecodes? If that's the case, how do you stop collisions between bytecodes defined by different modules when you transport a saved bytecode sequence from one system to another? LV And how do you construct application safety, so that virii don't generate dangerous bytecodes which trash a system?