A. Savinov, Concept as a Generalization of Class and Principles of the Concept-Oriented Programming, Computer Science Journal of Moldova 13(3), 292-335, 2005 |
||
Previous section |
Contents |
|
Concept as a Generalization of Class and Principles of the Concept-Oriented Programming
Alexandr Savinov
http://conceptoriented.org
Abstract. In the paper we describe a new construct which is referred to as concept and a new concept-oriented approach to programming. Concept generalizes conventional classes and consists of two parts: an objects class and a reference class. Each concept has a parent concept specified via inclusion relation. Instances of reference class are passed by value and are intended to represent instances of child object classes. The main role of concepts consists in indirecting object representation and access. In concept-oriented programming it is assumed that a system consists of (i) conventional target business methods (BMs), and (ii) hidden representation and access (RA) methods. If conventional classes are used to describe only BMs then concepts allow the programmer to describe both types of functionality including its hidden intermediate functions which are automatically executed when objects are being accessed.
In the paper we introduced a new programming construct called concept. Concept is defined as a pair of one object class and one reference class having their own fields and methods (possibly with the same name). Concepts are organized into a hierarchy using inclusion relation with the main purpose to specify how objects have to be represented and accessed. The main idea is that an object is represented by its parent reference which replaces a system default reference. An approach to programming based on this new construct is called concept-oriented programming. This approach assumes that a system consists of two types of functionality: target BMs and intermediate RA functionality. Accordingly, it is important to be able to implement both types as an integral part of one program using one programming language. This new approach to programming can be applied to very different complex problems such as access control and interception, security and object protection, persistence, debugging, tracing and logging, memory and life-cycle management, containers, remote objects, distributed computing, protocol stacks and many others.
A. Savinov, Concept as a Generalization of Class and Principles of the Concept-Oriented Programming, Computer Science Journal of Moldova 13(3), 292-335, 2005 |
||
Previous section |
Contents |
|