Evolving a language in and for the real world: C++ 1991-2006

  title={Evolving a language in and for the real world: C++ 1991-2006},
  author={Bjarne Stroustrup},
  journal={Proceedings of the third ACM SIGPLAN conference on History of programming languages},
  • B. Stroustrup
  • Published 9 June 2007
  • Computer Science
  • Proceedings of the third ACM SIGPLAN conference on History of programming languages
This paper outlines the history of the C++ programming language from the early days of its ISO standardization (1991), through the 1998 ISO standard, to the later stages of the C++0x revision of that standard (2006). The emphasis is on the ideals, constraints, programming techniques, and people that shaped the language, rather than the minutiae of language features. Among the major themes are the emergence of generic programming and the STL (the C++ standard library's algorithms and containers… 
The C++0x "Concepts" Effort
The article describes the design space for constrained parametric polymorphism, or what is colloquially know as constrained generics, and describes the technical challenges and debates within the "concepts" effort in the years 2003 to 2009.
The C + + 0 x “ Concepts ” Effort ( Draft )
This article is my account of the technical challenges and debates within the “concepts” effort in the years 2003 to 2009 within the C++0x revision.
ClangJIT: Enhancing C++ with Just-in-Time Compilation
It is demonstrated that just-in-time- compilation-based dynamic specialization can be integrated into applications, often requiring minimal changes (or no changes) to the applications themselves, providing significant performance improvements, programmer-productivity improvements, and de- creased compilation time.
C++ Metastring Library and Its Applications
A C++ template metaprogram library that provides the common string operations, like creating sub-strings, concatenation, replace, and similar is created, and both the performance improvements and extended functionality achieved in the applications of the Metastring library are presented.
Tice: A real‐time language compilable using C++ compilers
Tice is described, which has been shaped as a C++ active library with full compatibility with existing C++ code, which can be integrated easily into new Tice‐based projects and the enforcement of Tice syntax and semantics can be made by a standard C++ compiler, forgoing the need for new tools.
Object Model Construction for Inheritance in C++ and Its Applications to Program Analysis
This paper presents an approach where static analysis is performed by lowering the original C++ program into a semantically equivalent C program, and implemented in a framework for C++ called CILpp that is analogous to the popular C Intermediate Language (CIL) framework.
C++ Metastring Library
A prototype implementation of metastring based on boost::mpl::string that provides the common string operations (substring, concatenation, replace, etc.) is created.
A Principled, Complete, and Efficient Representation of C++
How general type-based unification is key to minimal compact representation, fast type-safe traversal, and scalability in C++ is described.
Comparison of C++ and Java in Implementing Introductory Programming Algorithms
  • M. Naveed
  • Computer Science
    Quaid-e-Awam University Research Journal of Engineering Science & Technology
  • 2021
C++ is more suitable than Java for the implementation of introductory programming algorithms and reasonably more suitable for introductory programming courses, according to the difficulty, effort, time, and delivered bugs of programs with Halstead software metrics.
Dynamic algorithm selection for runtime concepts


A history of C++: 1979–1991
The evolution of C++ is traced from C with Classes to the current ANSI and ISO standards work and the explosion of use, interest, commercial activity, compilers, tools, environments, and libraries.
An overview of C++
The main influences of the design of C++ were Simula67’ and Algo1684 and the features added to C to achieve this.
Learning standard C++ as a new language
This paper compares a few examples of simple C++ programs written in a modern style using the standard library to traditional C-style solutions and argues for a use of C++ as a higher-level language that relies on abstraction to provide elegance without loss of efficiency compared to lower-level styles.
A Semantic Analysis of C++ Templates
This paper presents the first formal account of C++ templates including some of the more complex aspects, such as template partial specialization, and reveals two interesting issues in the C++ Standard: the first is a problem with member instantiation and the second concerns the generation of unnecessary template specializations.
A Formalism for C
This paper develops a general formalism for describing the C++ programming language, and regular enough to cope with proposed extensions for C++0x that affect its type system.
Why C++ is not just an object-oriented programming language
C++ directly supports a variety of programming styles. In this, C ++ deliberately differs from languages designed to support a single way of writing programs. This paper briefly presents key
A rationale for semantically enhanced library languages
The rationale for a novel approach to providing expressive, teachable, maintainable, and cost-effective special-purpose languages is presented and practical problems with various popular approaches to providing special- Purpose features, such as compiler options and preprocessors are discussed.
The design and evolution of C++
The Prehistory of C++ and the C++ Language Design Rules, 1985-1993, and Looking Ahead, which describes the future of the language and its structure, are published.
Fundamental Concepts in Programming Languages
  • C. Strachey
  • Computer Science
    High. Order Symb. Comput.
  • 2000
This paper forms the substance of a course of lectures given at the International Summer School in Computer Programming at Copenhagen in August, 1967. The lectures were originally given from notes
C++ Standard Template Library
This book is the definitive reference on C++ programming using STL, as it was written by the team that created the library, and includes background, a review of the standard, using the component, implementing the component.