0% found this document useful (0 votes)
0 views16 pages

Bookon Programming

The book 'The Evolution of Computer Programming' explores the historical development of communication, numbering, and writing, leading to the complexity of modern computers. It details the transition from early communication methods to the advent of electrical devices and programming languages, making the concepts accessible to readers unfamiliar with electronics or mathematics. The author aims to demystify computers by explaining their operations and programming in a step-by-step manner, ultimately introducing readers to the evolution of programming languages like FORTRAN.

Uploaded by

Shobhit
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
0 views16 pages

Bookon Programming

The book 'The Evolution of Computer Programming' explores the historical development of communication, numbering, and writing, leading to the complexity of modern computers. It details the transition from early communication methods to the advent of electrical devices and programming languages, making the concepts accessible to readers unfamiliar with electronics or mathematics. The author aims to demystify computers by explaining their operations and programming in a step-by-step manner, ultimately introducing readers to the evolution of programming languages like FORTRAN.

Uploaded by

Shobhit
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/263442019

The Evolution of Computer Programming

Book · June 2014

CITATIONS READS
0 18,979

1 author:

Rc Ropp
Rutgers, The State University of New Jersey
77 PUBLICATIONS 1,352 CITATIONS

SEE PROFILE

All content following this page was uploaded by Rc Ropp on 27 June 2014.

The user has requested enhancement of the downloaded file.


2

Preface

This book was written in order to describe how the original, basic ideas
concerning communication, numbering and writing, as developed by Man,
evolved into our present day complexity wherein the computer (in many forms)
has become ubiquitously entrenched in our modern-day living. This is manifest
in the universal usage of “wireless” portable telephonic communications
worldwide where anyone is able to ”log-on” to any place in the world through
the Internet (which is a international connection of computers able to access
any of millions of so-called “web-sites” that are connected to the Internet).

How this intricacy arose is the subject of this book. The early means of
communication involved the use of spoken language, smoke-signals, beacons,
reflected light signals and printed matter, (as examples). In the 1800s, the
advent of electricity brought about the means to transmit signals via the
electrical telegraph. In the early 1900’s, the basic means of communication was
by telegraph wherein a series of “clicks” of the telegraph, via Morse-Code, was
translated by the telegraph-operator into messages called “telegrams”. The
telephone, radio or television had not yet been invented. Printed newspapers
and books were the only other means of communication.

The basic concepts of numbering, writing, mathematics and programming (the


organization of steps to achieve some purpose like calculation of a square root)
had long been achieved by Man over the span of 10,000+ years. Current-day
computers use these concepts in programming to achieve the accurate
prediction of weather, to control numerous machines used in manufacture of
goods, control of “digital-TV” as well as to communicate all over the world by
satellite signals from space.

Thus, this book begins with a history of the concepts that evolved that are
required to develop computer-programming and the concept of computer
languages. If you have ever wondered why we use “bits” to make the computer
function and why there are eight (8) bits per “byte”, this book will answer your
questions.
3

Introduction

Computers execute internal machine commands that are integral to its


operation. It uses "Applications" to achieve some design or purpose like
searching the Internet or writing a book. The computer has become so
pervasive in our everyday world that its use has become mandatory if anyone is
to keep pace with the world population and its everyday use of electronic
gadgets and media. Since the "computer" has remained mysterious to some
individuals (particularly the older generation who desire to become or remain
educated in the current state of events), I have designed the information in this
book with that in mind.

Since many users of computers are not well versed in electronics, mathematics
or scientific formats in general, I have described the present state of complexity
of the modern-day computer in terms of how it was conceived from the teletype,
the calculator, and then the programmable calculator. This series of events
culminated in the development of a "calculator-language" which ended in the
usage of a "machine-language" to operate the first stage of calculator
development and eventually those of a computer. How this occurred is a major
part of the narrative within this book. I have presented a series of "problems"
which have been explained so that the reader can execute them and gain an
understanding of what is being discussed at that moment. All one has to do is
place different numbers within a given problem and then solve for the answer. I
have not given the answers per se since they ought to be obvious if one
understands what the problem is meant to convey.

