The History of Machines The History of Languages The History of People
The History of Machines The History of Languages The History of People
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.