Go backward to 5.2 Data Representation - Standards
Go up to 5 Computer Constructs, Constraints, and Structures.
Go forward to 5.4 Structured Program Design and Software Engineering
5.3 Hardware Review
Hardware is what computer science is built on. We need the physical
computer to get it to work. There have been theoretical machines,
but they are not of much use.
See: Nance & Naps Chapter 1 page 7.
The processor is the director of the "show".
(Many systems today have more than one director, but
that is a different story.) The processor will perform the
fetch-execute cycle for each instruction. (Though instructions may be
pipelined or overlapped and executed simultaneously.) It is often
best to think of the processor getting one instruction from memory,
as pointed to by the instruction pointer,
updating the instruction pointer to point to the next
instruction, and then executing that instruction. With todays computers
this is not very realistic, but most of the time you can pretend
that it works this way.
The instruction (See: 5.1.11) is a binary encoded
structure that tells the processor what to do. Most instructions on
most computers are very limited. It will be limited to simple
things like addition, subtraction, logical instructions like AND and OR,
decisions like is a number zero or not. You could do each of the instructions
by hand if you understand the underlying archetecture of the computer.
- Processor
- Instruction Encoding
- Privileged States
- Fetch Execute Cycle
- Interrupts, Machine State, Stack, Heap, and Direct Memory Access
- Advanced processor concepts
- Parallel Processing
- Vector Processing
- Multi Processor, SMP, SIMD, MIMD
- Distributed processing
- Pipeline instruction processing
- Instruction pre-fetch
- RISC/CISC system
- Memory and Storage
- Central Storage (RAM)
- Disk Storage
- Tape Storage
- Memory management - Paging and Segmentation, Instruction Restart
- Caching -- Data, Instruction, and Unified
- Input and Output
- Printers and Keyboards
- Memory mapped I/O
- Graphics displays
- Touch panels
- Scanners
Compiler character representation of internal values.
- Operators and Expressions
Specific characters are used to represent specific operations.
The range of operators varies from one language to the next.
For most languages the basic operators are the same. As well as the order of
precedence. "C" and APL have more operators than most.
Some languages let the programmer extend the meaning of an operator.
An example of this is "C++".
- Floating Point Limits and Precision
Floating point numbers represent a wide range of values. But not
with the same precision every where. Floating point numbers also
can represent "things" that are not numbers.
For example zero divided by zero. See: Nance & Naps Chapter 2 page 39 and Chaper 3 page 57.
- Test for "equality"
- Distribution of Numbers
- Precision of numbers
- Overflow and underflow
- numbers that do not have an exact representation. Like .100
- Floating point standards
- Enumerated Types
Usually represented internally by an integer.
- String and Character Data
ASCII is ... Problems with ASCII. 16 Bit character standards.
See: Nance & Naps Chapter 3 page 73, page 83 and Appendix 4
page A.16. Please note that Nance & Naps leave out part of
the ASCII character set. They also fail to cover extensions.
This includes all
control characters and the IBM graphics characters. - Data Storage
- Global Data
- Local data - Frame
- Block Structure and Scope
Where can which data be accessed within a program.
- Order of Precedence
Which operator uses which arguments in which order.
- Type conversion
- Arrays
- Multi Dimension Arrays
- Stacks & Queues
- Sequential Execution
- Conditional Statements (or Decision Trees) and Switch Statements
- Loop Structures -- Doing things more than once.
- Input and Output
- Subroutines and Functions
Some systems spend most of there time sorting. This is a critical
area of Computer Science, an area that a great deal of research has been
devoted to.
- Bubble sort
- Shell sort
- Quick sort
Instructor: ltaber@pima.edu** Red's Home page** The Pima College Site