History of C++


History of C++

              In 1960s different languages were used for different applications, for example, FORTRAN for Engineering Application, COBOL for Commercial Application and so on. Later on an international committee was set up that developed a single language called ALGOL 60, Which can be used for all application. But this language was too abstract and too general to be accepted. This lead to the development of a new language named CPL ( Combined Programming Language), which had so many features and was hard to learn and implement. After this Martin Richards BCPL (Basic Combined Programming Language) and Ken Thompson’s B language were also not accepted because they were too specific to be implemented. Finally, in 1972, Ritchie made a successful attempt at AT&T’s Bell Laboratories of USA to develop a new language called C language by inheriting the features of both the BCPL and B languages. In order to define the C language, a committee was set up to create an ANSI (American National Standards Institute) standard called ANSI C standard, which was finally adopted by ISO (International Standard Organization) in 1989.

                      Bjarne Stroustrup ar Bell Labs initially developed C++ during the early 1980’s. it was designed to support the features of C such as efficiency and low-level support for system level coding. Added to this were features such as classes with inheritance and virtual functions. C++ is best described as a superset of C, with full support for object-oriented programming. Though C is an excellent language for writing efficient system programs, but for other types of programs, C code can be hard to understand, C programs can also be prone to certain types of error. The extra object-oriented facilities in C++ are partly included to overcome these shortcomings.


An operating system is defined as an interface (or bridge) between the user of computer and the computer hardware. An operating creates such a friendly environment for the user in which the computer is used effectively and efficiently. An operating system performs a number inter-process communication, protection and security.

       Batch processing means executing a series of jobs all at one time. The jobs with similar requirements are batched together and run through the computer as a group. The term originated in the days when users entered programs on punch cards. They would give a batch of these programmed cards to the system operator, who would feed them into the computer. Batch jobs can be stored up during working hours and then executed during the evening or whenever the computer is idle. Batch processing is particularly useful for operations that require the computer or a peripheral device for an extended period of time. Once a batch job begins, it continues until it is done or until an error occurs. Note that batch processing implies that there is no interaction with the user while the program is being executed.
For example: The credit card companies process the billing system. The customer does not receive a bill for each separate credit card purchase but one monthly bill for all of that month’s purchases. The bill is created through batch processing, where all of the data are collected and held until the bill is processed as a batch at the end of the billing cycle.

1)    In this system data is collected for defind period of time and processed in batches.
2)    It is a simplest processing method.
3)    Information of master file is up to date only up to last execution.
4)    Magnetic tapes as well as magnetic disks are used, output reports are printed in detail.

                   Time-sharing is an approach to interactive computing in which a single computer is used to provide simultaneous interactive general-purpose computing to multiple users by sharing processor time. This is done by providing a separate terminal to each user. Each terminal is connected to main computer system. CPU time one by one. This short period of time is called time slice. The user feels that he is having his own computer. In time sharing system hundreds of users may be using the system simultaneously. It is not possible to keep the programs of all the users in the memory at the same time. So operating system keeps few programs in the main memory and the rest of the programs stored in the disk.

1)    The response time is very less in case of time sharing systems.
2)    The CPU utilization is increased.
3)    The memory management in time sharing system provides for the protection and separation of user programs.
4)    It is cost effective.

When the time requirements on the operation of processor ot the flow of data are very critical, then real time operating systems are used. Real time means a quick response from the computer. In the real time system each process is assigned a priority according to the importance of process. The processor is normally allocated to the highest priority process among those which are ready to execute.

For example:
1)  Air traffic control system
2)  Chemical process control system.
3)  Scientific experiments
4)  Real time simulations
5)  Medical equipment
6)  Automotive applications etc.

Types of real time systems:
1 Hard real time system
2 Soft real time system

                In online systems, there is direct interaction of the user and the computer and the response time is very less. Each user is provided the direct access to the CPU on time sharing basis. The transactions in the online systems are processed as soon as the data is entered into the system.