For example, the concept of Boolean Algebra is probably foreign to most people
except mathematicians and computer scholars. However, if one is to
understand how a computer operates when it is manipulating either a word-
program or calculations similar to that of a calculator, it is essential to
understand the concept of binary language and how binary algebra and
manipulation of "bits" is carried out within the computer. This information is
approached as a step-by-step operation. The computer "operates" by
addressing a series of "program instructions" line by line to the desired end-
result. Modern computers address such program lines at a rate of millions or
4

billions of "bytes per second" in order to process the program. Originally, it was
a few thousands per second.

This manuscript introduces a calculator and then modifies it into a


programmable calculator. All of the changes that must be made to get it to
operate properly- including development of Assembly Language are presented.
Finally, that operation, stage by stage, is compared to that of a real computer.
The complexities of the modern-day computer are also addressed in simple
terms that are reasonably accurate (since there are so many different types of
computers). At the end, the reader is briefly introduced to FORTRAN language
programs and how they evolved in the earliest computers.

I hope that you find this book as mentally stimulating as I did while writing it.

R C Ropp - May 2014

Dedication

This book is dedicated to my wife of 60+ years, Francisca Margarita. who has
staunchly
supported my efforts over this time.
5

Concerning Computers and Their Modern-Day Complexity

1.1. Definitions 5
1.2. Mechanical and Electrical Ancestors of the Computer 6
The Typewriter 6
The Telegraph 7
The Calculator 8
1.3. A History of Computing Devices 11
1.4. The Computer Today 14
Operating Systems 15
Basic Computer Components 15

Automating a Manual Calculator

2.1. Automating a Calculator 20


2.2. The Desk Calculator 21
The First Calculators 24
The Slide Rule 26
A Simple Desk Calculator 26
2.3. Operating and Using a Calculator 30
2.4. Automating the Desk Calculator 32
Using Storage Registers 34
Programming with Registers 36
Summary 38
2.5. Automating the Instruction Program
How the Paper Tape (Paper Card) is Used 38
Controlling the Controllers 45
Marking the Head of the Tape (HEAD) 46
Skip-Operation (GOTO) 46
The IF Operation 47
Clear Operation - ZERA (Zero AC) 48
6

Stop Operation-STOP 48
Zero Register Operation - ZERR 49
COMPARE Operation 49
CHANGE SIGN Operation-ACHG 49
Operations with CONSTANTS 50
2.6. The Register Selector 51
Using the Register Selector 54
2.7. Print and Space Operations 54
The Punch Operation 54
2.8. The Use of Sub-Routines 55
The CALL Routine 55
The RETURN Instruction 56
2.9. Summary to Date 56
2.10. Using the Automated Calculator 61
The Source Program 64
2.11. Converting the Source Program into an Object Program 67
Using Step Numbers 67
A Program with Step Numbers 69
A Source Program with Object Listing 70
Punching the Object Tape 71
2.12. Summary to Date 72

Programming- Using Assembly Language More Effectively

3.1. Comparison of a Manual Programmable Calculator with a Computer 79


3.2. Programmable Calculator Instructions 80
Basic Arithmetic Instructions 82
Arithmetic Instructions Involving the AC Register Content 81
Accumulator/Constant Functions (Immediate) 82
Storage Instructions 85
Input-Output Instructions 86
Instructions that Control Sequence Operations 86
Summary of Modifications Used 90
3.3. Examples Using Control Instructions in Assembly Language 92
Program to Evaluate Quadratic Equations 97
3.4. Using the REGISTER SELECTOR 105
7

3.5 Simplifying Assembly language by Use of an Assistant 111


