100% found this document useful (3 votes)
490 views

The History of Machines The History of Languages The History of People

The document provides a detailed history of people and machines important to the development of computing from the 1600s to present day. It covers inventors, early mechanical and electronic computers, programming languages, and important commercial systems. Key figures and developments in computing history are described.

Uploaded by

hai-sheik
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
490 views

The History of Machines The History of Languages The History of People

The document provides a detailed history of people and machines important to the development of computing from the 1600s to present day. It covers inventors, early mechanical and electronic computers, programming languages, and important commercial systems. Key figures and developments in computing history are described.

Uploaded by

hai-sheik
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

BarCharts, Inc.

® WORLD’S #1 QUICK REFERENCE SOFTWARE GUIDE

The History of People The History of Machines The History of Languages


Gottfried Leibniz (1646-1716) - Invented the Pascaline (1623-1662) - by Blaise Pascal, France. Computers were originally programmed using a dif-
first mathematical machine which could be used to The first mechanical calculator. ferent machine language for each model. During the
add, subtract, multiply and divide numbers. He also Differential Analyzer (1932) - by Vannevar Bush, 1950s, the use of assembly language became common.
developed the concept of using binary 1 and 0 to rep- MIT. A mechanical computer for solving differential This eventually led to the high-level, machine-inde-
resent numerical values. equations. Used rotating gears and shafts. pendent languages listed below.
Charles Babbage (1791-1871) - Designed and Z3 (1941) - by Konrad Zuse, Germany. An electro- FORTRAN (1957) - from John Backus, et al., at IBM.
partially implemented a steam-driven, mechanical mechanical relay-based general-purpose computer. Used FORmula TRANslating. Mainly for scientific calcula-
Difference Engine to calculate tables of numbers. the binary number system, floating-menu calculations, tions. Introduced variable names more than one letter
Designed, but never implemented, a mechanical and stored-program model. Accidentally destroyed by long.
Analytical Engine to execute programs. Allied bombers during World War II. LISP (1960) - by John McCarthy at MIT. LISt
George Boole (1815-1864) - Developed the ideas ABC (1942) - by Atanasoff and Berry, Iowa State Processing. For symbol manipulation. Introduced
now known as Boolean Algebra using the concepts of University. First electronic digital computer. Included garbage collection and the concept of functions as data
1 and 0 to denote true and false which were originally electronic switching circuits, capacitor-drum memory, objects.
proposed by Gottfried Leibniz.
Herman Hollerith (1860-1929) - Inventor of the binary number system, vector processing, and an inter- COBOL (1960) - by CODASYL. COmmon Business
tabulating machine which used punched cards to con- nal clock. Fell into disuse during World War II and was Oriented Language. Mainly for business-related data
duct the US Census in the late 1800s. forgotten for many years. Some ideas were incorporated processing. Introduced English-like syntax and empha-
John von Neumann (1903-1957) - Promoted the into ENIAC. sis on I/O structures.
stored program model for sequential computers. Colossus (1943) - British electronic digital computer that ALGOL 60 (1960) - by a joint European-American
Instrumental in early development of computers in America. helped decipher the German Enigma code, playing a key committee, ALGOrithmic Language. General-purpose
Grace Murray Hopper (1906-1992) - role in the outcome of World War II. Information on this language. Introduced recursion and block structuring.
Mathematician and U.S. Navy admiral. Encouraged machine was kept hidden for decades for security reasons. Influenced most languages that followed.
development of compilers and validation methods dur- ENIAC (1946) - by John Presper Eckert, Jr. and John APL (1962) - by Kenneth E. Iverson at Harvard. A
ing the 1950s and 1960s. William Mauchly, University of Pennsylvania. First pro- Programming Language. Concise language for mathe-
William B. Shockley (1910-1989) - Along with ductive electronic digital computer. matical operations.
John Bardeen and Walter H. Brattain, invented the junc- IBM 650 (1953) - First mass-produced computer Simula (1967) - by O.J. Dahl and K. Nygaard at the
tion transistor (1948), leading to reliable computers. (more than 1,000 sold). Used magnetic drum memory. Norwegian Computing Center. For discrete system
Alan Turing (1913-1954) - Defined “computability” IBM 360 (1964) - Model for the modern mainframe simulation. Precursor of modern object-oriented lan-
of algorithms. Devised Turing Machine, a model for auto- computers. First computer to achieve program and oper- guages.
matic computation. Influential in early British computing. ating system compatibility across a broad product line. BASIC (1967) - by John Kemeny and Thomas Kurtz
Thomas J Watson, Jr. (1914-) - Pushed IBM to CDC 6600 (1964) - Forerunner of the modern super- at Dartmouth University. Beginner’s All-purpose
develop commercial computers during the 1950s. computer. Symbolic Instruction Code. Simple, interpreted lan-
John Backus (1924-) - Designed FORTRAN (Formula Digital PDP-8 (1965) - First widely available mini- guage for beginning programmers.
Translator) while at IBM. This was the first machine-inde- computer (more than 50,000 sold). FORTH (1969) - An extensible language which uses
pendent language that could be used by programmers (as DEC PDP-11 (1970) - 16-bit minicomputer predeces- post-fix notation and extensive use of the stack to pro-
opposed to machine specific assembly language). sor to the VAX systems from Digital Equipment vide functionality in limited space. Still used in
Seymour Cray (1925-1996) - Designer of the Corporation (DEC) often used to run the BSD UNIX embedded systems.
first super-computers which are now used for high operating system.
speed calculations such as weather prediction, mil- Pascal (1971) - by Niklaus Wirth at ETH Zurich,
itary simulations and market analysis. Xerox Alto (1973) - Prototype of the modern person- Switzerland. General-purpose language for teaching
Douglas Engelbart (1925-) - Inventor of the com- al computer and workstation. Included a keyboard, programming. Features static type checking.
puter mouse pointing device. mouse, 256KB memory, 2.5MB disk drive, Ethernet Prolog (1972) - PROgramming LOGic. Designed
Robert N. Noyce (1927-1990) - At the same time connectivity, and a bitmapped display. for logic programming and experimentation in artifi-
as Jack Kilby, invented the integrated circuit (1958) Illiac IV (1975) - Univ. of Illinois. First true supercomputer. cial intelligence.
and practical methods for its production. MITS Altair (1975) - First widely available personal C (1978) - by Brian W. Kernighan and Dennis M.
Niklaus Wirth (1934-) - Inventor of the Pascal, computer. Included papertape I/O and 4KB of memory. Ritchie at AT&T Bell Laboratories. High-level lan-
Modula-2 and Oberon programming languages. Had to be assembled after purchase. guage for low-level systems programming.
Donald Knuth (1938-) - Most famous living com- Apple II (1977) - First commercially successful per- Smalltalk (1980) - by Adele Goldberg, et al., at
puter scientist. Seminal work in analysis of algorithms, sonal computer. Included audiocassette I/O, up to 48KB Xerox Palo Alto Research Center. First general-pur-
compilers, and computer-based typesetting. of memory and used a television or monitor for output. pose, object-oriented language.
Dennis Ritchie (1941-) - Designed and developed TRS-80 (1977) - Hobby microcomputer from Radio Ada (1980) - by the United States Department of
the UNIX operating system and the C programming Shack using the 6502 microprocessor. Defense. General purpose structured language for
language at AT&T. IBM Personal Computer (1981) - IBM name con- embedded systems.
Vinton Cerf (1943-) - Known as the “Father of the vinced consumers and businessmen that personal com- Modula-2 (1980) - A variant of Pascal also designed
Internet.” He was part of the team that developed the puters were useful machines. Sparked a huge boom in by Nikalus Wirth using a modular approach to pro-
Transmission Control Protocol/Internet Protocol personal computers. gramming.
(TCP/IP) networking protocol which is used as the Sun 1 (1982) - First of a successful line of worksta- C++ (1983) - by Bjarne Stroustrup at AT&T Bell
underlying communications layer powering the Internet. tions. Achieved minicomputer performance in a desktop
Robert Metcalfe (1946-) - Co-Inventor of Ethernet Laboratories. An object-oriented language based on C.
package. Popularized the UNIX operating system, the C Stimulated interest in object-oriented languages.
while at Xerox, which is used as the physical layer in com- programming language, and bit-mapped displays.
puter communications in local area networks (LANs). Objective-C (1984) - An object-oriented version of
Apple Macintosh (1984) - Popularized the easy-to- C with a different approach from C++. Used primari-
Bjarne Stroustrup (1950-) - Developer of the use, mouse-driven interface originally developed for the
C++ programming language. ly in the NeXT operating system.
Xerox Alto and Xerox Star computers. Java (1994) - A portable object-oriented language
Steve Jobs (1955-) - Co-founder (along with Steve Connection Machine (1987) - Parallel computer
Wozniak) of Apple Computer, a company which revolu- designed by Sun Microsystems to run on any architec-
which can have up to 65536 processors and distributed- ture and operating system by running within a virtual
tionized the personal computer market (then dominated memory SIMD design.
by IBM) with the Apple II and later with the Macintosh. machine (JVM). Popularized by its use in Applets
IBM PS/2 (1987) - The next generation of PCs from IBM
William H. Gates (1955-) - CEO and co-founder which utilized the Intel 80286 and the 80386 processors.
within web browsers.
(along with Paul Allen) of Microsoft Corporation, the JavaScript - A Java-like interpreted language
world’s largest software manufacturer. Sun Sparcstation (1990) - Sun’s introduction of the designed to be embedded within HTML web pages and
Tim Berners-Lee (1956-) - Known as the “Father first workstation to use the RISC architecture known as executed within the web browser. Although similar to
of the World Wide Web (WWW).” He developed the SPARC (Scalable Processor ARChitecture). Java, it does not have true object-oriented properties.
idea of sharing research data (at CERN) written in Apple PowerMac (1994) - Redesigned Apple VBScript - Another scripting language designed to be
HyperText Markup Language (HTML) across comput- Macintosh based on the Motorola PowerPC chip (RISC) embedded within HTML web pages and executed
ers using the HyperText Transfer Protocol (HTTP) co-developed with IBM. within the web browser. It is a subset of the Visual
and Universal Resource Locators (URL), all of Sun UltraSparc (1996) - The 64-bit RISC processor sys- Basic programming language.
which were developed by his group. This was the tems designed primarily for high-end computing and graphics. Visual Basic - Similar to BASIC, it has added
foundation upon which the modern Web is based. Sun JavaStation (1996) - General purpose network object-oriented approach to accessing windows com-
Linus Trovalds (1970-) - Developer of the computer based upon the Java architecture and ponents and can be compiled to run much faster.
Linux operating system, which has gained immense microSparc processor. Primarily for Intel architectures.
popularity as an open-source operating system for both Cray Y-MP - Super Computer designed for weather
development and end-user environment. analysis and simulation.
Marc Andreessen (1971-) - Developer of NCSA Apple Newton - One of the first hand-held comput- The ACM Code of Computer Ethics is avail-
Mosaic, the prototype web browser and predecessor to ers which supported handwriting recognition and able at
Netscape Navigator. uploadable programs. QUICK
QUICK http://www.acm.org/constitution/code.html
T
T II P
P
1
Architecture & Hardware Representation A common form is the “binary tree.” Common
How data is stored inside a computer. Although most operations: traverse (preorder, postorder, inorder),
Gates & Circuits information people see is textual, all information inside insert, find, delete.
• Logic Gate: an electronic device that performs a a computer can be thought of as numeric quantities, so Graph - A collection of data, all of the same abstract
simple logic function on its inputs, producing an number systems are important for understanding the data type, with the characteristic that each element
output value. The logic function may be AND, OR, internal representation. contains a connection to one or more of the other ele-
NOT, NAND, NOR, or XOR. • Binary: At the lowest level, all modern computers use ments. There is not necessarily any ordering of the
• Combination Logic: a circuit built from several the binary (base 2) representation. The digits 0 and 1 data elements. Common operations: addEdge,
logic gates to perform a specific function on its represent the two possible states of a memory bit. For removeEdge, depthFirst (traversal), breadthFirst.
input(s). A Karnaugh map can be used to find the example, a sequence of twelve bits may be represent- File Structures
simplest logical form of the function. ed as 011011010001. • Sequential Files: A list of records stored in
• Integrated Circuit: (IC or chip) a large combina- • Octal: Groups of three bits can represent any number sequential format that are processed one at a
tional logic device (or group of devices) consisting from 0 to 7, which corresponds to the digits in the time. Also known as flat-file format.
of hundreds of thousands of logic gates constructed octal (base 8) number system. Thus, an alternate rep- • Indexed Files: A list of records stored in a format
from a single piece of silicon. The basic building resentation for the bits 011011010001 is 3321. which allows an index key to be used to locate a par-
block of modern computers and other electronic • Decimal: Since people commonly use the decimal ticular record. This storage format uses less time
devices. Most computer integrated circuits are con- (base 10) representation in everyday calculations, than those used previously.
structed from groups of NAND gates. Common information in a computer is often thought of as rep- • Hashed Files: A list of records stored in a format
examples of ICs are memory chips, CPU chips, resenting decimal numbers. Thus, an alternate repre- which allows a hash value to be computed for a par-
arithmetic processor chips, and I/O controllers. sentation for the bits 011011010001 is 1745. ticular key in order to locate its record. This avoids
• Hexadecimal: Groups of four bits can represent any the need for a separate index file.
Computers number from 0 to 15, which corresponds to the digits Algorithms
A computer is a collection of integrated circuits and in the hex (base 16) number system. Thus, an alter- Abstract versions of programs that solve a specific
related components that can execute a sequence of nate representation for the bits 011011010001 is problem. Many problems can be reduced to a sorting
instructions without human intervention. A typical 6D1. or searching problem. Algorithms used to solve a spe-
modern computer has a CPU, RAM memory, a video • Characters: Groups of eight or sixteen data bits are cific problem are closely related to the data structures
monitor for output, a keyboard and a mouse for input, converted into characters for external representation used to store the data.
and a hard disk for storage. It may have many other using ASCII for the English language, or an extension • Sorting: Many common problems involve sorting
of ASCII for non-English languages. data in numeric, alphabetic, or graph form. Two effi-
peripherals (see below). Computers are classified into cient sorting algorithms are Quicksort and Heapsort.
several categories with rather indistinct boundaries: • Numbers:
Integers - Groups of 16, 32, or 64 bits are routinely • Searching: Many common problems involve
• Embedded System: A computer that is used to searching—finding one specific piece of data in a
control the sub-systems of a larger device such as a used to represent integers. A common representation large data set. An efficient search algorithm for
microwave oven, VCR or vehicle. is Two’s Complement notation, which uses one bit to sorted data is binary search. An efficient search
• Handheld: A portable computer that usually does denote the sign (positive or negative) and the rest of algorithm for unsorted data is hashing.
not have a keyboard. Input is done via stylus writ- the bits to represent the quantity.
Floating point - Groups of 32, 48, 64, or 128 bits are Operating System
ing on the screen of the computer and saved using A large, complex collection of software that con-
handwriting recognition. Like palmtops, handhelds routinely used to represent floating point numbers.
Most floating-point representations have three com- trols the basic operation of a computer. It creates and
communicate with desktops via infrared, serial or controls tasks that perform basic functions such as user
USB cables. ponents: a sign bit, an exponent, and a mantissa.
interaction, processing, and printing. The operating
• Mainframe: A general-purpose computer with a system also allocates hardware resources to different
relatively high processing speed and many peripher- tasks, provides access control and security, and handles
als. Used in centralized computing systems, where Software exception conditions and interrupts.
most of the work is performed on one computer. Programming Languages An operating system usually consists of many dif-
Mainframes often support hundreds of users. • Machine Languages: Different for each processor. ferent sub-systems:
• Microcomputer: Also called a personal computer. Rarely used today. • The kernel provides the main management of the
A small computer designed for use by one person at • Assembly Languages: Translate a concise language entire system including the processes, memory
a time for relatively simple tasks. directly into machine language. An assembly language and device I/O. It is usually written in a high
• Microcontroller: A single-chip computer that can is usually targeted to a specific processor. They are used level language (such as C) in order to be portable
be used to build larger systems. They usually have today for low-level programs such as device drivers. across architectures while certain sections (such
all the major components of a computer including • High-Level Languages: Designed for solving gen- as time-critical device drivers and interrupt rou-
memory, I/O and processing. tines) are written in assembly language.
eral problems and can be used on many different • The shell provides the textual command-line user
• Minicomputer: A small version of the mainframe machines. These languages are translated by a com-
computer, often used specifically for business data interface to the end-user to submit jobs and process
piler to an assembly language, or else directly execut- commands. Most modern operating systems also
processing or scientific processing. ed by an interpreter. High-level languages in wide- provide a Graphical User Interface (GUI) for ease of
• Network Computer: A general-purpose comput- spread use today: BASIC, C, C++, COBOL, Pascal, use and to take advantage of multi-tasking kernels.
er that has no local hard disk storage but instead and Java.
depends on a back-end server and the network to Some common Operating Systems include:
Data Types • UNIX: A portable multi-user operating system
load and run applications and save data. They offer Used inside a program to characterize the type of data
ease of maintenance and upgradability, since all the developed at AT&T Bell Labs in the early 70s.
stored in a variable or region of memory. There are three Although primarily designed for research use, it has
administration can be done on the server. categories of data types: base, structured, and abstract.
• Palmtop: A portable computer that is much small- become the principle operating system for high-end
• Base Type: Base types store individual numbers or servers and workstations as well as an alternative to
er than a laptop and is usually powered by regular characters.
batteries (such as AAA). Palmtops don’t usually Windows on Intel desktop systems.
Boolean - A storage area that contains either a True or • Linux: An open-source operating system based
have a floppy drive or hard drive but instead have False value. Usually 1-8 bits long. upon the UNIX model. Although designed from
the applications burned into the ROM. They usual- Character - A storage area that contains one alphanu- scratch, it is almost 100% API compatible with most
ly communicate with desktops via infrared, serial or meric character or symbol. Usually 8-16 bits long. commercial UNIX operating systems and is freely
USB cables. Integer - A storage area that contains one integer available on the Internet. http://www.linux.org
• Supercomputer: A computer that supports paral- value. Usually 16-64 bits long. • BSD: A variant of UNIX (named after the universi-
lel processing, usually for high-speed numeric cal- Real (or Float) - A storage area that can contain one ty where it was developed – Berkeley Software
culations. These are the fastest computers in exis- real number. Usually 32-128 bits long. Distribution) which enhanced the networking and
tence and require special software to utilize the spe- Pointer - Contains the address of a memory area. file-system code of the original UNIX and ported it
cific hardware capabilities of the computer. Usually 32 bits long. to more architectures as well as making it available
• Workstation: A low to mid-range computer that is • Structured type: Structured types store groups of to other universities. An open-source version is
used by only a few people at a time. Has more pro- base elements. available at http://www.freebsd.org
cessing power and more powerful peripherals than a Array - An ordered collection of data, all of the same base • Windows 95/98: The primary 32-bit end-user
microcomputer. Is often tailored for specific uses type, usually stored in a contiguous region of memory. operating system from Microsoft.
such as graphics or design. A workstation is the pri- Record - A collection of data fields. Each field usu- • Windows NT/2000: A high end 32-bit operating
mary component of a distributed computing system, ally has a different data type. system primarily meant for the server and business
where the total processing load is distributed across Set - An unordered collection of data, all of the same workstation market using the Intel platform.
base type. • Windows CE: An operating system designed for
many computers. Abstract data type: Abstract data types consist of col- use in handheld, palmtop and embedded computers
lections of variables and operations on those variables. which supports handwriting recognition and a
Peripherals String - An array of characters. Common operations:
Devices that facilitate transfer of data into or out of Windows-like user interface.
concatenate, substring, insert, match, equal, length. • JavaOS: An operating system based on and for the
a computer. List - An ordered collection of data, all of the same
Input: Keyboard, mouse, paper tape, magnetic tape, Java language which is designed to run the Java
abstract data type, stored in non-contiguous regions Virtual Machine in hardware for embedded sys-
hard disk, diskette, punched card, CD-ROM, voice, of memory. Each element stores a pointer to the
network or telecommunication, special devices such tems.
“next” element. Common operations: insertAfter, • MacOS: The principal operating system for the
as magnetic card readers or custom keyboards (e.g. insertBefore, delete, find.
an airline reservation agent’s keyboard). Apple Macintosh architecture.
Stack or Queue - A type of linked list, which allows
Output: Display (text or graphic), paper tape, mag- new elements to be inserted and removed only at one or Languages
netic tape, punched card, hard disk, diskette, CD- both ends. Common operations: push, pop, isEmpty. Types of Programming Languages:
ROM, printers, graphics plotters, voice, network or Tree - An ordered collection of data, all of the same • Procedural: Development of a sequence of com-
telecommunication, special devices such as cash or abstract data type, with the characteristic that each mands to solve a problem. Examples: C, Cobol,
ticket dispensers. data element may have more than one “next” element. FORTRAN, Pascal

