How Are Computers Programmed?

Download Report

Transcript How Are Computers Programmed?

How Are Computers Programmed?
CPS120: Introduction to
Computer Science
Lecture 5
Problem Solving
 Is an art, not a science
 It must be experienced, it can't be taught
Guidelines can be provided
– Based on experience
– Sound like platitudes
– Are internalized as we learn to solve problems
 It requires patience
Problem Solving Tasks
 Establish the context of the problem
Understand the problem
Determine the primary goals of the solution
Create a solution
Problem Solving Guidelines

One big problem is unsolvable
Many small problems can be managed

Understand the problem: What is needed?
Write on paper what results are expected
What functions (procedures) will be required to generate
these results
What information will need to be given to these functions
Describe what the functions do before you write a single line
of code
Programs
 A program is a set of step-
by-step instructions that
directs the computer to do
the tasks you want it to do
and produce the results you
want.
The Program Development Cycle
Understand the problem
Plan the program's logic
Code the program
Get the program into machine-readable form
Translate the program
Test and debug the program
Document the program
Understand the problem
 Become familiar with what the program is trying
to accomplish
Read the specifications
Ask questions
Understand the specifications
 Eliminate extraneous information
Plan the Program’s Logic
 Decide how to best meet the program’s
specifications
 Often uses a flowchart or pseudocode
 Divide the program into subroutines, functions or
modules
Subroutines cost less and take less time to maintain
Can be used in other programs
Several programmers can work on the same project
Code the Program
 Put the solution, generally documented with
pseudocode or a flowchart into a programming
language
Machine-Readable Form
 Key the program into a computer
Translate the program
 Translated into machine language using an
assembler, a compiler or an interpreter
 Includes the elimination of syntax errors
 Generate executable file
Test the Program
 Logic errors are not listed during the translation
projects
 Only way to find logic errors is to do program
testing
Involves using sample data as input
Executing the program
Checking the results manually
 Know as debugging
Document the Program

Internal Documentation
Comments

External Documentation
Program specification
Layout chart
Hierarchy chart
Program flowchart
Pseudo-code
Data Dictionary
– Input, Output, Work Area
– Name, description, type, initial value, calculation
Source listing
Test Plan
Programming Languages
 A programming language
is a set of rules that
provides a way of telling
a computer what
operations to perform.
Levels of Programming
Languages
 Machine language
 Assembly Language
 High Level Languages
 Fourth Generation Languages (4GL)
Machine Languages

different for each computer processor
0100
001101 100000 001101 110001
00101 10001 10000
01110
111001
. . .
Assembly Languages

different for each computer processor
main
proc pay
mov ax, dseg
mov ax, 0b00h
add ax, dx
mov a1, b1
mul b1, ax
mov b1, 04h
High-Level Languages
 Higher Level Languages
Use traditional programming logic where the
programming instructions tell the computer what to
do and how to perform the required operations.
 4GLs
Use high-level English-like instructions to specify
what to do, not how to do it .
Interpreter vs. Compiler
 Interpreter
Translates instructions to machine code line-by-line.
 Compiler
Translates the entire program to machine code
before running it.
Types of Programming
Languages
 Machine language
 Procedure-oriented languages
 Object-oriented languages
 Event-driven languages
Early Language History







