Generic Programming - Programming Language Support For Genericity

Programming Language Support For Genericity

Genericity facilities have existed in high-level languages since at least the 1970s in languages such as CLU and Ada, and were subsequently adopted by many object-based and object-oriented languages, including BETA, C++, D, Eiffel, Java, and DEC's now defunct Trellis-Owl language. Implementations of generics in languages such as Java and C# are formally based on the notion of parametricity, due to John C. Reynolds.

Genericity is implemented and supported differently in various programming languages; the term "generic" has also been used differently in various programming contexts. For example, in Forth the compiler can execute code while compiling and one can create new compiler keywords and new implementations for those words on the fly. It has few words that expose the compiler behaviour and therefore naturally offers genericity capacities which, however, are not referred to as such in most Forth texts. The term has been used in functional programming, specifically in Haskell-like languages, which use a structural type system where types are always parametric and the actual code on those types is generic. These usages still serve a similar purpose of code-saving and the rendering of an abstraction.

Arrays and structs can be viewed as predefined generic types. Every usage of an array or struct type instantiates a new concrete type, or reuses a previous instantiated type. Array element types and struct element types are parameterized types, which are used to instantiate the corresponding generic type. All this is usually built-in in the compiler and the syntax differs from other generic constructs. Some extensible programming languages try to unify built-in and user defined generic types.

A broad survey of genericity mechanisms in programming languages follows. For a specific survey comparing suitability of mechanisms for generic programming, see.

Read more about this topic:  Generic Programming

Famous quotes containing the words programming, language and/or support:

    If there is a price to pay for the privilege of spending the early years of child rearing in the driver’s seat, it is our reluctance, our inability, to tolerate being demoted to the backseat. Spurred by our success in programming our children during the preschool years, we may find it difficult to forgo in later states the level of control that once afforded us so much satisfaction.
    Melinda M. Marshall (20th century)

    Had Dr. Johnson written his own life, in conformity with the opinion which he has given, that every man’s life may be best written by himself; had he employed in the preservation of his own history, that clearness of narration and elegance of language in which he has embalmed so many eminent persons, the world would probably have had the most perfect example of biography that was ever exhibited.
    James Boswell (1740–95)

    The interest in Wisdom is fading. Soon there will not be enough left to support the aphorism, even though it tries to amuse by half-mocking the Wisdom it propounds.
    Mason Cooley (b. 1927)