Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 64

TASK:-

HISTORY OF C & C++


PROGRAMMING AND THERE
ADVANTAGES AND DISADVANTAGES (
if any )
syed zaheer ali shah
Programing
ASSIGNMENT # 1
Professer muzamil khan
History of C & C++ programing

Page | 1
History of C & C++ programing

References:-
HISTORY OF C & C++ PROGRAMING BOOKS REFERENCE FROM WHERE I HAVE TAKEN THE ASSIGNMENT AND PREPARED FOR
1. (Bjourne strausstrup) history of C & C ++ programe
2. (bjourne straustrup) a tour to C ++
3. (Pisupati Sadasiva Subramanyam) C & C++ concepts and data basis

Assalam o alaikum

I have completed this assignment from the above books I have collected through
internet both authors (bjourne strousstrup) and (Subramanyam) are the leading
programme books author and also there teacher … I hve heared there lacture at
youtube channel I am inspiered of him

Page | 2
Primary &
History of C & C++ programing Secondary
Memory

1.1. INTRODUCTION TO COMPUTERS :-


Computers have become all pervasive in our day to day life. The advent
of computers can be treated as another revolution after industrial revolution. It
has led to development of not only computation but also Communication,
Input ALU ACCUMULATOR Output
Internet, Multimedia, Games, Accounting, Artificial Intelligence and
devices REGISTERS devices
virtualisation in all fields of life facilitating non destructive testing, simulation
CACHE MEMORY
and modelling, mechanization and use of Robots in hazardous fields.
TIMING & CONTROL UNIT
Computers being inanimate and capable of understanding only machine
language, consisting of ones and zeros, communication with the computers fig,1.1: block diagram of a computer
requires special efforts. The computer can communicate with outside world only
through interfaces between the machine and the person. The computer consists of
main Central Processing Unit, Memory, Input devices and Output devices.
The basic block diagram of a computer is given in fig. 1.1.
a. CENTRAL PROCESSING UNIT :-
The Central Processing Unit is the Heart and Brain of the computer. It
takes data and instructions from the outside world through Input devices, stores
them in the memory, does the required processing taking them from memory
and stores the results in the memory for future use and also gives the output
to the outside world through output devices immediately after processing. The
CPU consists of Arithmetic logic unit, which does the computations and logical operations, accumulator which is a register used for
taking the data and doing
the computations, general and special purpose registers for storing the data
and instructions inside the CPU on receipt from memory and a timing and
control unit which generates timing and control signals required for the execution
of instructions and also control the operation of other parts of CPU, Memory and Input, Output devices.

Page | 3
History of C & C++ programing

b. MEMORY :-
Memory stores the information like program, data results and any other required information.

c. INPUT DEVICES:-

The Input devices like the Key board, Card or Tape readers pass on the Input to the CPU as electrical impulses. The output
devices display the results either on the monitor or screen, or store in the Hard Disc, Floppy Disks, CDs or DVDs or Pen Drives or magnetic disks
or magnetic tapes etc.,

d. MICROPROCESSOR:-
The Microprocessor which forms a main component of the CPU, being an electronic device takes electrical impulses and hence
it can understand only the machine language consisting of ones and zeros, one being the state of full voltage (5 Volts) and zero being no voltage.
These states can also be described as high and low, up and down.
e. LOW LEVEL LANGUAGE (machine language ) :-
it is also known as machine language which is tedius and susceptible to making mistakes.

f. SLIGHTLY HIGH MACHINE LANGUAGE :-


slightly Higher level languages known as the Assembly language consisting of mnemonics is used in
micro-processors. This consists of English abbreviations

To make communication with the computer easier, High level languages like Basic, Fortran, Cobal, Pascal etc., have been designed

g. HIGH LEVEL LANGUAGE :-


To make communication with the computer easier, High level languages like Basic, Fortran, Cobal,
Pascal etc., have been designed.
.
h. MIDDLE LEVEL LANGUAGE :-
C Language is an Intermediate or Middle level language between the high level language and the Low level language

Page | 4
History of C & C++ programing

