Interesting idea

Pedro Szekely ([email protected])
Tue, 02 May 1995 11:47:16 PDT

Hi,

While discussing run-time issues the following idea came up, and I would like
to hear if people think this is reasonable.

One of the problems that people using Mastermind might have is that if their
application is developed in C++ without CORBA, it becomes difficult to
prototype the interface. Here is the problem.

- If the developer defines a task or a presentation that invokes an
application method, how can Mastermind invoke that method without recompiling
Mastermind?

The solution is that the interpreted language of Mastermind needs to be
extended so that it can invoke application routines. Everyone who has an
interpreted language faces this problem.

Extending the interpreted language typically involves writing C or C++ code to
extend the language interpreter to be able to call the C++ routines of an
application. This C++ code is pretty repetitive, painful and time-consuming
to write.

It appears that based on the Application Model, Mastermind can automatically
generate the source code that extends the interpred language. It looks
possible to generate the source code that would extend either the TCL
interpreter or the Python interpreter.

So, a developer could load an application model into Mastermind, run the
"Extend Interpreter" command to generate the appropriate C++ source code, and
then recompile and relink Mastermind with the generated code. Once that is
done, the developer can play with the task and presentation models, linking it
to the application model, without having to recompile. This would be a big
win because people spend most of the time with interface issues rather than
with the application model.

Acutally, the "Extend Interpreter" command is a useful facility in itself:
developers could use it to bind an interpreted language into their application
for whatever use.

Pedro Szekely
USC/ISI, 4676 Admiralty Way, Marina del Rey, CA 90292
Phone: 310/822-1511, Fax: 310/823-6714
URL: http://www.isi.edu/isd/szekely.html