Kind-C++ has been a on-going project since Fall, 1992. In the project, we introduce a new level of entities, kinds, to C++ 1 . In this paper, we show that by using kinds, C++ templates are more convenient for software reuse, more consistent with the type system of the language, and structurally clearer. Our idea is based on a four-level hierarchy of entities: objects, classes, types, and kinds, where a kind is, informally, a set of types that share a certain set of common properties. We show that templates with type parameters restricted to kinds provide a powerful tool for the reuse of high-level programs in a plug-and-play fashion. We also compare our constructs with "similar" constructs in other programming languages. Keywor...
Object-oriented programming is often characterized as encapsulation plus polymorphism plus inheritan...
Design patterns are distilled from many real systems to catalog common programming practice. We have...
Generic programming is an indispensable ingredient of modern programming languages. In the C++ prog...
Generic programming has emerged as an important technique for the development of highly reusable and...
C++ is a multi-paradigm language. The two main paradigms in C++ are object-oriented programming and ...
The object-oriented type theory for non-specialists is discussed. It is shown that how parametric po...
Abstract. Templates are a powerful but poorly understood feature of the C++ language. Their syntax r...
Generic programming has emerged as an important technique for the development of highly reusable and...
This paper explores how certain ideas in object oriented languages have their correspondents in func...
Our objective is to understand the notion of type in programming languages, present a model of typed...
This article presents an in-depth study of the close connection between Haskell type classes and C++...
Generic programming consists of increasing the expressiveness of programs by allowing a wider variet...
As C++ developers, we talk a lot about member functions (methods) of a class. We talk about member f...
() *+Types in programming A type is a collection of computational entities that share some common p...
Software Engineering progresses as improvements are made in languages and methodologies. Significant...
Object-oriented programming is often characterized as encapsulation plus polymorphism plus inheritan...
Design patterns are distilled from many real systems to catalog common programming practice. We have...
Generic programming is an indispensable ingredient of modern programming languages. In the C++ prog...
Generic programming has emerged as an important technique for the development of highly reusable and...
C++ is a multi-paradigm language. The two main paradigms in C++ are object-oriented programming and ...
The object-oriented type theory for non-specialists is discussed. It is shown that how parametric po...
Abstract. Templates are a powerful but poorly understood feature of the C++ language. Their syntax r...
Generic programming has emerged as an important technique for the development of highly reusable and...
This paper explores how certain ideas in object oriented languages have their correspondents in func...
Our objective is to understand the notion of type in programming languages, present a model of typed...
This article presents an in-depth study of the close connection between Haskell type classes and C++...
Generic programming consists of increasing the expressiveness of programs by allowing a wider variet...
As C++ developers, we talk a lot about member functions (methods) of a class. We talk about member f...
() *+Types in programming A type is a collection of computational entities that share some common p...
Software Engineering progresses as improvements are made in languages and methodologies. Significant...
Object-oriented programming is often characterized as encapsulation plus polymorphism plus inheritan...
Design patterns are distilled from many real systems to catalog common programming practice. We have...
Generic programming is an indispensable ingredient of modern programming languages. In the C++ prog...