Development of C++
Started as collection of macros and library routines for C, and backward compatibility with C
Intended backward compatibility with C
Concise representation, pointer arithmetic, omission of run-time check, simple memory model, correspondence of arrays and pointers, elevation of uncompromising efficiency
Uncompromising efficiency
Store values in activation record stack rather than heap: efficiency vs. cost of compilations
C++ performs fewer run-time checks than Java