1.2 . C LANGUAGE :- . A program written in C can be carried out at a considerably less time because of its features like few restrictions,
compact set of key words, block structures, less documentation, rich set of operators and many built in functions. It consists of features like
manipulations of bits, bytes and addresses as in Assembly language. C is highly portable. Through its functions and structures C language has
become very useful in the design of compilers and operating systems which are essential with features like interface between the user and the
computer, controls of the peripherals and other devices to be used by the computer. Compilers translate the High level language program into
Low level language understandable by the computer. High level languages are easy to program by the user but it takes more execution time
compared to low level language.
1.3 C ++ LANGUAGE :- C ++ language is also midlle level language which carry out considerably less time in execution of
programme in fact it is more efficient then C and C classes because it is the combination of C & C classes

C++ was designed to provide Simula’s facilities for program organization together with C’s efficiency and flexibility for systems
programming. It was intended to deliver that to real projects within half a year of the idea. It succeeded
C++ evolved from an earlier version called C with Classes. The work and experience with C with Classes from 1979 to 1983 determined the
shape of C++.

Page | 5
History of C & C++ programing

First reference of history of C & C + + is form [ A TOUR TO C & C ++]


NOTE:- strousrtup is the inventer of c ++

1.1 HISTRORY :-
the author said that c++ provide simula’s facilities ( refers to simula 67,simula 1 means multi – paradigm: procedural , imperative , structured ,
object- oriented )[dahl 1970] together with C’s efficiency and flexibilities for systems programming [Kernighan,1978]. Simula is the initial
source of C++’s abstraction mechanisms. The class concept (with derived classes and virtual functions) was borrowed from it. However,
templates and exceptions came to C++ later with different sources of inspiration. The evolution of C++ was always in the context of its use.
1.2 TIMELINE:-
The work that led to C++ started in the fall of 1979 under the name ‘‘C with Classes.’’ Here is a simplified timeline:

1979 Work on ‘‘C with Classes’’ started. The initial feature set included classes and derived
classes, public/private access control, constructors and destructors, and function declarations with argument checking. The first library
supported non-preemptive concurrent
tasks and random number generators.
1984 ‘‘C with Classes’’ was renamed to C++. By then, C++ had acquired virtual functions,
function and operator overloading, references, and the I/O stream and complex number
libraries.
1985 First commercial release of C++ (October 14). The library included I/O streams, complex numbers, and tasks (non-preemptive scheduling).
1985 The C++ Programming Language (‘‘TC++PL,’’ October 14) [Stroustrup,1986].
1989 The Annotated C++ Reference Manual (‘‘the ARM’’) [Ellis,1989].
1991 The C++ Programming Language, Second Edition [Stroustrup,1991], presenting generic
programming using templates and error handling based on exceptions (including the
‘‘Resource Acquisition Is Initialization’’ general resource management idiom).
1997 The C++ Programming Language, Third Edition [Stroustrup,1997] introduced ISO C++,

Page | 6
History of C & C++ programing

including namespaces, dynamic_cast, and many refinements of templates. The standard


library added the STL framework of generic containers and algorithms.
1998 ISO C++ standard [C++,1998].
2002 Work on a revised standard, colloquially named C++0x, started.
2003 A ‘‘bug fix’’ revision of the ISO C++ standard was issued. A C++ Technical Report
introduced new standard-library components, such as regular expressions, unordered containers (hash tables), and resource management
pointers, which later became part of
C++0x.
2006 An ISO C++ Technical Report on Performance was issued to answer questions of cost,
predictability, and techniques, mostly related to embedded systems programming
[C++,2004].
2009 C++0x was feature complete. It provided uniform initialization, move semantics, variadic template arguments, lambda expressions, type
aliases, a memory model suitable for concurrency, and much more. The standard library added several components, including threads, locks,
and most of the components from the 2003 Technical Report.
2011 ISO C++11 standard was formally approved [C++,2011].
2012 Work on future ISO C++ standards (referred to as C++14 and C++17) started.
2013 The first complete C++11 implementations emerged.
2013 The C++ Programming Language, Fourth Edition introduced C++11.
During development, C++11 was known as C++0x. As is not uncommon in large projects, we
were overly optimistic about the completion date.

1.3 EARLY YEARS :-


HE originally designed and implemented the language because I wanted distributed the services of a UNIX kernel acroos
multiproccesor and local – area network ( that were known as multicores and clusters ) for that, he he needed some event driven simulations

Page | 7
History of C & C++ programing