How the Assistant Handles "Short-Hand" Instructions 115
Involving Formulas
Short-Hand Language for Area of a Cylinder 117
Object Program for Area of a Cylinder 117
Outmoded Assembly Language Instructions in Short-Hand 119
Shorthand Input-Output Instructions 120
Shorthand Branching Routines 121
Shorthand Implicit Subroutine Call Branching 125
Subroutine Program for Calculating Square Root 128
Shorthand Explicit Subroutine Call Branching 129
Using the Register Selector in Shorthand 131
3.6. Total Account Series: Comparison of Shorthand Language 134
to Assembly Language

Conversion of a Programmable Calculator to a Computer

4.1. How the Computer was Conceived 145


Summary of Prior Chapters 145
Computer Memory- the Floppy Disc 148
4.2. A General-Purpose Computer 151
The Electronic Memory Cell 152
The Product-Remainder Register 154
4.3. Factors Involving Language Instructions 155
Binary Language and Operation of Electronic 156
Calculating Devices
Binary, Hexadecimal & Decimal Systems 156
Binary Addition and Subtraction 159
Binary Multiplication and Division 164
4.4. Computer Instructions 167
8

Three Groups of Computer Instructions 168


Memory Reference Codes 170
Comparison of Computer and Calculator Instructions 172
Operate Class Instructions 175
Index Register - Function 1 177
Product Remainder Register Functions 177
Accumulator - Function 2 178
Index Register - Function 2 178
Shift-Skip Operate Class Functions 179
Conditional Skip Instructions 182
Shift Instructions 183
Input-Output Class Instructions 185
Rotational Bit Shifts 185
Input-Output Instructions 186
Status Flags 189
Data Buffer Functions 191
4.5. Physical Operation - Control of the Device 192
Status Flag Testing 192
Status and Control Buffer Handling 193
Arithmetic Error Management 194
Memory Reference Instructions 197
4.6. An Operating System for Our Computer 198
4.7. The FORTRAN Language - Using a Card System 202
Typical Card Systems and How They Were Processed 205
A Basic Loader Program for Putting a Program 213
Into Computer Memory for Use by the AC
4.8. Assembling a Program 216
The Assembler 221
4.9. An Improved General-Purpose Computer 222
4.10. Conventional Order and the “Big and Little Endian Byte Order” 226
4.11. Summary of 72 Computer Instructions 232
4.12. History of Development of Computers 233
Computer Languages 234
The Fortran Language 236
The BASIC Language 251
Other Computer Languages (PASCAL & COBOL) 253
9

The Modern Computer

5.1. The Computer Today 257


Operating Systems 257
How the OS functions 261
Functional Operation of a Modern Computer 264
Summary of Computer Operations 266
5.2. The Concepts of Math, Writing and Language 269
Computer Languages 269
The Evolution of Programming Languages 272

• A computer's memory can be viewed as a list of cells into which numbers


can be placed or read.
• There are "buffers" which interpret signals coming from the OS to each
peripheral and vice-versa.
• If one wishes to retain, for future use, what one has been written, it must
be "saved". It is then stored on the hard-disc and an icon representing
this file appears on your desktop.
• The first task of the OS is managing the hardware and software
resources stored on the hard-disc. This is very important, since
various Application programs and input methods compete for the
attention of the Central Processing Unit (CPU) and demand
input/output (I/O) instructions for their own purposes.
• The CPU contains a special set of memory cells called "registers" that can
be read and written to much more rapidly than the main memory area.
• A key component common to all CPUs is the program counter, a
special memory cell (a register) that keeps track of which location in
memory the next instruction is to be read from.
10

