5,765 research outputs found
Comparative Study of the Function Overloading and Function Overriding Using C++
In the Object-Oriented Programming Systems (OOPS), these two concepts namely
function overloading and function overriding are a bit confusing to the
programmers. In this article this confusion is tried to be removed. Both of
these are the concepts which come under the polymorphism (poly means many and
morph mean forms). In the article the comparison is done in between them. For
the new programmers and the learners, it is important to understand them. The
function overloading [1] is achieved at the time of the compile and the
function overriding is achieved at the run time. The function overriding always
takes place in inheritance, but the function overloading can also take place
without inheritance.Comment: 4 pages, 5 figures, 1 tabl
NOODLE++: a 3 Dimensional Net-based Object-orientated Development Model
HKU CS Tech Report TR-95-04Object-oriented analysis and design methodologies are considered as the most popular software development methods for the 1990s. A common drawback, however, is that they have been developed informally. There is no theoretical framework enabling us to define precisely the object-oriented concepts
involved, to solve concurrency problems, and to verify the correctness of the implementation. We propose a 3-dimensional net structure behind object-oriented software development. This structure consolidates the concepts of classes, inheritance, overloading and message passing through a single model. Inheritance and overloading can be unified with message passing in a 3-dimensional
representation, but are physically differentiable by occupying the vertical and horizontal planes,respectively, of the model.
Furthermore, the formal model can be mapped to various object-oriented analysis and design notations. The theoretical framework can thus be adopted for systems validation and verification for existing methodologies. The liveness and consistencies of objects can be verified, and inheritance and interaction coupling can be identified and checked.preprintThis research is supported in part by a grant of the Research Grants Council
Compiling knowledge-based systems from KEE to Ada
The dominant technology for developing AI applications is to work in a multi-mechanism, integrated, knowledge-based system (KBS) development environment. Unfortunately, systems developed in such environments are inappropriate for delivering many applications - most importantly, they carry the baggage of the entire Lisp environment and are not written in conventional languages. One resolution of this problem would be to compile applications from complex environments to conventional languages. Here the first efforts to develop a system for compiling KBS developed in KEE to Ada (trademark). This system is called KATYDID, for KEE/Ada Translation Yields Development Into Delivery. KATYDID includes early prototypes of a run-time KEE core (object-structure) library module for Ada, and translation mechanisms for knowledge structures, rules, and Lisp code to Ada. Using these tools, part of a simple expert system was compiled (not quite automatically) to run in a purely Ada environment. This experience has given us various insights on Ada as an artificial intelligence programming language, potential solutions of some of the engineering difficulties encountered in early work, and inspiration on future system development
The C++0x "Concepts" Effort
C++0x is the working title for the revision of the ISO standard of the C++
programming language that was originally planned for release in 2009 but that
was delayed to 2011. The largest language extension in C++0x was "concepts",
that is, a collection of features for constraining template parameters. In
September of 2008, the C++ standards committee voted the concepts extension
into C++0x, but then in July of 2009, the committee voted the concepts
extension back out of C++0x.
This article is my account of the technical challenges and debates within the
"concepts" effort in the years 2003 to 2009. To provide some background, the
article also describes the design space for constrained parametric
polymorphism, or what is colloquially know as constrained generics. While this
article is meant to be generally accessible, the writing is aimed toward
readers with background in functional programming and programming language
theory. This article grew out of a lecture at the Spring School on Generic and
Indexed Programming at the University of Oxford, March 2010
- …