FORTRAN (short for Formula Translator, developed in the 1950s by IBM
In 1958, a language called ALGOL (Algorithm Language) was developed
COBOL (Common Business Oriented Language) was created in 1960 to serve
as the primary language for large-scale programs
In 1964, the BASIC language (Beginners All-Purpose Symbolic Instruction
Code) was first used
In 1965, a language called PL/I was developed in hopes of being everything to
everyone.
PL/I proved to be too complex.
In the late 1960s, Niklaus Wirth developed a teaching language called Pascal.
Later Language History




Ada, which was developed in 1983, is large and complex.
Smalltalk is graphical and object-oriented. Concepts developed
with Smalltalk were important to the development and continued
development of languages like C++ and Java
The C language was derived from ALGOL.
C++ is C with the addition of object-oriented concepts.
Procedure-Oriented Languages
FORTRAN
 COBOL
 Pascal
C
 Ada

OOED Languages
 Object-oriented languages
Smalltalk
C++
Ada 95
 Event-driven languages
Visual Basic
most Visual languages
What Can a Program Do?
 A program can only instruct a computer to:
Read Input
Sequence
Calculate
Store data
Compare and branch
Iterate or Loop
Write Output
Fundamental Programming Concepts
 Assignment of values to a variable
 Iteration (Looping)
Over a set of set of statements
With respect to a logical expressions (conditions)
 Delegation of sub-tasks to functions / procedures
The Structure Theorem


The Structure Theorem states that any algorithm can
be built from three basic control structures.
One-after-another (Sequence)
Decision-making (Selection)
Making choices between 2 or more alternatives

Repetition (Iteration)
Concerned with repetitive tasks (and the termination
conditions of loops)
C++ Control Structures
1.
2.
3.
4.
–
"Sequence statements" are imperatives
"Selection" is the "if then else" statement
AND, OR, NOT and parentheses ( ) can be used for compound
conditions
"Iteration" is satisfied by a number of statements
–
–
–
"while"
" do "
"for"
The case-type statement is satisfied by the "switch"
statement.
–
CASE statements are used for most non-trivial selection
decisions
Sequence Control Structures
 Sequence control structures direct the order of
program instructions.
 The fact that one instruction follows another—in
sequence—establishes the control and order of
operations.
Calculate
 A program can instruct
a computer to perform
mathematical
operations.
Add 1 to
Counter
Store
 A program will often
instruct a computer to
store intermediate
results.
Place 1
in
Counter
Compare and Branch
 A program can instruct a computer to compare two
items and do something based on a match or
mismatch which, in turn, redirect the sequence of
programming instructions.
There are two forms:
IF-THEN
IF-THEN-ELSE
IF-THEN
Entry
Test
condition p
Exit
false
true
True
statement a
IF-THEN-ELSE
Entry
Test
condition p
false
“false”
statement a
true
Exit
“true”
statement a
Iterate
 A program loop is a
form of iteration. A
computer can be
instructed to repeat
instructions under
certain conditions.
No
Iteration Control Structures
 Iteration control structures are looping
mechanisms.
 Loops repeat an activity until stopped. The location
of the stopping mechanism determines how the
loop will work:
 Leading decisions
 Trailing decisions
Leading Decisions
 If the stop is at the beginning of the iteration,
then the control is called a leading decision.
 The command DO WHILE performs the iteration
and places the stop at the beginning.
DO WHILE Loop
Entry
Exit
No
Test
condition p
Yes
Loop
statement a
Trailing Decisions
 If the stop is at the end of the iteration, the
control mechanism is called a trailing decision.
 The command DO UNTIL performs the iteration
and puts the stop at the end of the loop.
DO UNTIL Loop
Entry
Loop
statement a
Test
condition p
Exit
No
Yes
Programmer Productivity Tools
 Modular Programming
 Structured Programming
 Object-oriented Programming
Modular Programming
 Large programs are divided by functional parts
into subroutines
Strong cohesion
Loose coupling
Structured Programming
Composed of sequence, decision (selection), and
repetition (looping or iteration) structures
 Structured program languages lend themselves to
flowcharts, structure charts, and pseudocode.
 Structured programming languages work best where
the instructions have been broken up into small,
manageable parts.
 Looks at a problem as procedures

Data are maintained separately from data
Structured Program Rules
1.
2.
3.
4.
5.
Use only sequence, decision, and repetition
Only one entrance into and one exit from a structure
Connectors only allowed when continuing processing
from one column or page to another
Decision and repetition structures can be nested
Only one STOP instruction is permitted. It must be in
the MAINLINE routine
Structured Programming Advantages
 Standard method for solving problems
 GO-TO less
 Easier to test and debug
 Written by more than one programmer
 Reusability
 Thrashing minimized
Object-Oriented Programs

Developed to respond to programming issues that
structured programming did not adequately address
1.
2.
3.
Rarely possible to anticipate the design of a completed
system before implementation
GUIs were difficult to develop in traditional procedureoriented languages
Sharing data across routines is error prone
Information hiding allows programmers to determine what data is
exposed to various routines