It isn’t clear how this paper relates to the journal in which it appears. Parallel programming does not appear in this 20-page paper before page 16, where it is discussed for a little over a page. Moreover, the abstract does not even mention it. Thus, it is not easy to understand the purpose of this paper.
A short section about genericity in programming languages introduces the term “concept” for denoting a set of requirements on a type. The next section, which considers syntactic concepts, occupies more than one-third of the paper. However, it is not clear whether this section describes existing ways of expressing genericity or suggests innovations.
The next section, which is slightly shorter, deals with semantic concepts and performance requirements. It presents a static checker for C++ programs and an optimizer that relies on rewrite rules based on the concepts. A subsection deals with proving the correctness of generic algorithms, and suggests the use of the Athena language.
The final section and the conclusion suggest the usefulness of developing a new programming language unifying the notions of syntactic, semantic, and performance requirements into a single, coherent syntax. The sources in the bibliography are ordered according to their place in the text, which makes it difficult to use.