Fundamentals of C/C++

The programming world is never the same again ever since the development of Object-Oriented Programming Languages. The whole story changed, ushering in new ways of coding complex programs and systems with much ease and fun.

c++ Tutorial

There are many OOP languages in existence and many are still going to come into existence. Object-oriented programming (OOP) is a programming paradigm that represents the concept of “Objects” that have data fields (attributes that describe the object) and associated procedures known as methods.

Objects, which are usually instances of classes, are used to interact with one another to design applications and computer programs. C++, Objective-C, Smalltalk, Delphi, Java, Javascript, C#, Perl, Python, Ruby and PHP are examples of object-oriented programming languages. An object has both state (data) and behavior (code).

#include <iostream.h>

#include <stdlib.h>

int main ()

{  cout <<"Hello  world! My first C++ code"<<; }

(C++ syntax displaying “Hello world! My first C++ code”)

The formal programming concept of objects was introduced in the 1960s in Simula 67, a major revision of Simula I, a programming language designed for discrete event simulation, created by Ole-Johan Dahl and Kristen Nygaard of the Norwegian Computing Center in Oslo.

Brief History of C/C++

C Programming Language

In computing, C is a general-purpose programming language initially developed by Dennis Ritchie between 1969 and 1973 at AT&T Bell Labs. C has facilities for structured programming (Imperative programming) and allows lexical variable scope and recursion, while a static type system prevents many unintended operations. Its design provides /constructs that map efficiently to typical machine instructions, and therefore, it has found lasting use in applications that had formerly been coded in assembly language, most notably system software like the Unix computer operating system.

C++ Programming Language

C++ (pronounced cee plus plus) is a general purpose programming language. It has imperative, object-oriented and generic programming features, while also providing the facilities for low level memory manipulation. It is designed with a bias for systems programming (e.g. embedded systems, operating system kernels), with performance, efficiency and flexibility of use as its design requirements. C++ has also been found useful in many other contexts, including desktop applications, servers (e.g. e-commerce, web search, SQL), performance critical applications (e.g. telephone switches, space probes) and entertainment software, such as video games. C/C++ are both compiled languages.

Imperative Programming: Imperative programming is focused on describing how a program operates. In computer science terminology, imperative programming is a programming paradigm that describes computation in terms of statements that change a program state. In much the same way that imperative mood in natural languages expresses commands to take action, imperative programs define sequences of commands for the computer to perform.

Object-oriented Programming: Object-oriented programming attempts to provide a model for programming based on objects. Object-oriented programming integrates code and data using the concept of an “object”. An object is an abstract data type with the addition of polymorphism and inheritance. An object has both state (data) and behavior (code).

Generic Programming: Generic programming is a style of computer programming in which algorithms are written in terms of types to-be-specified-later that are then instantiated when needed for specific types provided as parameters. This approach, pioneered by ML in 1973, permits writing common functions or types that differ only in the set of types on which they operate when used, thus reducing duplication.

Importance of C/C++

C/C++ are both very powerful programming languages due to their closeness to the computer hardware. Both of them have been in existence for over three decades and are still very much in use today. C/C++ are evolving and competing pretty good with other OOP languages and they have edge over other languages in the sense that they are:

S/NImportance of CImportance of C++
1C has proved very useful in running applications coded in Assembly language (better replacement for assembler in most task)Multi-purpose or General-purpose programming language (C++ can function both as a low-level language and a high-level language)
2Very efficient in low-level memory manipulationVery efficient in low-level memory manipulation
3very efficient in designing Embedded systemsvery efficient in designing Embedded systems
4very versatile and flexible, that makes it suitable for system applicationsvery good in designing and developing Gaming applications
5efficient in designing system programming such as Operating System (OS) kernels.used in the design of Servers applications

Their closeness to the core machine hardware give them the power in designing software and applications that are very fast, robust and efficient. C++ is refereed to as a Middle-Level Language by some programmers due to the fact that it is in between Assembly language and High-Level language

High-level language


Middle-level language C++)


Assembly language


Machine language

This doesn’t make C++ lower or inferior, rather make the language powerful and efficient in interacting directly with the basic machine hardware and low level manipulation. C++ combine both elements of High-level language with the functionalism of Assembler.

Both languages have witnessed several developments over the years, these developments enhanced them both giving them more power to control.


Both C/C++ are standardized by the two most prominent standards organizations ANSI and ISO.

The two organizations are set up to specify standards to help organizations ensure that they meet the needs of customers and other stakeholders while meeting statutory and regulatory requirements related to products.

C/C++ Implementations

The major implementations of the two compilers are given below.

C implementations: MicroSoft Visual C (MSVC), Borland C, Watcom C, GCC etc.

C++ Implementations:  Microsoft Visual C++, Borland C++ builder, Delphi C++, LLVM/Clang, Intel C++ compiler, GNU Compiler Collection etc.

These two languages are to me the best programming languages a person who wants to become a professional programmer should learn first. Many General purpose and sophisticated programming languages like Java, Python, C#, PHP etc., to mention a few are influenced by either C or C++ and their Syntax (the structure or format of coding a particular language) are close to that of C and C++. C/C++ gives programmer the fundamental knowledge of how the hardware works and how to interact with the system memory directly.

Leave a Reply

Your email address will not be published.