for which simula would have been ideal,excepted,for performance consideration …he need to deal directly with hardware and provide high
performance concurrent programming mechanism for which C would have been ideal , except for its weak support for modularity and type
checking. The result of adding Simula-style classes to C (Classic C; §14.3.1), ‘‘C with Classes,’’ was used for major projects in which its facilities for
writing programs that use minimal time and space were severely tested. It lacked operator overloading, references, virtual functions, templates,
exceptions, and many, many details [Stroustrup,1982]. The first use of C++ outside a research organization started in July 1983.
A. NAMING :-
The name C++ (pronounced ‘‘see plus plus’’) was coined by Rick Mascitti in the summer of 1983 and chosen as the replacement for ‘‘C with
Classes’’ by me. The name signifies the evolutionary nature of the changes from C; ‘‘++’’ is the C increment operator. The slightly shorter name
‘‘C+’’ is a syntax error; it had also been used as the name of an unrelated language. Connoisseurs of C semantics find C++ inferior to ++C. The
language was not called D, because it was an extension of C, because it did not attempt to remedy problems by removing features, and because
there already existed several would-be C successors named D
1.4 THE ISO C++ STANDARDS:-
The explosive growth of C++ use caused some changes. Sometime during 1987, it became clear that formal
standardization of C++ was inevitable and that we needed to start preparing the ground for a standardization
effort [Stroustrup,1994]. The result was a conscious effort to maintain contact between implementers of C++
compilers and major users. This was done through paper and electronic mail and through face-to-face meetings
at C++ conferences and elsewhere. AT&T Bell Labs made a major contribution to C++ and its wider community by
allowing me to share drafts of revised versions of the C++ reference manual with implementers and users.
Because many of those people worked for companies that could be seen as competing with AT&T, the
significance of this contribution should not be underestimated. A less enlightened company could have caused
major problems of language fragmentation simply by doing nothing. As it happened, about a hundred individuals
from dozens of organizations read and commented on what became the generally accepted reference manual
and the base document for the ANSI C++ standardization effort. Their names can be found in The Annotated C++

Page | 8
History of C & C++ programing

Reference Manual (‘‘the ARM’’) [Ellis,1989]. The X3J16 committee of ANSI was convened in December 1989 at the
initiative of Hewlett-Packard. In June 1991, this ANSI (American national) standardization of C++ became part of
an ISO (international) standardization effort for C++ and named WG21. From 1990, these joint C++ standards
committees have been the main forum for the evolution of C++ and the refinement of its definition. I served on
these committees throughout. In particular, as the chairman of the working group for extensions (later called the
evolution group), I was directly responsible for handling proposals for major changes to C++ and the addition of
new language features. An initial draft standard for public review was produced in April 1995. The first ISO C++
standard (ISO/IEC 14882-1998) [C++,1998] was ratified by a 22-0 national vote in 1998. A ‘‘bug fix release’’ of this
standard was issued in 2003, so you sometimes hear people refer to C++03, but ptg11539604 158 History and
Compatibility Chapter 14 that is essentially the same language as C++98. The current C++, C++11, known for years
as C++0x, is the work of the members of WG21. The committee worked under increasingly onerous self-imposed
processes and procedures. These processes probably led to a better (and more rigorous) specification, but they
also limited innovation [Stroustrup,2007]. An initial draft standard for public review was produced in 2009. The
second ISO C++ standard (ISO/IEC 14882-2011) [C++,2011] was ratified by a 21-0 national vote in August 2011.
One reason for the long gap between the two standards is that most members of the committee (including me)
were under the mistaken impression that the ISO rules required a ‘‘waiting period’’ after a standard was issued
before starting work on new features. Consequently, serious work on new language features did not start until
2002. Other reasons included the increased size of modern languages and their foundation libraries. In terms of

Page | 9
History of C & C++ programing

pages of standards text, the language grew by about 30% and the standard library by about 100%. Much of the
increase was due to more detailed specification, rather than new functionality. Also, the work on a new C++
standard obviously had to take great care not to compromise older code through incompatible changes. There
are billions of lines of C++ code in use that the committee must not break. C++11 added massively to the standard
library and pushed to complete the feature set needed for a programming style that is a synthesis of the
‘‘paradigms’’ and idioms that have proven successful with C++98. The overall aims for the C++11 effort were: •
Make C++ a better language for systems programming and library building. • Make C++ easier to teach and learn.
The aims are documented and detailed in [Stroustrup,2007]. A major effort was made to make concurrent
systems programming type-safe and portable. This involved a memory model (§13.1) and a set of facilities for
lock-free programming, which is primarily the work of Hans Boehm, Brian McKnight, and others. On top of that,
we added the threads library.

