C++ is multi paradigmatic programming language. It was developed by Bjarne Stroustrup and other programmers in Bell Labs AT&T as expansion of the C language. C++ supports wider scale of paradigms, programming styles, among which belongs procedural programming, object-oriented programming and generic programming. It can’t be said, that it is only object-oriented language. It is one of the most spread programming languages.

The language was being created for the needs of system programming and built-in software with limited sources and for the needs of big systems.

The emphasis was placed on:

  • Efficiency
  • Effectiveness
  • Flexibility of usage

C++ is also useful in many other ways. Its main strengths are:

  • usage in software infrastructure and applications with limited sources, including desktop applications, servers (e.g. we can use apps in e-commerce, on web searchers or SQL servers)
  • usage for the applications that are critical to run, e. g. the telephone switches and cosmical probes.

C++ is compiled language, which has available implementations on many platforms. Many suppliers offer C++ compilators. E. g. Free Software Foundation, Microsoft, Intel or IBM.

C++ is standardized by International organization for normalization – ISO. Newest standardized version was verified and released in December 2017 as ISO/IEC 14882:2017 by the ISO organization. Informally it is called C++17. Programming language C++ was originally standardized in 1998 as ISO/IEC 14882:1998. This version was then expanded by the standards of the versions C++03, C++11 a C++14. Current version C++17 overtook its predecessors because of its new features and expanded standard library. Another planned standardized version is C++20. Before the standardization in 1998, the C++ was developed by Bjarne Stroustrup and Bell Labs from 1979.

The original intention was to develop language as expansion of language C and that way creating effective and flexible language, which would have been similar to C and which would have been able to provide advanced features simultaneously.

Many other programming languages have inspired by the C++ language, including C#, D, Java or new versions of C.

Philosophy of the C++

During its development, the C++ language was built-up on these principles:

  • It must be driven by real problems and its features must be immediately usable for the real world’s programs.
  • Every feature must be implemented in understandable way how to do it.
  • Programmers should have the option to choose their own programming style and this style should be fully supported by the C++ language.
  • Allow useful feature is more important than to prevent every possible bad usage of C++.
  • C++ should offer options how to organize programs to rightly defined individual parts and offer options for combining individually developed parts.
  • No implicit violation of the system of the types (but it allows explicit violation, which is explicitly required by programmer)
  • Types created by the user must have the same support and efficiency as the built-in types.
  • Unused features should not have negative impact on the created executable parts of the code.
  • There should not be used another language under the C++ language (except for assembler).
  • C++ should function side to side with the other existing programming languages, instead of developing own separate and noncompatible developmental environment.
  • If the programmer’s intention is not clear, it allows to him to specify it manually.