Architecture for Object-Oriented Programming Languages
Source: Vienna University of Technology
Object Oriented Programming (OOP) is a program paradigm that uses objects-data structures consisting of data files and methods together with their interactions to design applications and computer programs. Programming techniques may include features such as data abstraction, encapsulation, modularity, polymorphism and inheritance. Object Oriented (OO) languages, such as Java and C#, are the dominant languages for desktop and server programming. This paper shows the overheads of object-oriented operations, such as virtual method dispatch and field access, in the context of an embedded processor for real-time systems. Java, as a popular example of an OO language, uses just-in-time compilation on the target to achieve an acceptable performance and still provides the platform independent class files. The Java Virtual Machine (JVM) in an embedded system is implemented as an interpreter. The JVM specification defines byte codes for OO instructions. These instructions fall into four categories - object and array creation, method invocation, field access, array access (are related to either an objects or a class). In OOP each object is capable of receiving messages, processing data and sending messages to other objects. Each object can be viewed as an independent machine with a distinct role or responsibility. This paper shows to enable an OO oriented programming style in embedded systems, where computing resources are usually restricted and they propose processor architecture with support of OO operations.