Reference taken from the book ( C & C ++ programming concepts and data )
Its author is[ PISUPATI SADASIVA SUBRAMANYAM]

Page | 10
History of C & C++ programing

1.1 HISTORY OF C & C++ : -


The most popular programming language C is the result of a development process that started with an older language BASIC
COMBINED PROGRAMMING LANGUAGE (BCPL). “Martin Richards” developed BCPL. Ken Thompson developed a language called B, during
1960s. B was modified by Dennis There are several types of compilers for C language like Turbo C, Ansy C, Borland C, Unix based Ritchie
which led to the development of C and it was implemented in Bell Laboratories in the 1970s. Since it was developed along with the Unix
operating system, for many years C was strongly associated with UNIX. With Micro Computers gaining popularity C gained widespread
implementations, under a number of operating systems, including MS-DOS. The source codes accepted by most of these operating systems
are highly compatible. C++ is a superset of C.
C and C++ languages being closely related, a compiler for C++, can also work as compiler for C language.
C, DOS based C compilers. There are C compilers available for DOS Operating System, OS/ 2, for Macintosh and also in Microsoft Visual
Studio 6.0. Turbo C++ compiler is one of the popular compilers which is used for some of the programs executed in this book. There may be
some slight differences between Turbo C compiler and Turbo C++ compiler which will be pointed out in this book as and when required.

1.2 DESIGN, DEVELOPMENT AND EXECUTION OF A PROGRAM :


1. Before developing a program for solving a problem, the problem has to be understood clearly as to what are the Inputs, the specifications
(and limitations) what is expected to be done and what is the required output and in what form is the output required.
2. The logic required to meet the constrains and expectations of the problem has to be developed.
3. After understanding the problem a step by step approach called algorithm for solving the problem has to be developed. The algorithm is a
step by step approach for solving the problem without getting into infinite loop. Infinite loop is a set of steps or instructions that are repeated
indefinitely
. 4. In the place of Algorithm a pictorial representation of Algorithms called Flow chart may be developed.
5. Instead of Flow chart a Pseudo code may be developed. A pseudo code is a program written in any High level language like statements
without restricting itself to any particular language using the basic features of a Programming language.
6. From the Algorithm or a Flow chart or pseudo code a program in the required programming language may be developed. The program code
written by the user in a programming language is called a Source Code. This source program is given a file name in the format filename .C or
filename .cpp, with the extension “.c or .cpp” indicating the compiler to be used for executing the program.
7. For Debugging and testing, this source code is loaded on the computer and the compiler converts the source code into object code which is
executable after scanning through all the statements given in the program. A compiler is a program which translates all the source code into
object code in one go. If there are any mistakes it lists out all the syntax errors i.e., errors in the format of the programming statements, errors in
defining the identifiers etc., which are said to be grammatical errors or syntax errors in programming and displays the error code. After rectifying

Page | 11
History of C & C++ programing

the mistakes or removing the errors, the program is again fed to the compiler. The name of the file with a dot (.) extension indicates type of the
file. Ex : File name .obj will be the name of the object code file. An executable file will have the extension “.exe” Instead of using a compiler an
interpreter may be used. An interpreter is a program which reads and translates the source program into object code stepwise and any error in
that step is pointed out immediately and further translation is stopped.
8. After successful compilation of the full program the system links the different library functions and the user define functions, creates a table
of symbols assigns the values to the different variables that are defined and used in the program etc.,
9. After successful linking the program is executed and the results are displayed or given as outputs in the form required by the user as given in
the program.
10. After obtaining the results the programmer has to analyze the results and see whether he has got the output as desired. Otherwise the
program logic will have to be redesigned or it has to be checked whether the inputs have been given proper values or whether any illegal
operations like division by zero or overflow or underflow has occurred. In such cases the program has to be revised and fed again.
11. After successful execution of the said program it has to be checked whether the program gives correct results for different values of the data

1.3 TESTING OF PROGRAMS


: There are two types of testing known as i) White box testing, ii) Black box testing.

