next up previous
Next: 2.3 Toward a common Up: 2.2 Attempts to achieve Previous: 2.2.2 Declarative Specification

2.2.3 Virtual machines

Figure 3: Model design based on virtual machine
Image 601-3

The idea of a virtual machine is to build an environment that can actually run the model [RFBLO01]. The environment provides modelers with a set of operations or functions, quite like the instruction set of machine language.

In a virtual machine, like the Java Virtual Machine (JVM), every instruction has its exact meaning, and in such a way the semantics of models is rigorously defined. The virtual machine also enables early analysis and verification. Code generation becomes unnecessary.

Built up as an Integrated Development Environment (IDE), the modelling tool is thus a design environment and a virtual machine at the same time. Models can be modified, and the modification is immediately reflected in the execution. Furthermore, the modification can be done at run time. This makes the model very flexible as shown in Figure 3.

Classes and associations, conventionally considered static, are now placed in a dynamic context and represented as objects in the environment. So, in the environment, every part of the model can be modified.

There still remains the question: Is the virtual machine universal? From the implementation point of view, virtual machines increase productivity and shorten time-to-market. But this idea itself has nothing to do with the semantics. Consider interpreted languages such as Visual Basic, Python and Perl. Which should be chosen as the internal representation of a model? Or should we create a new language? If none of these languages satisfies the requirement, is action semantics (AS) a good choice? If so, the solution is more suitably regarded as an action-semantics-based solution.


next up previous
Next: 2.3 Toward a common Up: 2.2 Attempts to achieve Previous: 2.2.2 Declarative Specification
Thomas Feng 2003-04-18