The programmed application can be translated (compiled) in the machine code during the production phase. This form of application is optimal in terms of performance and scope of functionality. However, it can only run on the receiver device for which it has been compiled.
A virtual machine is a simulated operating system. It must be implemented on all receiver devices. However, from the perspective of the application, the various receiver devices then present a homogenous platform.
After programming, the iTV application is translated into a generally applicable intermediate code, which is then transferred and executed on the virtual machine.
The virtual machine offers the complete scope of functionality.
The iTV middleware OpenTV offers a proprietary virtual machine for its applications, which is written using the programming language C for example. With the Java system, the virtual machine is an integral component part.
These software components execute programmed applications in scripting languages and markup languages.
The functional scope is limited.