Computer Programming - T&T Software WWW Server

Download Report

Transcript Computer Programming - T&T Software WWW Server

Computer Programming
Putting the machine under our
command
Definition of a Program
A collection of instructions that
describe a task, or set of tasks, to
be carried out by a computer
Types of Computer Programs
Firmware
Systems Software
Applications Software
Programming Languages
A programming language is an
artificial language that can be
used to control the behavior of a
machine.
Early Computer Programming
The first computers
were programmed
by changing the
wiring
Programming Language Background
John von Neumann - stored program
Alan Turing - Turing Machine
Alonzo Church - Lambda calculus
First Generation Languages
Machine level code
Binary
Univac & IBM 701
 Add reg 1 to reg 2 place results in reg 6
 000000 00001 00010 00110 00000 100000
Second Generation Languages
Assembly code
Mnemonic code to represent instructions
 Move 61 to register named “al”
 mov al, 061
Third Generation Languages
Use English-like terms
Compiler to translate to machine level
Fortran, ALGOL, COBOL early examples
 COMPUTE NET-PAY = GROSS-PAY - TOTAL-TAX
Fourth Generation Languages
More oriented toward problem solving
State the problem, don’t care how it is
solved.
Divided into categories
SQL - Structured Query Language
 Select * from Employee where Last-Name = “Smith”
Fifth Generation Languages
Set of constraints rather than steps to
solve problems
Heuristics
Artificial Intelligence
Prolog
 cat(tom) |- true
Program Development Life Cycle
Step 1
Describing the Problem
Step 2
Making a Plan
Step 3
Coding
Step 4
Debugging
Step 5
Finishing the Project
Step 1 : Describing the Problem
 The problem statement is:




The starting point of programming
A description of tasks the program is to accomplish
How the program will execute the tasks
Created through interaction between the programmer and the
user
 The program statement includes error handling and a
testing plan
Parking Garage Example
PROGRAM GOAL:
To compute the total pay for a fixed number of hours worked at a
parking garage.
INPUTS:
Number of Hours Worked........................ a positive number
OUTPUTS:
Total Pay Earned ................................... a positive number
PROCESS:
The Total Pay Earned is computed as $7.32 per hour for the first
eight hours worked each day. Any hours worked beyond the first
eight are billed at $11.73 per hour.
ERROR
HANDLING:
The input Number of Hours Worked must be a positive real number.
If it is a negative number or other non-acceptable character, the
program will force the user to re-enter the information.
TESTING PLAN:
INPUT
OUTPUT
NOTES
8
8*7.32
Testing positive input
3
3*7.32
Testing positive input
12
8*7.32 + 4*11.73
Testing overtime input
–6
Error message/ask user to
re-enter value
Handling error
Step 2: Developing an Algorithm
Wake Up
 Algorithm development:
 A set of specific, sequential steps
that describe what the computer
program must do
 Complex algorithms include
decision points:
 Binary (yes/no)
 Loop (repeating actions)
 Visual tools used to track algorithm
and decision points:
Check wallet
for $
Yes
Head off
to cafe
Go get
gas
Do I have
> $80
Yes
Yes
No
Do I have my
credit card?
No
Go to the ATM
for cash
Buy
textbook
Did I get $80
from the ATM?
Go to
accounting
lecture
No
Flowchart and Pseudocode
Flowchart
Pseudocode
Bold terms show actions that are common in
programming, such as reading data, making
decisions, printing, and so on.
1. Ask the user how many hours they worked today
2. If the number of hours worked < = 8,
compute total pay without overtime
otherwise,
compute total pay with overtime pay
3. Print total pay
Underlined words are
information items that appear
repeatedly in the algorithm.
Step 3: Coding
 Coding is translating an algorithm into a
programming language
 Generations of programming languages
Compilation
Compilation is the process of converting
code into machine language
Compiler reads the source code and
translates it into machine language
After compilation, programmers have an
executable program
Interpreter
 Interpreter translates source code into a line by line intermediate
form
 Each line is executed before the next line is compiled
 Programmers do not have to wait for the entire program to be
recompiled each time they make a change.
 Programmers can immediately see the results of changes as they
are making them in the code.
Step 4: Debugging
Running a program to find errors is known
as debugging
Sample inputs are used to determine
runtime (logic) errors
Debugger: Tool that helps programmers
locate runtime errors
Step 5: Finishing the Project
Users test the program (internal testing)
Beta version released:
Information collected about errors before final
revision
Software updates (service packs):
Problems found after commercial release
Documentation created:
User manuals
User training
Programming Languages
Selecting the right language:
 Space available
 Speed required
 Organizational resources available
 Type of target application
Flash /
XML
ASP / JSP
JavaScript
VBScript
Visual
Basic
C / C++
Java
HTML
The CPU:
Processing Digital Information
 CPU is the brains of the
computer
 Different types of CPUs
 Intel and AMD chips: Used in
most Windows-based PCs
 Apple systems use different CPU
design
 Differentiating CPUs
 Processing power
 Clock speed and cache
Instruction Set
All commands that the CPU can execute
 Arithmetic
 Logic
 Data
 Control flow
Instruction Set Architecture
 CISC
 Complex Instruction Set Computer
 Many different instructions
 Intel - Windows
 RISC
 Reduced Instruction Set Computer
 Fewer instructions
 Motorola/Intel - Macintosh
The CPU Machine Cycle
 Fetch
 The program’s binary code is “fetched” from its temporary location
in RAM and moved to the CPU
 Decode
 The program’s binary code is decoded into commands the CPU
understands.
 Execute
 The ALU performs the calculations.
 Store
 The results are stored in the registers
The System Clock
Located on the motherboard
Controls the CPU’s processing cycles
Clock cycle
 Pulse or tick
Clock speed
 Number of pulses per second
 Measured in hertz (Hz)
The Control Unit
• Manages the switches inside the CPU
 Is programmed by CPU designers to
remember the sequence of processing
stages for that CPU
 Moves each switch to its correct setting
(on or off) and then performs the work
of that stage
The Arithmetic Logic Unit (ALU)
• Part of the CPU designed to perform
mathematical operations (addition,
subtraction, multiplication, division, etc.)
• Also performs logical OR, AND, and NOT
operations
 Is fed data from the CPU registers
Word size: Number of bits a computer can work
with at a time
Cache Memory
 Small amount of memory
located on the CPU chip or
near it
 Stores recent or frequently
used instructions and data
 Used for quick access by
the CPU
 Different levels of cache
Software Horror Stories
http://www.cs.tau.ac.il/~nachumd/
verify/horror.html