1 of 13

INTRODUCTION TO PROGRAMMING

A LECTURE FOR THE C++ COURSE

Each slide may have its own narration in an audio file. �For the explanation of any slide, click on the audio icon to start the narration.

The Professor‘s C++ Course by Linda W. Friedman is licensed under a �Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

2 of 13

COMPUTER ORGANIZATION

A computer system has the following logical components:

 

Input  

Output  

Central Processing Unit (CPU)  

Arithmetic & Logical Unit (ALU)

Main Memory  

Secondary Storage

INTRODUCTION TO PROGRAMMING

2

3 of 13

COMPUTER ORGANIZATION

Input Unit ‑ obtains data (and programs) from an input device for processing. Keyboard, mouse, CD‑ROM or DVD drive, scanner, digital camera...

Output Unit ‑ takes information from the computer and places it on an output device ‑ monitor screen, printer, tape, DVD‑Writer…

        • We (in the real world) use input / output devices to communicate with the computer.

INTRODUCTION TO PROGRAMMING

3

4 of 13

COMPUTER ORGANIZATION

Central Processing Unit (CPU) ‑ Coordinates the operation of the other sections of the computer.

Arithmetic & Logical Unit (ALU) ‑ where calculations, relational and logical operations are performed ‑ part of the CPU.

INTRODUCTION TO PROGRAMMING

4

5 of 13

COMPUTER ORGANIZATION

Main Memory Unit ‑ primary memory, primary storage ‑ short‑term main storage area for data and executable programs (RAM). Ordered sequence of storage locations called memory cells, each memory cell has a unique address.

Secondary Storage Unit ‑ secondary memory, permanent memory ‑ long term, secondary storage area for data and programs.

INTRODUCTION TO PROGRAMMING

5

Primary memory

Secondary

Temporary, volatile

Permanent, non‑volatile

Rapid access

Slower access (1/0)

Low capacity

High capacity

High cost

Low cost

6 of 13

COMPUTER ORGANIZATION

Also….

Computer Networks ‑ allows each computer to access (e.g.) the same large hard disk drive and high‑quality printer ‑ LAN.

INTRODUCTION TO PROGRAMMING

6

7 of 13

COMPUTER LANGUAGES

In order to communicate with the computer we use one of several programming languages.

In the beginning, there were…

      • First generation ‑ Machine Language 
      • Second generation ‑ Assembly Languages
      • Third generation ‑ Compiler Languages

INTRODUCTION TO PROGRAMMING

7

8 of 13

COMPUTER LANGUAGES

First generation ‑ Machine Language

    • Each type of computer has its own machine language, the only language it can understand (machine dependent). Most machine languages consist of binary codes for both data and instructions, e.g., to add overtime pay to base pay we would need a series of binary codes such as, perhaps:

0010 0000 0000 0100

0100 0000 0000 0101

0011 0000 0000 0110

INTRODUCTION TO PROGRAMMING

8

9 of 13

COMPUTER LANGUAGES

Second generation ‑ Assembly Languages

 

    • Uses English‑like abbreviations to represent the machine‑language instructions. Uses a translator program called an assembler to convert each instruction from the assembly language instruction to the corresponding machine language binary code e.g., perhaps:

LOAD BASEPAY

ADD OVERPAY

STORE GROSSPAY

INTRODUCTION TO PROGRAMMING

9

10 of 13

COMPUTER LANGUAGES

Third generation ‑ Compiler Languages

    • High‑level, machine independent, more English‑like, more natural. Each high-level language statement translates to several low-level language statements, e.g.:

GROSSPAY = BASEPAY + OVERPAY

    • Use compilers to translate from the high‑level language into machine language.
    • A compiler is a translator program that transforms high-level program code into a low-level machine-level executable program.
    • Compilers translate the whole program first, then execute the object program.
    • High-level languages are more English-like, easier to code, more costly to run, less flexible. e.g., FORTRAN, BASIC, COBOL, PL/1, ALGOL, APL, Pascal, SIMSCRIPT, Smalltalk, C, C++, Java, Python.

INTRODUCTION TO PROGRAMMING

10

11 of 13

COMPUTER LANGUAGES

High‑level Language Translators

INTRODUCTION TO PROGRAMMING

11

source program

object program

compiler

or

interpreter

Compilers

Interpreters

Slower translation

Entire program

Faster execution

More efficient execution

Good for commercial applications

Faster translation

One instruction or macro at a time

Slower execution

Less efficient execution

Good for program development

12 of 13

PROGRAMMING

 A program is a set of instructions in proper sequence, that causes a computer to perform a particular task.

 When learning to program in any programming language, it’s best just to learn the “rules of the game.”

Modern programs are projects composed of many of individual program modules that have to be linked together in order to be run. In fact most developer systems have their own integrated development environment (ide) and programs are developed in phases within the ide.

INTRODUCTION TO PROGRAMMING

12

13 of 13

REVIEW

    • arithmetic and logical unit (ALU)
    • assembler
    • assembly language
    • central processing unit
    • compiler
    • compiler language
    • computer language
    • computer organization
    • CPU
    • high-level language
    • ide
    • input unit
    • interpreter
    • machine language
    • machine-dependent language
    • machine-independent language
    • main memory
    • output unit
    • program
    • secondary memory
    • secondary storage

INTRODUCTION TO PROGRAMMING

13

What did we learn in this lecture? Plenty.