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

@article{Stroustrup2007EvolvingAL,
  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},
  year={2007}
}
  • B. Stroustrup
  • Published 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… Expand
The C++0x "Concepts" Effort
TLDR
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. Expand
The C + + 0 x “ Concepts ” Effort ( Draft )
C++0x is the working title for the revision of the ISO standard of the C++ programming language that was originally planned for release in 2009 (but that will probably appear in 2011). The largestExpand
ClangJIT: Enhancing C++ with Just-in-Time Compilation
TLDR
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. Expand
C++ Metastring Library and Its Applications
TLDR
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. Expand
Tice: A real‐time language compilable using C++ compilers
TLDR
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. Expand
Object Model Construction for Inheritance in C++ and Its Applications to Program Analysis
TLDR
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. Expand
C++ Metastring Library
C++ template metaprograms are special programs interpreted by the compiler. While regular programs recline upon usual language constructs, these metaprograms are implemented in functional approachExpand
A Principled, Complete, and Efficient Representation of C++
TLDR
How general type-based unification is key to minimal compact representation, fast type-safe traversal, and scalability in C++ is described. Expand
Dynamic algorithm selection for runtime concepts
TLDR
This paper describes one implementation of the runtime concept idiom, in the domain of the C++ standard template library (STL), and complements it with an algorithm library that considers both type and concept information to maximize performance when selecting algorithm implementations. Expand
Language Support for Programming High-Performance Code
TLDR
Sierra: an extension for C++ that facilitates portable and effective SIMD programming and AnyDSL, a framework that allows to embed a so-called domain-specific language (DSL) into a host language. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 253 REFERENCES
A history of C++: 1979–1991
TLDR
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. Expand
An overview of C++
C++ is a general purpose programming language3 designed to make programming more enjoyable for the serious programmer. Except for minor details, C++ is a superset of the C language*. C++ was designedExpand
C++ Programming Language
TLDR
Bjarne Stroustrup makes C even more accessible to those new to the language, while adding advanced information and techniques that even expert C programmers will find invaluable. Expand
Concepts: linguistic support for generic programming in C++
TLDR
To improve the support for generic programming in C++, concepts are introduced to express the syntactic and semantic behavior of types and to constrain the type parameters in a C++ template to make templates easier to use and easier to compile. Expand
Learning standard C++ as a new language
TLDR
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. Expand
Specifying C++ concepts
TLDR
This paper exposes a few weakness of the current specification of the C++ standard library and suggests a far more precise and complete specification and presents a systematic way of translating proposed concept definitions, based on use-patterns rather than function signatures, into constraint sets that can serve as convenient basis for concept checking in a compiler. Expand
A Semantic Analysis of C++ Templates
TLDR
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. Expand
A Formalism for C
TLDR
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. Expand
A rationale for semantically enhanced library languages
TLDR
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. Expand
The design and evolution of C++
TLDR
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. Expand
...
1
2
3
4
5
...