1.3.1 White Box Testing :


White box testing is used during the early stages of testing the software to test the internal working of the program. Test
cases are provided to verify the proper execution of all independent paths within a module, all logical decisions, and all loops and validate data
structures.
1.3.2 Black Box Testing :
Knowing the specified functions used in a program, tests can be conducted to demonstrate each function and its operations,
simultaneously searching for errors. Black Box tests are used to demonstrate that the software functions are operational, input is correctly
accepted, and output is produced correctly and attempts to find errors like, incorrect or missing functions, interface errors, Errors in data
structures or data base access, performance errors, initialization/ termination errors.
1.3.3. Testing Bench Mark Problems: In real time problems it will be a better practice to run the program for bench mark problems, if
there are any as in power systems. Bench mark problems are standard problems designed by standard institutions like IEEE etc., for which

Page | 12
History of C & C++ programing

the standard input and outputs are available. If the program works for different bench mark programs for the same type of problem then it is
reasonable to assume that the program developed will work for any other data or any other size of the problem.

Page | 13
History of C & C++ programing

A. Standardization :-
Sometime in 1988 it became clear that C++ would eventually have to be standardized [Stroustrup,1989]. There were now a
handful of independent implementations in use or being produced and clearly an effort had to be made to write a more precise and
comprehensive definition of the language and also to gain wide acceptance for that definition. At first, formal standardization wasn’t considered
an option. Many people involved with C++ considered – and still consider – standardization before genuine experience has been gained
abhorrent. However, making an improved reference manual wasn’t something that could be done by one person (me) in private. Input and
feedback from the C++ community was needed. Thus I came upon the idea of re− writing the C++ reference manual and circulating its draft
among important and insightful members of the C++ community worldwide.

Page | 14
History of C & C++ programing

B. ANSI and ISO :-


C. The initiative to formal (ANSI) standardization of C++ was taken by HP in conjunction with AT&T, DEC, and IBM. Larry Rosler from HP was
important in this initiative. The proposal for ANSI standardization was written by Dmitry Lenkov [Lenkov,1989]. Dmitry’s proposal cites
several reasons for immediate standardization of C++: – C++ is going through a much faster public acceptance than most other
languages. – Delay ... will lead to dialects. – Requires a careful and detailed definition providing full semantics ... for each language
feature. – C++ lacks some important features ... exception handling, aspects of multiple inheritance, features supporting parametric
polymorphism, and standard libraries. The proposal also stressed the need for compatibility with ANSI C. The organizational meeting of
the ANSI C++ committee, X3J16 took place in December of 1989 in Washington, D.C. and was attended by about 40 people including
people who took part in the C standardization, people who by now were ‘‘old time C++ programmers,’’ and others. Dmitry Lenkov
became its chairman and Jonathan Shopiro became its editor. The committee now has more than 250 members out of which something
like 70 turn up at meetings. The aim of the committee was and is a draft standard for public review in late 1993 or early 1994 with the
hope of an official standard about two years later†. This is an ambitious schedule for the standardization of a general− purpose
programming language. To compare, the standardization of C took 7 years. Naturally, standardization of C++ isn’t just an American
concern. From the start, representatives from other countries attended the ANSI C++ meetings; and in Lund, Sweden, in June 1991 the
ISO C++ committee WG21 was convened and the two C++ standards committees decided to hold joint meetings – starting immediately in
Lund. Representatives from Canada, Denmark, France, Japan, Sweden, the UK, and USA were present. Notably, the vast majority of
these national representatives were actually long− time C++ programmers. The C++ committee had a difficult charter: [1] The definition
of the language must be precise and comprehensive. [2] C/C++ compatibility had to be addressed. [3] Extensions beyond current C++
practice had to be considered. [4] Libraries had to be considered. On top of that, the C++ community was very diverse and totally
unorganized so that the standards committee naturally became an important focal point of that community. In the short run, that is
actually the most important role for the committee. C compatibility was the first major controversial issue we had to face. After some –
occasionally heated – debate it was decided that 100% C/C++ compatibility wasn’t an option. Neither was significantly decreasing C
compatibility. C++ was a separate language and not a strict superset of ANSI C and couldn’t be changed to be such a superset without
breaking the C++ type system and without breaking millions of lines of C++ code. This decision, often referred to as ‘‘As close to C, but no
closer’’ after a paper written by Andrew Koenig and me [Koenig1989a], is the same that has been reached over and over again by
individuals and groups considering C++ and the direction of its evolution

