Javascript must be enabled to continue!
Concept-Oriented Programming
View through CrossRef
In the concept-oriented programming (CoP) (Savinov, 2005, 2007), the main idea is common to many other approaches and consists in raising the abstraction level of programming by introducing new language constructs and mechanisms. The distinguishing feature of CoP is that it aims at automating the way objects are represented and accessed (ORA). More specifically, one of the main concerns in CoP is modeling the format of object references and the procedures executed during object access. For example, if we need to retrieve the current balance stored in a bank account object then we make the following simple method call: account.getBalance(). In object-oriented programming (OOP), it results in an instantaneous execution of the target method because this variable contains a primitive reference which is supposed to provide direct access to the represented object. In CoP, it is not so and everything depends on the format of the reference used to represent this account object. References in CoP have an arbitrary custom format defined by the programmer and hence objects are represented indirectly using abstract identifiers from a virtual address space. In this case, the real procedure executed during access depends on what is stored in the variable account. In particular, it may well happen that the account object is stored on a remote computer in another organization. Then, its reference can be rather complex and include such fields as bankName and accNo (Figure 1). Object access to such an indirectly represented account will involve many intermediate operations like security checks, transaction management, network packet transfer and operations with persistent storage. However, all these intermediate actions will be executed behind the scenes so that we have the illusion of instantaneous action. Then the programmer is still able to use the target objects as if they were local directly accessible objects, at the same time having a possibility to inject any intermediate code responsible for object representation and access (ORA). References in CoP are as important as objects because both have arbitrary structure and behavior associated with them. If OOP deals with objects then CoP deals with both objects and references. The main role of references consists in representing objects, that is, they contain some data that makes it possible to access the object. Thus, references are intermediate elements which are activated each time the represented object is about to be accessed. For example, each time we read or write a field, or call a method, the object reference intercepts these requests and injects its own actions. Thus, any object access can trigger a rather complex sequence of intermediate actions which are executed behind the scenes. In large programs this hidden functionality associated with references can account for a great deal or even most of the overall complexity. The main task of CoP in this sense consists in providing adequate means for effectively describing this type of hidden intermediate functionality which has a cross-cutting nature. OOP does not provide any facilities for describing custom references and all objects are represented and accessed in one and the same way. CoP fills this gap and allows the programmer to effectively separate both concerns (Dijkstra, 1976): explicitly used business logic of objects and intermediate functions executed implicitly during object access.
Title: Concept-Oriented Programming
Description:
In the concept-oriented programming (CoP) (Savinov, 2005, 2007), the main idea is common to many other approaches and consists in raising the abstraction level of programming by introducing new language constructs and mechanisms.
The distinguishing feature of CoP is that it aims at automating the way objects are represented and accessed (ORA).
More specifically, one of the main concerns in CoP is modeling the format of object references and the procedures executed during object access.
For example, if we need to retrieve the current balance stored in a bank account object then we make the following simple method call: account.
getBalance().
In object-oriented programming (OOP), it results in an instantaneous execution of the target method because this variable contains a primitive reference which is supposed to provide direct access to the represented object.
In CoP, it is not so and everything depends on the format of the reference used to represent this account object.
References in CoP have an arbitrary custom format defined by the programmer and hence objects are represented indirectly using abstract identifiers from a virtual address space.
In this case, the real procedure executed during access depends on what is stored in the variable account.
In particular, it may well happen that the account object is stored on a remote computer in another organization.
Then, its reference can be rather complex and include such fields as bankName and accNo (Figure 1).
Object access to such an indirectly represented account will involve many intermediate operations like security checks, transaction management, network packet transfer and operations with persistent storage.
However, all these intermediate actions will be executed behind the scenes so that we have the illusion of instantaneous action.
Then the programmer is still able to use the target objects as if they were local directly accessible objects, at the same time having a possibility to inject any intermediate code responsible for object representation and access (ORA).
References in CoP are as important as objects because both have arbitrary structure and behavior associated with them.
If OOP deals with objects then CoP deals with both objects and references.
The main role of references consists in representing objects, that is, they contain some data that makes it possible to access the object.
Thus, references are intermediate elements which are activated each time the represented object is about to be accessed.
For example, each time we read or write a field, or call a method, the object reference intercepts these requests and injects its own actions.
Thus, any object access can trigger a rather complex sequence of intermediate actions which are executed behind the scenes.
In large programs this hidden functionality associated with references can account for a great deal or even most of the overall complexity.
The main task of CoP in this sense consists in providing adequate means for effectively describing this type of hidden intermediate functionality which has a cross-cutting nature.
OOP does not provide any facilities for describing custom references and all objects are represented and accessed in one and the same way.
CoP fills this gap and allows the programmer to effectively separate both concerns (Dijkstra, 1976): explicitly used business logic of objects and intermediate functions executed implicitly during object access.
Related Results
Programming model abstractions for optimizing I/O intensive applications
Programming model abstractions for optimizing I/O intensive applications
This thesis contributes from the perspective of task-based programming models to the efforts of optimizing I/O intensive applications. Throughout this thesis, we propose programmin...
Introducing object-oriented programming into the computer science curriculum
Introducing object-oriented programming into the computer science curriculum
In recent years, object-oriented programming languages and object-oriented program design have become increasingly popular. Dialects of many popular programming languages are now a...
Incorporating programming into mathematics education : How using programming shapes upper-secondary students’ mathematical understanding
Incorporating programming into mathematics education : How using programming shapes upper-secondary students’ mathematical understanding
This thesis comprises two studies investigating upper-secondary students’ use of programming as a mathematical tool. It aims to examine both the intertwined relationship between st...
TEACHING MAIN CONCEPTS OF OBJECT-ORIENTED PROGRAMMING USING GREENFOOT INTEGRATED DEVELOPMENT ENVIRONMENT
TEACHING MAIN CONCEPTS OF OBJECT-ORIENTED PROGRAMMING USING GREENFOOT INTEGRATED DEVELOPMENT ENVIRONMENT
In this paper, teaching object-oriented programming at school will be considered using the visual programming environment Greenfoot. Greenfoot is a Java Interactive Development Env...
Norwegian mathematics teachers’ conceptions of programming in mathematics education
Norwegian mathematics teachers’ conceptions of programming in mathematics education
As programming is being integrated into mathematics education in Norway, it is increasingly important to understand how teachers perceive and implement programming. This study inve...
Basic and Advance: Phython Programming
Basic and Advance: Phython Programming
"This book will introduce you to the python programming language. It's aimed at beginning programmers, but even if you have written programs before and just want to add python to y...
Speeding-Up Physical Systems Modeling with Object-Oriented Programming
Speeding-Up Physical Systems Modeling with Object-Oriented Programming
<div class="section abstract"><div class="htmlview paragraph">Object-oriented programing has been around for more than 50 years and has changed the way we develop compu...
WEB PROGRAMMING
WEB PROGRAMMING
"Web Programming" is a comprehensive book that provides a detailed overview of various aspects of web programming. The book is co-authored by Dr. Chitra Ravi and Dr. Mohan Kumar S,...

