Generics: evolution in programming languages, semantics and implementation, proposed new features for Java

Session Type: 
Extended [55 minutes]

Schedule info


Generics (or parametrized types) is a fundamental but relatively old concept now revived, due to development and wide use of Java and C#. Generics are types with parameters to indicate the elements type and other attributes (e.g., maximal size) of some collection. Generics are intended to develop type-safe general algorithms of processing collections (lists, stacks, trees, etc.) non-dependent (or dependent in some limited, explicitly specified ways) on collection element types. To our knowledge, generics (formerly named "parametrized types", "modals", "tempates", etc.) first appeared in CLU in 1974 and were invented by Professor Barbara Liskov from MIT. The term "generics" was coined by the authors of Ada (in late 1970s). Since that time, generics have experienced great evolution in a variety of languages (CLU, ALPHARD, Ada, C++, Java, C#, F#, Visual Prolog, etc.). The talk covers generics features and their specifics in many languages, specifics of their semantics and implementation, the approach to generics in Java, its advangates and shortcomings, a proposal to add new generics features to Java. The talk is illustrated by lots of examples and demos.
One of the authors (prof. V. Safonov) is a well known expert in Java, compilers and AOP; an experienced university teacher of Java; worked with Sun on Java technology in 1996-2002 and beyond; the author of "Introduction to Java Technology", Science publishers, 2002, a Russian textbook popular at many universities, and its new edition just published in November 2011 by Lambert Academic Publishing, Saarbrucken, Germany:
JCP member; the implementer of generics in mid-1980s as part of CLU implementation for Russian supercomputers; the author of "Trustworthy Compilers", Wiley, 2010, and "Using aspect-oriented programming for trustworthy software development", Wiley, 2008.