Safe Languages :-)
simon at unisolve.com.au
Sun Apr 4 18:43:58 CDT 2004
> I am writing a module in our Portal which allows the execution of code
> from people we do not trust - students.
Including my 14 year old son, who now has a MyInternet account at school and
whose code you must not trust under any circumstances ;-)
> The idea is to provide a module that allows languages to be programmed
> with very simple inputs and outputs.
> A simple example is - Enter some Logo Code and the output is a GIF.
Sounds very cool.
> I can use Safe (perldoc Safe) to do perl code with some level of
> safety, but what I am really looking for is better educational
> Anyway - Obviously what ever I choose they are mostly limited in that
> they are restricted to general programming with only a very basic input
> and output (at this stage a single line of input and plain text output
> - or generation of a graphic).
My 10c worth is that Safe is a clever package, and it (along with Opcode) will
let you construct an environment in which only a subset of perl is allowed.
It seems to me that building a mini-language out of an existing language
has to be easier than buiding one from scratch.
Having said that, you could always implement the kind of language you're
describing with Parse::RecDescent
A third option, what about parrot? I read last week that they now have a
working tcl interpreter implemented against the parrot machine. You could
target a new mini language like logo at parrot. Perhaps someone is already
Unisolve Pty Ltd - Melbourne, Australia
+61 3 9568 2005
More information about the Melbourne-pm