History of Fundamentals of C++

  • It was developed at AT&T Bell Laboratories USA in the early 1979s by Danish computer scientist Bjarne Stroustrup when doing work for his Ph.D. thesis.
  • Its initial name was C with classes, but later on, in 1983, it was renamed C++.

Introduction of C++

  • C++ is considered an intermediate (middle)-level language, as it comprises a combination of both high-level and low-level language features.
  • C++ is an extension of C Programming language.
  • It is a deviation from traditional procedural languages like C.

Definition of C++

  • C++ is one of the most popular general-purpose, object-oriented (partial)programming languages that is used in the development of system software such as Microsoft Windows and Application Software such as device drivers, embedded software, high-performance servers, higher-level applications with graphics libraries, applications to communicate with network devices, operating systems, and client applications.
  • C++ language is an extension of C language and supports classes, inheritance, function overloading, and operator overloading which were not supported by C language. 

Features of C++

  • C++ is a case-sensitive language, i.e. the letter A and a, are distinct in C++ object-oriented programming language.
  • The object-oriented feature in C++ helps develop large programs with clarity, and extensibility and easy to maintain the software after sale to customers.
  • It follows the object-oriented programming (OOP) approach which is quite suitable for managing large and complex programs. An object-oriented feature combines the data to its function or code in such a way that access to data is allowed only through its function or code.
  • C++ helps map the real-world problem properly.
  • C++ has replaced the C programming language and is the basic building block of current programming languages such as Java, C#, VB.Net, etc.
  • The common/popular extension name of C++ is .cpp.

C++ Language Standards

  • C++ is standardized by the International Organization for Standardization (ISO), with the latest standard version ratified and published by ISO in December 2017 as ISO/IEC 14882:2017 (informally known as C++17).
  • The current C++17 standard supersedes these with new features and an enlarged standard library.
  • The C++ programming language was initially standardized in 1998 as ISO/IEC 14882:1998, which was then amended by the C++03C++11, and C++14 standards.
  •  C++20 is the next planned standard, keeping with the current trend of a new version every three years.
  • Year C++ Standard Informal name
    1998 ISO/IEC 14882:1998 C++98
    2003 ISO/IEC 14882:2003 C++03
    2011 ISO/IEC 14882:2011 C++11 
    2014 ISO/IEC 14882:2014 C++14 
    2017 ISO/IEC 14882:2017 C++17 
    2020 to be determined C++20 

C++ Compilers

  • A compiler is a computer program (or set of instructions) that transforms source code written in a programming language (the source language) into another computer language (the target language, often having a binary form known as object code).
  • compiler translates the code written in one language to some other language without changing the meaning of the program.
  • Most C++ compilers of different companies are present in embedded form in certain frameworks with software development tools and libraries. These frameworks, environments, and libraries can be most helpful.
  • When looking for C++ on the web, we find that much of the information is “hidden” under various product names. Here, we have listed some popular C++ implementations simply by the name of their provider, ignoring marketing labels.
  • Some latest important C++ Compilers and Editors/IDEs are –
Eclipse, Code::Blocks, GNAT Programming Studio, Visual Studio Code, CodeLite, NetBeans 8, Qt Creator, Sublime Text,  Dev C++,  C++ Builder, Anjuta, CLion, MonoDevelop, Linx, Turbo c++, CLion, Oracle Developer Studio, Borland C++, Kdevelop, Xcode, Atom, Geany, Microsoft Visual C++, Microsoft Visual Studio Express, Anjuta, GNAT Programming Studio, Mono Develop, Sharp Develop, CodeWarrier, Watcom C/C++, wxDev C++, AppleDeveloper Tools etc. 
  • Some popular list of compilers that can be downloaded for free –
    • Apple C++/Xcode – It also comes with OS X on the developer tools CD.
    • Bloodshed Dev-C++ – A GCC-based (Mingw) IDE.
    • Clang C++ – A relatively very active development associated with the analysis and code generation framework, LLVM.
    • Cygwin (GNU C++)
    • Mentor Graphics – Lite edition. Sourcery CodeBench.
    • MINGW – “Minimalist GNU for Windows”. Another GCC version for Windows includes a free (non-GPL) w32api.
    • GNU CC source
    • IBM C++ for IBM Power, System Z, Bluegene, and Cell.
    • Intel C++ and many supporting tools
    • Microsoft Visual C++.
    • Oracle C++.
  • Some compilers that require payment (some allow free downloads for trial periods):

    • Embarcadero C++.
    • Edison Design Group C++ Front End – used by many C++ compiler suppliers.
    • Green Hills C++ for many embedded systems platforms.
    • HP C++.
    • Intel C++ for Windows, Linux, and some embedded systems.
    • Mentor Graphics Sourcery CodeBench An extensive “Workbench” for many embedded systems platforms.
    • Microsoft C++.
    • Paradigm C++, for x86 embedded systems.
    • The Portland Group C++ (parallelization and GPUs).
    • WindRiver’s Diab C++ is used in many embedded systems.

 C++ Standard Libraries

  • The C++ Standard Library can be categorized into two parts −
    • The C++ Standard Function Library 

      • This library consists of general-purpose, stand-alone functions that are not part of any class.
      • The function library is inherited from C. Standard C++ Library incorporates all the Standard C libraries also, with small additions and changes to support type safety.
      • The C++ standard library provides macros, type definitions, and functions for tasks such as string handling, mathematical computations, input/output processing, memory management, and several other operating system services.
      • The C++ Standard Library is largely a superset of the C Standard Library (adjusted slightly to fit into C++).
      • The standard function library is further divided into the following categories −
        • I/O
        • String and character handling
        • Mathematical
        • Time, date, and localization
        • Dynamic allocation
        • Miscellaneous
      • In the C++ programming language, the C++ Standard Library is a collection of classes and functions, which are written in the core language and part of the C++ ISO Standard itself.
      • The C++ Standard Library provides several generic containers, functions to utilize and manipulate these containers, function objects, generic strings and streams (including interactive and file I/O), support for some language features, and functions for everyday tasks such as finding the square root of a number. 
      • The C++ Standard Library also incorporates 18 headers of the ISO C90 C standard library ending with “.h”, but their use is deprecated. Features of the C++ Standard Library are declared within the std namespace.
      • A noteworthy feature of the C++ Standard Library is that it not only specifies the syntax and semantics of generic algorithms but also places requirements on their performance.
  • The Standard Template/Object-Oriented Class Library 
    • This is a collection of classes and associated functions. The Standard Template Library (STL) is different from the C++ Standard Library.
    • STL is a set of C++ template classes to provide common programming data structures and functions such as lists, stacks, arrays, etc. It is a library of container classes, algorithms, and iterators.
    • The C++ Standard Library is based upon conventions introduced by the Standard Template Library (STL), and has been influenced by research in generic programming and developers of the STL such as Alexander Stepanov and Meng Lee. Although the C++ Standard Library and the STL share many features, neither is a strict superset of the other.

                     

Click this link to see the Lists of Header Files and Associated Functions with Description

Loading


0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.