beginning snapshots
DESCRIPTION
Beginning Snapshots. Chapter 0. Objectives. Give an overview of computer science Show its breadth Provide context for computer science concepts Events from the past Describe basic components, organization of a computer. Algorithms and Data Structures Architecture - PowerPoint PPT PresentationTRANSCRIPT
Beginning Snapshots
Chapter 0
C++ An Introduction to Computing, 3rd ed. 2
Objectives
Give an overview of computer science• Show its breadth
Provide context for computer science concepts• Events from the past
Describe basic components, organization of a computer
C++ An Introduction to Computing, 3rd ed. 3
Areas of Computer Science
Algorithms and Data Structures
Architecture
Artificial Intelligence and Robotics
Database and Information Retrieval
Human-Computer Communication
Numerical and Symbolic Computation
Operating Systems
Programming Languages
Software Methodology and Engineering
Social and Professional Context
C++ An Introduction to Computing, 3rd ed. 4
Important Concepts in Computer History
The mechanism of arithmetic
The stored program
The graphical user interface
The computer network
C++ An Introduction to Computing, 3rd ed. 5
Computing Systems
Computers have two kinds of components:Hardware – physical devices such as• CPU• memory• storage devices
Software – programs such as• Operating system• applications• utilities
C++ An Introduction to Computing, 3rd ed. 6
Hardware: CPU
Central Processing Unit (CPU):• the “brain” of the machine• Circuitry that performs arithmetic and logical ML
statements
CPU measurement • Speed (roughly) in megahertz
(millions of clock-ticks per second)
Examples• Intel Pentium, AMD K6, Motorola PowerPC, Sun
SPARC,
C++ An Introduction to Computing, 3rd ed. 7
Storage
Random Access Memory (RAM)• “Main” memory, which is fast, but volatile...• Analogous to a person’s short-term memory.• Many tiny “on-off” switches
• “on” is represented by 1, “off” by 0.
Each switch is called a binary digit, or bit.• 8 bits is called a byte.• 210 bytes =1024 bytes is called a kilobyte (1K)• 220 bytes is called a megabyte (1M).
C++ An Introduction to Computing, 3rd ed. 8
Storage
Secondary Memory (Disk):• Stable storage using magnetic or optical
media.• Analogous to a person’s long-term memory.• Slower to access than RAM.
Examples: • floppy disk (measured in kilobytes)• hard disk (measured in gigabytes (230 bytes))• CD-ROM (measured in megabytes), ...
C++ An Introduction to Computing, 3rd ed. 9
Input and Output
Input devices• Instructions and data must be encoded in
binary form and transmitted to the CPU
Examples:• keyboard• mouse, trackball, joystick• scanner• audio, video capture boards
C++ An Introduction to Computing, 3rd ed. 10
Input and Output
Output devices• Convert data from binary to another form
Examples• monitors, printers• sound, video• robotics control
Communication between CPU and peripheral devices is through ports• Ports communicate via the system bus
C++ An Introduction to Computing, 3rd ed. 11
Software: OS
OS acts as the “manager” of the system, • Making sure that each hardware device
interacts smoothly with the others.
Provides an interface • Enables user to interact with the computer, • Awaits user input if no application is running.
Examples: MacOS, Windows-95, Windows-NT, UNIX, Linux, Solaris, ...
C++ An Introduction to Computing, 3rd ed. 12
Software: Applications
Applications are non-OS programs • Perform some useful task• Including word processors, spreadsheets,
databases, web browsers, C++ compilers
Example C++ compilers/environments: • CodeWarrior (MacOS, Win95, WinNT,
Solaris) • GNU C++ (UNIX, Linux)• Turbo/Borland C++ (Win95, WinNT)• Visual C++ (Win95, WinNT)
C++ An Introduction to Computing, 3rd ed. 13
Software: User Programs
Programs that are neither OS programs nor applications are called user programs.
User programs are what you’ll be writing in this course.
C++ An Introduction to Computing, 3rd ed. 14
What is Programming?
Computer Program• A sequence of statements that instruct a
computer in how to solve a problem.
Programming• The act of designing, writing and maintaining
a program
Programmers • People who write programs
C++ An Introduction to Computing, 3rd ed. 15
What kinds of statementsdo computers understand?
A computer only understands machine language statements.
Characteristics of machine language• A sequence of ones and zeros • Cause the computer to perform a particular
action, such as add, subtract, multiply, ...
C++ An Introduction to Computing, 3rd ed. 16
Machine Language (ML)
ML statements • Stored in a computer’s memory
Computer memory is a sequence of switches. • an “on” switch is represented by 1, • an “off” switch is represented by 0.
ML thus appears to be binary (base-2):
0010111010110101
C++ An Introduction to Computing, 3rd ed. 17
Early Computers
... required a programmer to write in ML...
Problem• Easy to make mistakes!• Such mistakes are hard to find!• Not portable -- only runs on one kind of
machine!
Programming was very difficult!
C++ An Introduction to Computing, 3rd ed. 18
A Bright Idea
Devise a set of abbreviations (mnemonics) corresponding to the ML statements
Create a program (the assembler) to translate them into ML.
ADD 34, R1MOVE R1,1200CMPR R1, R2
100111001110010110100110110111
Assembler
Assembly languagestatements (mnemonics)
Machine language statements
C++ An Introduction to Computing, 3rd ed. 19
Advantages and Disadvantages
More natural than binary.
Much easier to read programs
Much easier to find and fix mistakes
Still not portable to different machines
Each machine had its own set of mnemonics
Each had its own assembler
C++ An Introduction to Computing, 3rd ed. 20
High Level Languages
Improvement on assembly language• Devise a set of statements that are close
to human language (if, while, do, ...)• Create a program to translate them into
ML.
The set of statements is called a high level language (HLL) The translation program is called a compiler.
C++ An Introduction to Computing, 3rd ed. 21
Contrast Assembler and HLL Compiler
Assembler translates one mnemonic into one ML statement
Compiler translates one HL statement into several ML statements
1010110011110101
0000000000010000
0010111010110101
0000000000010010
0010111011111101
0000000000010100
z = x + y; Compiler
C++ An Introduction to Computing, 3rd ed. 22
Advantage of HLLs
Programs are easier to read
Errors are easier to find
Programs are portable from one computer to another• Assumes the language is standard• Just create a new compiler which does the
translation into the correct ML
C++ An Introduction to Computing, 3rd ed. 23
Objectives in Programming A program should solve a problem:
Correctly
Efficiently
Readably
In user-friendly fashion
It actually solves the problem
Without wasting time or space
Understandable by another person
In a way that is easy for its user to use
C++ An Introduction to Computing, 3rd ed. 24
Summary of "Levels" of Computer Languages
Low levelML in binary language
Medium Level Assembly language
High Levelas in C++
Hard to read, not portable
Mnemonics, easier to read, still not portable
Reads like English and algebra, portable