Algorithm specialization in generic programming: challenges of constrained generics in C++
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Towards an automatic complexity analysis for generic programs
Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming
Concepts: linguistic support for generic programming in C++
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Debugging C++ template metaprograms
Proceedings of the 5th international conference on Generative programming and component engineering
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An extended comparative study of language support for generic programming
Journal of Functional Programming
Implementation of a Finite State Machine with Active Libraries in C++
Generative and Transformational Techniques in Software Engineering II
EClean - An Embedded Functional Language
Electronic Notes in Theoretical Computer Science (ENTCS)
Reusable, generic program analyses and transformations
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Functional programming with C++ template metaprograms
CEFP'09 Proceedings of the Third summer school conference on Central European functional programming school
A language for generic programming in the large
Science of Computer Programming
JavaGI: The Interaction of Type Classes with Interfaces and Inheritance
ACM Transactions on Programming Languages and Systems (TOPLAS)
Type checking modular multiple dispatch with parametric polymorphism and multiple inheritance
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
A feature composition problem and a solution based on c++ template metaprogramming
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
SSGIP'10 Proceedings of the 2010 international spring school conference on Generic and Indexed Programming
Hi-index | 0.00 |
The past decade of software library construction has demonstrated that the discipline of generic programming is an effective approach to the design and implementation of large-scale software libraries. At the heart of generic programming is a semi-formal interface specification language for generic components. Many programming languages have features for describing interfaces, but none of them match the generic programming specification language, and none are as suitable for specifying generic components. This lack of language support impedes the current practice of generic programming. In this dissertation I present and evaluate the design of a new programming language, named G (for generic), that integrates the generic programming specification language with the type system and features of a full programming language. The design of G is based on my experiences, and those of colleagues, in the construction of generic libraries over the past decade. The design space for programming languages is large, thus this experience is vital in guiding choices among the many tradeoffs. The design of G emphasizes modularity because generic programming is inherently about composing separately developed components. In this dissertation I demonstrate that the design is implementable by constructing a compiler for G (translating to C++) and show the suitability of G for generic programming with prototypes of the Standard Template Library and the Boost Graph Library in G . I formalize the essential features of G in a small language and prove type soundness.