Overview of Computers & Programming Languages
Chapter 1
Chapter Contents
Computer History Elements of a Computer System
Hardware Software
Language of a Computer Evolution of Programming Languages High Level Languages Analysis-Coding-Execution Object Oriented Programming
Computer History
1950's
Large devices, accessible to few people
1960's
Commercial usage emerges Operated by experts
1970's
Computers cheaper, smaller
1990's
Computers fast, small, inexpensive Owned and used by many people
Elements of a Computer System
Hardware
CPU The "brain" ofKeyboard the computer Disk drive Scanner Mouse
Hard drive Zip-Disk CD-Rom Tape Backup
Screen Main Memory Printer Data and Plotter instructions stored to, fetched from
Elements of a Computer System
Software Systems programs
Control the computer Includes Operating System
Applications programs
Word processors Compilers Spreadsheets Data Bases
The Language of a Computer
Uses digital signals
all 0's and 1's (binary) bits (BInary digiTs)
Data and commands stored in binary
8 bits in a byte ASCII character stored in a byte Integers stored in 2 or 4 bytes
Evolution of Programming Languages
Early computers programmed in machine languages
All binary numbers
Assembly language used mnemonic codes
Codes translated into machine language by a program called the "assembler"
Evolution of Programming Languages
High level languages read like combination of English and algebra
write_string (outfile,cust_name,'l',23); first_line = 1; ord.read_order(infile); while (!ord.done()) { if ( !first_line) write_string (outfile," ord.print_order (outfile,part_list); first_line = 0; ord.read_order(infile); }
",'l',23);
Translated into machine language by a program called a compiler
Processing a High-Level Language Program
1. Source program created with an editor
2. Source code translated into machine
language by compiler
results in a .obj file (object code)
3. Linker combines common library routines
with object code
Results in a .exe file (executable code)
4. Loader brings executable code into
memory and it is run
Processing a High-Level Language Program
10
11
Analysis-Coding-Execution
Algorithm : A step-by-step problem-solving process in which a solution is arrived at in a finite amount of time
Steps must be simple, unambiguous Steps must be performed in specified order Steps must solve the problem
12
Analysis-Coding-Execution
Problem solving process 1. Analyze problem, design solution algorithm 2. Implement algorithm in a programming language, verify 3. Maintain program, adapting it to changes in problem requirements
13
Analysis-Coding-Execution
Analysis and algorithm design done apart from any specific programming language
Processing of the high-level language programming language
14
Structured Programming
Thoroughly understand the problem Determine
the output desired the required input processing that will occur
Divide the problem into sub-problems
Other names for this process
structured design top-down design stepwise refinement modular programming
15
Object-Oriented Programming
Identify components of the problem which are objects
Usually these are the nouns in the program description
Identify operations which are performed on the objects
Often these are the verbs in the program description