• When you turn on the power to a computer, the first program that runs
is usually a set of instructions kept in the computer's ROM. The software
loaded in ROM will then begin to activate the computer's disk drives.
• In most computers, it's possible to add memory beyond the original
capacity. This greatly increases the versatility of the computer since it
can handle complicated programs that it could not before the extra
memory was installed.
• The path between the operating system and virtually all hardware not on
the computer's hard disc goes through a special program or code called a
driver or buffer.
• There are small but significant differences between a buffer and a driver
in the context of its use in a computer. Thus, a buffer is associated with
the peripheral system while the driver is associated with the computer
CPU system.
• Both buffers and drivers are simple operating codes or programs that are
stored on the ROM of the CPU memory.
• As such, the drivers were created when the OS was loaded upon the
computer hard-drive initially. The peripheral buffers were also created at
that time for the various functions available in the computer.
• But the Application buffers are created when the operator “loads” the
Application program onto the OS and its ROM memory.
• If one wishes to use an Application, one must first load it on the hard-
disc. This is done by "installing" it and is a deliberate and separate
procedure.
• When the computer starts up, it is the drivers that communicate with the
CPU and its functions. Drivers also communicate with a buffer once the
icon is "clicked" to start any operational program.
• A connected storage devise such as a hard drive is accessed through a
device driver.
• Access to files stored on disks is a central feature of all operating
systems. The specific way files are stored on a disk is called a file
system, and enables files to have names and attributes.

5.2. The Concepts of Math, Writing and Language

In order to understand how the concept of a computer was developed, one


11

needs to understand the invention and history of mathematics, writing and


language. Math deals with numbers, writing with letters of the alphabet and
language deals with sounds and words used to communicate ideas between
people. These three useful topics did not come into being by themselves but
were developed through the efforts of many individual persons over many
thousands of years. The basic reason for their development was the need for
individuals and groups to communicate with each other concerning methods
and means of survival in the world. We will not record here the extensive
changes that occurred as these three inventions matured over the ages. They
have been thoroughly documented in countless publications.

Numbers involve counting whereas Letters involve writing and making ideas
permanent by placing ideas and concepts on paper or other surfaces to form
what we now call a book or document. This involved having an alphabet and
being able to form these alphabetic letters and make words to create a
permanent record of events. Before that, soothsayers preserved the history of
their tribe or clan and passed down history of events by word of mouth.

Language is speaking sounds or words to other persons in a way that they can
understand the thoughts that one wishes them to grasp. In terms of history,
language probably came first, followed by counting or math, and then the use
of the alphabet and writing.

Computer Languages
The inventions of Languages, Numbers (counting) and Mathematics by Man
finally led to the invention of Computer Languages. This path began with the
use of a simple programming language but soon became quite complicated.
This is shown in the following diagram that lists the various Computer
languages that arose as the early computers became progressively more
complicated:
12

Note that many languages evolved early in the development of computer


programming but fell by the wayside in favor of those outlined in green. Many
types gave rise to variations of the basic program but proved difficult to use in
a specific operating system.

These computer languages evolved as an operating function of the earliest


types of computers and were tailored to the type and usage that these
computers were designed to manage. Many were “microprocessors” which were
used to control various machines or analytical instruments. Today, a
Microprocessor is included even in home appliances and in automobiles to
monitor the performance of these machines. Each has its own type of language
that is unique to that machine language so that outside influences cannot alter
its function. It is only the “personal” or “desktop” computer that uses a
universalized language like C# for the Mac-OS or Microsoft-OS languages.
13

A more detailed picture of the evolution of these “desktop-computer” languages


as a function of timeline is shown on the next page. This diagram does not
show all of the various changes in programming that occurred as presented in
the above diagram.

However, it is clear that the first programming language was “Assembly Code”
and the major part of this book deals with how this language was started and
evolved into Fortran, Unix and finally into C++, Java or C#, the basic languages
that programmers use today.
14
15

Those Interested in obtaining a copy of this book may do so by contacting:

R.C. Ropp - FRSC, C. Chem. & FAIC


Board Certified Forensic Expert
Fellow- Royal Society of Chemistry – C. Chem.
138 Mountain Ave.
Warren, NJ 07059
(908) 647-7353
e-mail: [email protected]
cell phone: (908) 656-6609

Send $49.00 USD by mail and receive copy in pdf on 2gb flash drive (e-Mac
derived)

View publication stats

You might also like