2
• Functional: Design functions (or ‘black-boxes’) HEX OCT DEC CHAR HEX OCT DEC CHAR HEX OCT DEC CHAR Software Engineering
which when combined will transform a given input 0 0 0 NUH 2B 053 43 + 56 126 86 V
to a required output. Examples: LISP, MT, Scheme 1 1 1 SOH 2C 054 44 , 57 127 87 W Software Engineering is a fairly new discipline in
• Object Oriented: View the program as a collec- 2 2 2 STX 2D 055 45 - 58 130 88 X Computer Science that tries to apply the well tested
tion of objects where each object contains both the 3 3 3 ETX 2E 056 46 . 59 131 89 Y principles of other engineering fields to computer pro-
data and procedures required to act upon the data. 4 4 4 EOT 2F 057 47 / 5A 132 90 Z gramming and application design. This is especially
5 5 5 ENQ 30 060 48 0 5B 133 91 [ important as software is being used to control more
Examples: C++, Java, Smalltalk 6 6 6 ACK 31 061 49 1 5C 134 92 \
• Declarative: Identifies the problem and imple- 7 7 7 BEL 32 062 50 2 5D 135 93 ]
and more critical systems in which failure would lead
ment a general purpose algorithm to solve it. 8 010 8 BS 33 063 51 3 5E 136 94 ^ to loss of life and/or property. The connect function of
Examples: GPSS, Prolog 9 011 9 TAB 34 064 52 4 5F 137 95 _ these programs, without bugs, is vital. Some of the
A 012 10 LF 35 065 53 5 60 140 96 ` goals of Software Engineering are:
Architecture B 013 11 VT 36 066 54 6 61 141 97 a Understanding the Project Life Cycle
The architecture of a processor can be constructed C 014 12 FF 37 067 55 7 62 142 98 b • Analysis: Analyze and identify the different com-
using different methodologies and paradigms. The sys- D 015 13 CR 38 070 56 8 63 143 99 c ponents and requirements of the project.
tem can be built to a very general purpose or optimized E 016 14 SO 39 071 57 9 64 144 100 d
• Design: This entails the layout of the technical details
to perform a few tasks very efficiently. F 017 15 SI 3A 072 58 : 65 145 101 e
of the project and identifying the different modules.
• Complex Instruction Set Computer (CISC): A 10 020 16 DLE 3B 073 59 ; 66 146 102 f
processor implementation which provides a vast 11 021 17 DC1 3C 074 60 < 67 147 103 g This might also include reusing components/modules
array of instructions and functionality for the pro- 12 022 18 DC2 3D 075 61 = 68 150 104 h from previous projects so as to take advantage of
grammer at the cost of requiring extra CPU cycles 13 023 19 DC3 3E 076 62 > 69 151 105 i existing knowledge. This phase might also layout the
to execute them. Some of the instructions are imple- 14 024 20 DC4 3F 077 63 ? 6A 152 106 j testing process described below. The system could
15 025 21 NAK 40 100 64 @ 6B 153 107 k also be prototyped so that the project can be verified
mented in microcode. Examples include the Intel 16 026 22 SYN 41 101 65 A 6C 154 108 l
x86 and Motorola 68k series. with the customer before writing code.
17 027 23 ETB 42 102 66 B 6D 155 109 m • Implementation: The writing of the program
• L1 Cache: High speed on-chip buffer memory which 18 030 24 CAN 43 103 67 C 6E 156 110 n
is used to load instructions and data from the slower 19 031 25 EM 44 104 68 D 6F 157 111 o
based on the design specifications.
main memory in order to improve performance. 1A 032 26 SUB 45 105 69 E 70 160 112 p • Testing and debugging: The functionality of the
• Math Coprocessor (FPU): A section of the 1B 033 27 ESC 46 106 70 F 71 161 113 q implementation based on the design specifications is
processor (sometimes separated into an independent 1C 034 28 FS 47 107 71 G 72 162 114 r tested and verified. As problems are found, they are
chip) which performs floating point operations. 1D 035 29 GS 48 110 72 H 73 163 115 s repaired. The repair is verified by regression testing
• Multiprocessing: A system design method that 1E 036 30 RS 49 111 73 I 74 164 116 t the system. This will also verify that nothing was
allows multiple processors in a computer to improve 1F 037 31 US 4A 112 74 J 75 165 117 u inadvertently changed during the repair process.
performance by executing multiple tasks on each 20 040 32 SP 4B 113 75 K 76 166 118 v
21 041 33 ! 4C 114 76 L 77 167 119 w Design Techniques
processor at the same time. In CPU intensive appli- • Top-Down: An iterative approach to application
cations, this often gives a linear increase in per- 22 042 34 " 4D 115 77 M 78 170 120 x
23 043 35 # 4E 116 78 N 79 171 121 y design where the program is viewed from a “top”
formance as more processors are added. 24 044 36 $ 4F 117 79 O 7A 172 122 z level functionality, and each step in the program is
• Pipelining: A technique that breaks instructions 25 045 37 % 50 120 80 P 7B 173 123 { slowly refined into increasingly lower-level detail.
into sections which can be executed in parallel, 26 046 38 & 51 121 81 Q 7C 174 124 | • Bottom Up: The opposite of top-down. The lower-level
allowing the processor to optimize the incoming 27 047 39 ' 52 122 82 R 7D 175 125 } details are designed first, and the “top” level program is
instruction queue. 28 050 40 ( 53 123 83 S 7E 176 126 ~ put together as a combination of these “bottom” units.
• Reduced Instruction Set Computer (RISC): A 29 051 41 ) 54 124 84 T 7F 177 127 DEL • Data-flow diagrams: A graphical representation
processor implementation which provides a smaller 2A 052 42 * 55 125 85 U
set of instructions but runs much faster (one CPU of the data paths in the program using a set of well-
cycle per instruction). The complex tasks are defined symbols.
offloaded to the programmer (or compiler) which • Entity-Relationship diagrams: A graphical rep-
has to implement them using the RISC instruction Advanced Topics resentation of the objects within a program and their
set. Examples include the Sun SPARC and Motorola relationships with each other.
PowerPC series. • Artificial Intelligence: Developing software and • Data Dictionary: A repository or database of all
machines that behave intelligently or mimic some the data items in the program design.
Common Software Functions form of human behavior. Areas where AI techniques • Documentation: The process of documenting the
• Accounting: bookkeeping, calculation, print- have been applied include game playing, expert sys- code of the program and the usage of the application.
ing, forecasting tems, pattern recognition, and robotics.
• Database: storage and retrieval of records, e.g. • CAD/CAM: Computer-Aided Design/Computer-
for libraries or businesses Aided Manufacturing. Many physical devices and Glossary
• Word processing and publishing: text input, text buildings are designed entirely on a computer. The
formatting and layout, spelling correction, and printing designs can then be sent directly to machines that 32-bit - System architecture whereby data is accessed
• Graphics: 2-D line drawings and paintings; 3-D construct or craft the desired components. in 32-bit words (4 bytes) per CPU cycle, resulting in
object modeling for drafting and architecture; 3-D • CASE: Computer-Aided Software Engineering. higher throughput.
graphics for motion pictures; image processing for Similar to the goals of CAD/CAM but applied to the 64-bit - Similar to 32-bit, except data is accessed in
data analysis and display area of software development. CASE systems can 64-bit words (8 bytes) per CPU cycle resulting in high-
• Scientific calculations: approximate numerical solu- provide programmers with a better understanding of er throughput. A 64-bit bus can access more data (bus
tion of equations; symbolic solution of equations; mod- the structure of large software systems. width) faster than a 32-bit bus.
eling and simulation; data analysis and conditioning • Computer Graphics and Animation: Abstraction - The process of reducing an object and
• Software development: text editors, compilers, Computerized color palette and drawing tools allow data to their important component parts and removing
interpreters, and debuggers user to create graphics & animation for advertising, any redundancy or superficiality. Thus, an object will
• Telecommunication: modem and facsimile (fax) publishing & TV/cinema production. consist of its attributes, behavior and interface.
transmission; file transfer • Database: Providing large quantities of information to ACM - Association for Computing Machinery. The pri-
many people at the same time. Important topics are mary professional organization for Computer Science.
security, access control, speed, and search capability. Adder - A basic component in an ALU that is used to
• Multimedia: Integrating audio/video processing and add two binary numbers.
Theoretical Foundations display with standard computer processing to transfer Addressing - The process of locating data within
Logic information to the user at a higher rate and in forms computer memory. Direct addressing refers to locating
• Propositional Logic: For reasoning about the other than text. data with absolute positions. Indirect addressing refers
truth or falsehood of logical expressions. • Network: Providing connections for transfer of to locating data by using relative address to point to the
• Predicate Logic: A generalization of propositional information from one computer to another. Important actual location.
logic. Also called first-order logic. concerns are speed, reliability, compatibility, and Algorithm - A finite set of well-defined rules for the
• Uses of Logic: transparent operation. solution of a problem in a finite number of steps.
Designing electronic circuits - A logical expression • Neural Networks: A branch of Artificial ALU - Arithmetic Logic Unit. The part of a computer
can be implemented using a set of logic gates. Intelligence that models the process of the brain in processor which performs the mathematical, logical
As the basis for programming languages such as solving problems. The system is trained using pre- and comparison operations.
Prolog and SQL. defined input and known outcomes and then is used ANSI - American National Standards Institute.
to solve new problems. They have been used in stock Defines standard languages and codes.
Sets market prediction, network queue analysis and opti- Application Program Interface (API) - A well
The fundamental model for data representation and mization problems. defined set of routines written to perform a certain task.
operations. • Parallel Processing: Using multiple processors to Example: Win32 API for Microsoft Windows programming.
• Computer representations: Lists, vectors, and execute different parts of a program at the same time, ASCII - American Standard Code for Information
hash tables are specialized forms of sets. or execute the same operation on many data elements Interchange. A seven-bit code that defines how to rep-
• Common operations: insert, delete, lookup at the same time. Can provide a huge increase in pro- resent alphabetic and non-alphabetic characters using
Automaton cessing speed. the numbers 0-127.
A representation, in the form of a graph, of the • Virtual Reality: Building an artificial world inside a Assembler - A program that compiles a program
states of a program and the transitions of the pro- computer and allowing a user to directly manipulate it written in assembly language into machine language.
gram from one state to another. through special hand and eye sensors and effectors. Assembly language - A programming language
Turing machine whose basic set of operations includes the operation
An abstraction of a computer that consists of an codes of the target machine, and whose data structure
automaton and an infinite-length tape. Once each time Order notation maps directly onto the memory and registers of the
unit the automaton reads a character from the current “Big-Oh” notation. Used to represent time and space machine.
tape position, then optionally changes its internal state, efficiency of algorithms. If T(n) is the actual runtime of Atomic operation - A programming term used to
writes a new character at the tape position, and/or moves a program, then the statement “T(n) is O(f(n))” means describe an operation which cannot be interrupted.
the tape one position right or left. Every computer can that there is an integer n0 and a constant: Primarily used in multi-threaded programming for
compute exactly what a Turing machine can compute. c > 0 such that for all integers n ¯ n0, T(n) ≤cf(n). semaphores and shared memory to prevent deadlocks.

3
Glossary continued

Backus-Naur Form (BNF) - Pseudo-languages File System - A method of creating, storing, manag- Parity - An error checking mechanism whereby the
used to describe the format of programming languages. ing and retrieving files on a storage device. number of 1s in a transmitted byte should either be
Baud - A unit of signaling speed referring to the number First In, First Out (FIFO) - A programming term for even (even parity) or odd (odd parity) in order to veri-
of times the state of a line changes per second. Related to a method of queuing data wherein the first data written fy the validity of the byte.
bits per second, which is a more accurate measure. into the queue is the first one read out. Parsing - The process of interpreting an input stream
Binary - Mathematical base 2 representation. A code Floating point - A method for representing numbers in by breaking it down into component parts and working
that uses only the digits 0 and 1. which the decimal point is not fixed, but regularly recalculated. with each individual part in sequence. Most common
Bit - A single digit in a binary representation. The Flow Control - A networking term used to denote the in compiler design.
smallest unit of memory in most computer systems. process of managing the flow of data across a medium Peripheral - A device (such as a keyboard,
An abbreviation of “binary digit”. using signals in the data stream or on a separate channel. mouse or printer ) which is connected to a comput-
Bitmap - A method of storing image data in a file Flow Chart - A programming methodology which uses er to provide added functionality.
using 1s and 0s to represent the on and off of points on graphical objects (squares, rectangles, ovals, circles) to Pipe - A programming term referring to a virtual
the screen. A pixmap is a bitmap which allows the stor- break down the flow of a program into its component steps. connection between two processes in a computer
age of color information. FPU - Floating Point Unit. A computer component that which allows them to communicate.
Buffer - A temporary memory storage area which can can perform very high speed arithmetic. Often used in Polling - A round-robin sequence whereby a comput-
be used to retain data due to a slow device (such as a hard association with a CPU to increase the calculating speed er can check a number of peripherals connected to it to
drive). The buffer holds the data until the device is avail- of a computer. find out if there is any data queued to be sent or wait-
able. Then the buffer is flushed and the data is saved. Full-Duplex - Transmission of data simultaneously in ing to be received from the device.
Bug - An error in a program which causes it to func- both directions. Pseudocode - A programming term used to refer to
tion incorrectly or crash. Gigabyte (GB) - 1024 Megabytes. describing a concept (such as an algorithm) in a
Bus - A set of signal lines used to transmit signals (data and Graphical Users Interface (GUI) - A computer sequence of logical coded steps using a subset of an
instructions) between different components of a computer. interface which uses graphic objects to represent items informal language such as English.
Byte - A group of eight adjacent binary digits operat- such as files and in which the user performs operations Preprocessor - A general purpose program which is
ed as a unit. by graphically performing operations similar to those often used by compilers to expand macros, include
Cache - High speed memory that is used to store fre- that would be done manually. files and perform other textual conversions before the
quently accessed data or instructions for the CPU. It Half-Duplex - Transmission of data in only one direc- compilation step.
can also refer to disk caching whereby frequently tion at a time. Program - A sequence of statements in any program-
accessed data on a hard drive is stored in RAM. Hashing - An indexing method used to store data in ming language to perform some processing.
Character - One of a set of symbols which includes lists or arrays which allows the data to be evenly distrib- Protocol - A well defined set of rules regarding the
both alphabetic and numeric codes, plus punctuation uted, thus improving retrieval speeds. way two computers, processes, applications should
marks and other useful symbols. In most Western lan- Header - The precursor to a message which provides communicate. This allows for inter-operability of
guages, a character is stored in one byte of memory. information about the message itself, such as the size, products from different vendors.
However, many other languages require two or more checksum and content. Random Access Memory (RAM) - The type of
bytes to store one character. Heap - The section of memory used to allocate tempo- storage typically used for the memory of a computer.
Checksum - A mathematical calculation performed rary storage for a running program. Each memory unit (typically a byte or word) can be
on a set of data that is used to verify the integrity of the Hertz - Equivalent to one cycle per second. Used to directly accessed. RAM will contain information as
set. Primarily used to check for errors in data trans- measure the clock speed of processors (in million hertz) long as power is applied to it.
mission. A variation known as CRC (Cyclic- and refresh rates of monitors. Read Only Memory (ROM) - A type of memory
Redundancy-Check) uses a complex equation to com- Hexadecimal - Base-16 numbering system. that does not lose information when it is not supplied
pute a value to ensure data integrity. Huffman Coding - A method of data compression in with power. Typically used in a computer to store a
Chip - An integrated circuit. The fundamental hard- which more frequent data are given shorter codes. very low-level control program.
ware component of computers. Infinite loop - A never ending loop usually caused by Record - A structured collection of data.
Command shell - A front-end user program which a logic error in a program. A common effect is the hang- Semantics - A programming term used to refer to
processes input commands to the computer. Examples ing of the program and sometimes the computer. the actual meaning of a sequence of coded steps (as
include the MS-DOS shell and Korn Shell (UNIX). International Standards Organization (ISO) - opposed to syntax).
Compiler - A program that converts a program writ- International group which defines standards for data com- Source Code - The actually textual coding of a pro-
ten in a high-level programming language into a pro- munications. An international organization similar to ANSI. gram in the native language (such as C or Java).
gram written in assembly or machine language by sub- Interpreter - A program that translates and executes a Stack - The section of memory in a program used
stituting several assembler or machine language state- program one statement at a time. to store local variables, return addresses and param-
ments for each high-level statement. Interrupt - A hardware command which stops the currently eters to functions.
Constant - A programming term which refers to a executing flow in a processor in order to handle a higher pri- Syntax - A programming term referring runs to
value which does not change. Example: pi, e ority need (such as reading information from a network). the symbolic meaning of a sequence of coded steps.
Context switching - The ability of a processor to Intranet - The internal network of a company which is Terabyte (TB) - One thousand gigabytes.
switch between multiple tasks and allocating a certain private from the outside world. It is kept separate using Variable - A component of a program that represents
amount of run-time for each task. a firewall in order to protect confidential information an area of memory used to store some data.
CPU - Central Processing Unit. The part of a comput- and resources. Virtual memory - Utilizing hard disk storage as an
er where instructions are interpreted and executed. Kilobytes (KB) - Also abbreviated as K. A unit of mem- extension of memory (RAM) in order to make a com-
Cryptography - The branch of Computer Science ory or storage containing 1,024 bytes. 256KB = 262,144 puter behave as if it has a larger amount of memory.
and Mathematics which deals with the encryption and bytes. Sometimes used informally for units of 1,000 bytes.
decryption of data using mathematical algorithms. Last In, First Out (LIFO) - A programming term for
Daemon - A background process on a server usually a method of queuing data wherein the last data written CREDITS PRICE
designed to perform repetitive duties such as email into the queue is the first one read out.
processing or file management. Lexicon - A programming term which refers to the Editor: Mahesh Neelakanta U.S. $ 3.95
Data Compression - The process of compressing identifiers, constants, keywords and symbols which Layout: Michael D. Adam CAN $ 5.95
information using a mathematical algorithm or pattern make up the programming language.
recognition to reduce the amount of storage needed to Loop - An iterative process which executes the same NOTE TO STUDENT
save the data. commands repetitively until an exit condition is satisfied.
Deadlock - A logic error wherein two programs are Mask - A binary coded filter which is used to block out This guide is an outline of the key points typically
waiting for resources that the other has already allocat- certain values (bits) and allow others to pass through. found in introductory courses. Due to its con-
ed, leaving each in a wait state. Megabytes (MB) - A unit of memory or storage contain- densed format use it as a study guide, but not as
Debug - To find and fix errors in a program. ing 1,024KB (1,048,576 bytes). 20MB = 20,971,520 bytes.
Debugger - A tool used to help aid tracking down Million Instructions Per Second (MIPS) - A a replacement for assigned class work.
and fixing logic errors in programs by allowing the measure of the number of executable machine instruc- All rights reserved. No part of this publication may be reproduced or transmitted in any form, or by any
program to be stopped while running to view the con- tions carried out by a processor. means, electronic or mechanical, including photocopy, recording, or any information storage and retrieval sys-
tem, without written permission from the publisher. © 2000 BarCharts, Inc., Boca Raton, FL
tents of variables, memory and files. Multiplexing - The process whereby multiple com-
Device Driver - A software component providing access munication channels are combined into a single channel
to a hardware module that is connected to the computer. using time, space or frequency division. This allows the ISBN-13: 978-142320806-8
Digital Signal Processor - A specialized chip single channel to be shared by multiple devices. ISBN-10: 142320806-4
which is used to process high speed analog signals Multithreading - A programming term where a
such as audio-video streams. process can have multiple tasks running (such as print-
Disassembler - A program that converts machine ing and editing) at the same time.
code to assembly code, which is easier for a program- Nibble - Half a byte (4 bits).
mer to read. NULL - The value “nothing.” Usually used to denote
Editor - A program that is used to load, modify and save unset pointer references. visit us at
program text. Most modern editors include features such
as syntax hi-lighting and compiler error parsing.
Object Code - During the compilation process, it is the tran-
sitory state from source code to machine code. This must take quickstudy.com
Error Correction - The ability to correct errors in place before linking is done to generate an executable file.
data transmission by including redundant data or pari- OCR - Optical Character Recognition. Hardware and
ty information. software that transfer data into a computer by “reading” 10/08
Extranet - A portion of a company’s internal network a printed page of text.
which is made available to the public for the purpose of Octal - Base 8 numbering system.
information sharing. Offset - A relative term used to denote how far an
Fault Tolerance - The ability of a computer to with- object is from a given starting point.
stand failures of one or more components (such as Open Source - A practice whereby source codes to
memory, processor, power supply) using redundancy. applications, device drivers, operating systems, etc. are Customer Hotline # 1.800.230.9522
File - A collection of data records residing together on made publicly and freely available allowing others to fix We welcome your feedback so we can maintain
a storage device. bugs and make enhancements to the software. and exceed your expectations.

You might also like