Jonathan De Vita: What Is C++?

Jonathan De Vita completed a BSc (Hons) degree at Lancaster University, studying computer science. As part of his studies, he focused on artificial intelligence and coding using specialist programming languages. This article will look at C++, a cross-platform programming language that is used to develop high-performance applications.

Developed by Bjarne Stroustrup, C++ is an extension of the C computer language that provides programmers with a high degree of control over memory and system resources. Having been updated four times in 2011, 2014, 2017 and 2020 to C++11, C++14, C++17 and C++20 respectively, C++ is one of the most popular programming languages globally and is found in operating systems, embedded systems and Graphical User Interfaces.

C++ is an object-orientated computer programming language that provides programs with a clear structure, allowing codes to be used to help drive down development costs. A portable programming language, C++ can be used to develop apps capable of being adapted to multiple platforms. Fun and easy to learn, C++ is close to Java, C and C#, making it easy for computer programmers to switch to C++ and vice versa. Developed as an extension of C, C++ shares virtually the same syntax, the main differences between them being that while C++ supports classes and objects, C does not.

C++ was first released in 1985 and has been expanded significantly over the years. Since 1997, the programming language has incorporated functional, generic and object-oriented features in addition to facilities for low-level memory manipulation for microcomputers and other systems, including the Linux and Windows operating systems. It is generally implemented as a compiled language, with many vendors providing C++ compilers, including Microsoft, Intel, Free Software Foundation, Embarcadero, LLVM, IBM and Oracle.

Designed with systems programming and embedded resource-constrained large systems and software in mind, C++ was created with a key focus on efficiency, performance, and flexibility of use. Over the years, it has been applied in a variety of different contexts, its main strengths lying in software infrastructure and resource-constrained applications, including servers, desktop applications, and video games. It also confers significant advantages in performance-critical applications such as space probes and telephone switches.

Bjarne Stroustrup, the Danish Computer Scientist who developed C++, began working on a predecessor to C++ in 1979. The concept of creating a new programming language was inspired by Bjarne Stroustrup’s experience in programming for his PhD thesis. Having discovered that Simula had features that could potentially be very useful in developing large software, Stroustrup found that the language was too slow for practical use. BCPL, meanwhile, was fast, by too low-level to be appropriate for large software development.

While working at AT&T Bell Labs, Bjarne Stroustrop began analysing the UNIX kernel with respect to distributed computing. Drawing on his PhD research, Stroustrup attempted to enhance the C programming language by incorporating Simula-like features. C was selected due to its versatility, being fast, portable and widely used. In addition to C and Simula, other programming languages that influenced C++ include Ada, ML, CLU and ALGOL.

Throughout the lifespan of C++, the programming language’s development and evolution has been guided by a specific set of principles, including:

  • Every feature should be implementable
  • It must be driven by actual problems
  • Its features must be immediately useful in real world programs
  • Programmers should be able to pick their own programming style, which should be fully supported by C++
  • C++ should provide facilities for organising computer programs into separate defined parts, as well as providing facilities for combining separately developed parts
  • Allowing useful features should take precedence over preventing every possible misuse of C++
  • User-created types should have the same support and performance as built-in types

C++ is standardised by the International Organization for Standardization (ISO). The latest standard version of C++ was ratified and published by ISO in December 2020 and is informally known as C++20.