For examples:
a)      Railway reservation system
b)      Banking system
c)       Stock prices in the stock market etc.

               In offline systems, the transactions are not processed immediately rather the data is collected for some specific period of time and the processing is done after the specific time. The batch processing is the best example of offline system where the jobs are collected and processed after certain time interval.




It will certainly be moral to say that object oriented programming acts as the seventh heaven for the programmers. Till 1970s, object orientation was just thinking among programmers. But using the object oriented approach in C++ is just incredible. The prospect to accustom programming to objects allows the programmer to design various applications and to reuse the code in a more logical and creative manner. Object- oriented approach reveals a particular way of viewing about problems and tasks in terms of recognizing and describing the behavior of the applicable objects. Smalltalk is a classical example of a pure object-oriented language. C++ incorporates the facilities for both the object-oriented programming and conventional procedural programming. C++ adjoins many enhancements of its own to fresh up the problems that were present in the original C language.

                   Structured programming can be roughly divided into two categories:

                      Structured programming is basically dividing a program into smaller modules that are easier to manage. All of what we have covered up to this point is part of procedural programming in this the programmer will divide the program into smaller functions (rather than putting the entire code within one function). Each function would have its own variables and sharing of variables between various functions is also possible. What we will see henceforth is related to object oriented programming (OOP). Large programs were difficult to handle in procedural programming an=d OOP was developed to reduce complexity of software development. In C++, OOP is implemented using classes. The main concepts in OOP are:

A virus cannot cause any damage to the physical devices connected to the infected computer


Virus stands for vital information under siege. A virus is a destructive program that is designed to destroy the information stored in computer. It enters the system without the knowledge of the user. It enters through infected floppy or infected program or through network. It makes multiple copies of itself and causes the abnormal functioning in the system. When a virus travels through a network then it spreads to all the computers connected to the network. Virus forms its copies and place them in to the main memory. When a program is being executed by the user the virus attaches its copy to that program.

              A virus cannot cause any damage to the physical devices connected to the infected computer:-
1 It decreases the speed of the computer.
2 It erases the information stored in primary and secondary memory of the system.
3 It displays unusual messages on the screen.
4 Some powerful virus can delete the instruction in the BIOS of the Motherboard.

Types of Viruses
1 Times bound viruses
2 Trojan horses
3 Worms
4 Boot sector viruses.
5 File viruses
6 Macro viruses
7 E-mail viruses




Machine language is the elementary language of a computer. The computer is capable of understanding this machine level language only. Principally, the machine code encloses the strings of two binary numbers, string of 0s and 1s. these strings of binary numbers are then transformed into electrical signals.

Facts about Machine Level Language:
1 Machine level languages are machine dependent.
2 Machine level language is easily understood by computer.
3 Machine level programs are implemented at a very fast speed.
4 Machine level language programs are tough to formulate.
Machine level language programs are hard to modify.

An assembly level language substitutes the letters as well as symbols (known as mnemonics) as an alternatives of numbers (used in machine level language). That’s why an assembly level language is also phrased as a symbolic language.

Facts about Assembly Level Language:
1 Assembly level languages are machine dependent.
2 Assembly level languages are easy to understand
3 Assembly level language programs require less efforts to be developed.
4 Assembly level language programs are easy to modify.
5 Assembly level language programming environment requires the programmer to have a comprehensive knowledge of the hardware on which he is going to perform.

A high level language smoothes the advancement of the programmers to focus on the logic of the problem. This means that the programmers are now free from having a wide-ranging awareness of the hardware of the machine on which they are going to perform. A high level language encloses English words as well as Mathematical symbols.

Facts about High Level Language:
1 High level language are machine independent.
2 High level languages are easy to understand.
3 High level language programs are easy to modify and maintain.
4 High level language programs require more storage space.
5 High level language programs typically require more time to run.