Brief History of Computer Systems, Software, and Programming
Brief History of Computer Systems, Software, and Programming
The first modern computer came into existence in the 1940s. No single person invented
the computer¡ªthe credit goes to the many inventors who have worked on different
pieces of the computer over the years. Man¡¯s quest to simplify mathematical
computations has led to extensive research, algorithm development, and other
innovations. Laptops, tablets, smartphones, and many other devices are a product of
these innovations. This article will detail the history of these innovations in mathematics,
programming, and software and computer system design.
What Is a Computer?
A computer is an electronic device that stores and processes data. It comprises both
hardware and software. The term hardware refers to the physical aspects of the
computer and comprises the following main components:
1.
2.
3.
4.
central processing unit (CPU);
memory;
storage devices (disks, CDs, and tapes);
input and output devices (monitors, keyboards, mice, and printers).
All these components are connected to each other through the system bus. The figure
below provides a visual overview of the main parts of the computer.
Figure 1: The main components of a computer.
Computer programs are written by programmers, and they guide the computer through
an orderly set of actions to perform some operation. The term software refers to these
programs that instruct hardware to perform specific tasks. The instructions to the
The Saylor Foundation
Page 1 of 9
computer can be given using different programming languages. These languages have
evolved over time.
History of Computing
The earliest device to keep track of calculations was an abacus. It was used around 50
BC and was very popular in Asia. A popular form of abacus is shown below.
Figure 2: An abacus.1
John Napier, a Scottish mathematician, physicist, and astronomer, defined natural
logarithms in 1614 to simplify calculations. The use of logarithms greatly simplified the
complex astronomical, navigational, mathematical, and scientific calculations that were
commonplace at that time. He also invented Napier¡¯s bones, a mathematical tool that
used a set of numbered rods to simplified multiplication.
Figure 3: Napier¡¯s bones.2
1
2
This image is in the public domain. The original can be found here.
This image is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license. It is attributed to Wikipedia user
La Enciclopedia Libre Universal en Espa?ol. The original can be found here.
The Saylor Foundation
Page 2 of 9
Charles Babbage, a British mathematician and inventor, first proposed the idea of a
programmable computer. While studying complex astronomical calculations that others
had done by hand, he found numerous mistakes, which motivated him to design a
¡°mechanical computer¡± that could do these calculations without errors. Though he
designed such a machine, it was never built during his lifetime.
The need for programming came with the idea of making general purpose hardware that
could be used to carry out a variety of tasks. Ada Lovelace, who was the world¡¯s first
programmer, published a paper in which she demonstrated how Babbage¡¯s analytical
engine could be programmed to perform various computations.
Another device called a punch card was used in the late 1800s to keep track of data
that could be read by machines. Punch cards stored information in digital format, which
was represented at the time by specific series of holes in paper cardstock. Herman
Hollerith applied the idea of representing information as holes in paper cards to speed
up the tabulation process in the 1890 US Census. Hollerith¡¯s work contributed to initial
programming methods, and punch cards were used to communicate with computers
well into the 1970s. We still use the technique of punch cards today in the voting
process, and punch cards were subject to media attention with the ¡°hanging chads¡±
issue during the 2000 US presidential elections, when some ballots were not punched
properly, making votes difficult to count.
Figure 4: A punch card programmed with FORTRAN.3
In the late 1940s, John von Neumann introduced the idea of a computer architecture
based on stored programs. The key idea was to store both the data and the program in
memory. The idea behind storing programs in a memory was based on the construction
of these programs using a small set of generic operations. This became known as von
Neumann Architecture in the field of computer science. It was a major advance in
computer design, because until this point computers were programmed by setting
switches and physically wiring the components. Storing programs in memory completely
changed that. This was also the start of machine language (a sequence of 0s and 1s)
as a means of programming of the computer. A set of sequences of 0s and 1s were
used to indicate the operations and the operands on which these operations would be
performed. An example of a machine language program looks something like this:
3
This image is in the public domain. The original can be found here.
The Saylor Foundation
Page 3 of 9
Figure 5: An example of a machine language program
Each line in the program contains a 16-bit code that represents either a machine
instruction or a single data value. For example, the first few bits may indicate that the
operation to be performed is addition, and the following bits may provide the numbers
that need to be added. Another sequence may have initial bits to indicate that data
needs to be fetched from the memory, and the following bits will provide the address in
the memory from which the data will be fetched.
It was difficult to program using 0s and 1s as different pieces of code looked similar.
Giving sections of these 0s and 1s symbolic names would make the task of
programming easier as the programmer could focus on data and operations in creating
programs. This led to the creation of assembly languages in the 1950s; programmers
used these assembly languages to write software. An assembly language is a low-level
programming language which is close to machine language but provides clarity into
operations of a machine through the use of symbols. An example of a machine
language program looks something like this:
LD R1, NUMBER1
LD R2, NUMBER2
ADD R3, R1, R2
Figure 6: An assembly language program for adding two numbers
The first computer, ENIAC (Electronic Numerical Integrator and Computer), was built by
the United States Army¡¯s Ballistic Research Laboratory in 1946. It was part of research
aimed at providing better ballistic missiles to the U.S. Army during World War II.
The Saylor Foundation
Page 4 of 9
Figure 7: ENIAC, the first computer.4
Dr. Presper Eckert and Dr. John Mauchly, two members of the team that built ENIAC,
started their own company, Universal Automatic Computer, or UNIVAC, to build the first
commercial computer. Their first client was the United States Census Bureau, which
needed a computer to keep track of the growing U.S. population. The computer was
successfully built in 1951 at the cost of about one million dollars (about $9 million in
today¡¯s money).
Machine Language and Programming Languages
Machines understand 0s and 1s. The task of software is to express computation in a
higher-level language and then translate it into a sequence of 0s and 1s that machines
can understand. When you express the computation in a higher-level language, this is
referred to as raising the level of abstraction in programming context. A typical software
application, such as a word processor or an operating system, may include millions of
lines of software code. However, the hardware can only execute low-level instructions
presented to it in the form of the machine language consisting of 0s and 1s. Several
layers of software are needed to convert the high-level application code into the
machine language. As shown in the figure below, a system software layer such as the
operating system controls the hardware; the user controls application programs, which
run on top of the operating system layer.
4
This image is in the public domain. The original can be found here.
The Saylor Foundation
Page 5 of 9
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- history of programming languages
- programming languages computer science
- chapter 1 history of computers ftms college
- the next 700 programming languages
- programming computer science department at princeton
- chapter 2 programming languages
- chapter introduction to computers and programming
- languages and copyright a brief history and proposal for
- a short history of computing harding university
- lecture 03 bits bytes and data types
Related searches
- a brief history of surgery
- brief history of starbucks
- a brief history of philosophy
- brief history of women s rights
- a brief history of education
- a brief history of computer
- a brief history of china
- a brief history of time review
- brief history of philosophy
- a brief history of india
- a brief history of english
- a brief history of time quotes