Page | 15
History of C & C++ programing

D. ADVANTAGES OF C:-
A common question at C with Classes presentations was ‘‘Why use C? Why didn’t you build on, say, Pascal?’’ One
version of my answer can be found in [Stroustrup,1986b]: ‘‘C is clearly not the cleanest language ever designed nor the easiest to use so why
do so many people use it?
[1] C is flexible: It is possible to apply C to most every application area, and to use most every programming technique with C. The language
has no inherent limitations that preclude particular kinds of programs from being written.
[2] C is efficient: The semantics of C are ‘‘low level’’; that is, the fundamental concepts of C mirror the fundamental concepts of a traditional
computer. Consequently, it is relatively easy for a compiler and/or a programmer to efficiently utilize hardware resources for a C program.
[3] C is available: Given a computer, whether the tiniest micro or the largest super− computer, the chance is that there is an acceptable
quality C compiler available and that that C compiler supports an acceptably complete and standard C language and library. There are also
libraries and support tools available, so that a programmer rarely needs to design a new system from scratch.
[4] C is portable: A C program is not automatically portable from one machine (and operating system) to another nor is such a port
necessarily easy to do. It is, however, usually possible and the level of difficulty is such that porting even major pieces of software with
inherent machine dependences is typically technically and economically feasible
E. ADVANTAGES OF C ++
C++ Language follows bottom of approach with objects, classes etc., defined in the beginning and the main programming following after
them.

1. Testing is simplified. The code can be properly tested at any stage in the development cycle.
2. Pieces of programs written bottom-up tend to be more general, and thus more reusable, than pieces of programs written top-down. In fact,
one can argue that the purpose bottom-up programming is to create an application-specific language . Such a language is suitable for
implementing an entire class of applications, not only the one that is to be written. This fact greatly simplifies maintenance, in particular adding
new features to the application. It also makes it possible to delay the final decision concerning the exact functionality of the application. Being
able to delay this decision makes it less likely that the client has changed his or her mind between the establishment of the specifications of the
application and its implementation.
3. Design flaws can be easily spotted and fixed. Because all design work is done through the code. (b) Disadvantages of bottom up
NOTE :- THERE ARE NO DISADVANTAGES

Page | 16
History of C & C++ programing

Page | 17
History of C & C++ programing

Page | 18
History of C & C++ programing

Page | 19
History of C & C++ programing

Page | 20
History of C & C++ programing

Page | 21
History of C & C++ programing

Page | 22
History of C & C++ programing

Page | 23
History of C & C++ programing

Page | 24
History of C & C++ programing

Page | 25
History of C & C++ programing

Page | 26
History of C & C++ programing

Page | 27
History of C & C++ programing

Page | 28
History of C & C++ programing

Page | 29
History of C & C++ programing

Page | 30
History of C & C++ programing

Page | 31
History of C & C++ programing

Page | 32
History of C & C++ programing

Page | 33
History of C & C++ programing

Page | 34
History of C & C++ programing

Page | 35
History of C & C++ programing

Page | 36
History of C & C++ programing

Page | 37
History of C & C++ programing

Page | 38
History of C & C++ programing

Page | 39
History of C & C++ programing

Page | 40
History of C & C++ programing

Page | 41
History of C & C++ programing

Page | 42
History of C & C++ programing

Page | 43
History of C & C++ programing

Page | 44
History of C & C++ programing

Page | 45
History of C & C++ programing

Page | 46
History of C & C++ programing

Page | 47
History of C & C++ programing

Page | 48
History of C & C++ programing

Page | 49
History of C & C++ programing

Page | 50
History of C & C++ programing

Page | 51
History of C & C++ programing

Page | 52
History of C & C++ programing

Page | 53
History of C & C++ programing

Page | 54
History of C & C++ programing

Page | 55
History of C & C++ programing

Page | 56
History of C & C++ programing

Page | 57
History of C & C++ programing

Page | 58
History of C & C++ programing

Page | 59
History of C & C++ programing

Page | 60
History of C & C++ programing

Page | 61
History of C & C++ programing

Page | 62
History of C & C++ programing

Page | 63

You might also like