C++ Programming Language
Lecture 1
Introduction
The Hashemite University
Computer Engineering
Department
(Adapted from the textbook slides)
Outline
Introduction.
C++ overview.
Computer organization and hardware
trends.
Evolution of operating systems and
types of computing.
Programming languages.
Basics of a typical C++ environment.
The Hashemite University
2
Introduction
In this course you will learn C++ and
the legacy C code.
It is your first step in the software
programming world.
It will provide you with the needed
tools and background to learn objectoriented programming.
The Hashemite University
3
What is C++?
A powerful programming language
that enables you to write instructions
(i.e. software) to drive the hardware of
the computer (i.e. to perform actions
and take decisions).
But first, what is computers? What is
hardware? And what is software?
The Hashemite University
4
What is a Computer?
Computer
Computer programs
A device capable of performing computations and
making logical decisions in a very fast manner.
Sets of instructions that control a computer’s processing
of data
Hardware
Various devices comprising a computer
Examples: keyboard, screen, mouse, disks, memory, CDROM, and processing units
Software
Programs that run a computer
The Hashemite University
5
Computer Organization
Six logical units in every computer:
Input unit
Output unit
Performs arithmetic calculations and logical decisions.
Central processing unit (CPU)
Rapid access, low capacity, stores input information and programs
while they are being executed (active programs and data).
Arithmetic and logic unit (ALU)
Outputs information (to screen, to printer, to control other devices)
Memory unit
Obtains information from input devices (keyboard, mouse).
Supervises and coordinates the other sections of the computer
(called the heart of the computer).
Secondary storage unit
Cheap, long-term, high-capacity storage, stores inactive programs.
The Hashemite University
6
Computer Organization
Example
The Hashemite University
Hardware Trends
Every year or two computers
approximately double the following:
The amount of memory they contain
The amount of secondary storage they contain
Secondary storage (such as disk storage) is used to
hold programs and data over time
Their processor speeds
Memory used to execute programs
The speed at which computers execute their programs
This development is accompanied with a
decrease in prices and computers cost.
The Hashemite University
8
Evolution of Operating
Systems
Operating system (OS) is the intermediary software that lies between
the hardware and the computer applications where it enables the
interfacing between the user and the computer hardware.
Operating systems development:
Batch processing
Do only one job or task or program at a time while processing
data in groups or batches.
Operating systems
Manage transitions between jobs.
Increased throughput : Amount of work computers process.
Still batch processing (one task at a time)
Multiprogramming
Many jobs or tasks sharing a computer’s resources in the same
time.
Timesharing
Special case of multiprogramming.
Access computer resources via terminals.
Perform a small portion of one user’s job then moves on to
service the next user
The Hashemite University
9
The Hashemite University
10
Types of Computing
Personal computers
Distributed computing
Economical enough for individual
Organizations computing is distributed over
networks
Client/server computing
Sharing of information across computer networks
between servers (such as file servers, email
servers, etc.) and clients (personal computers
connected to the network)
The Hashemite University
11
Programming Languages I
Three types of programming languages
Machine languages
Strings of numbers giving machine specific instructions.
Computers can only understand this language.
Example:
10100011001001
11111111111111
00000001110100
Machine dependent: every machine has its own
language.
Hard to be understood by humans.
Hard to be used in programming.
Too slow and tedious.
Error prone.
The Hashemite University
12
Programming Languages II
Assembly languages
English-like abbreviations representing elementary
computer operations so it is easier to be understood
by humans.
Translated or converted into machine language via
assemblers.
Also, it is slow and hard to be used in programming.
Machine dependent.
Example:
LOAD BASEPAY
ADD OVERPAY
STORE GROSSPAY
The Hashemite University
13
Programming Languages
III
High-level languages
Similar to everyday English, use mathematical notations.
Translated into machine language via compilers (compile
the whole program at once).
Interpreters are used to execute high level languages
without need to compile them into machine language
and it execute single line at a time.
Compiled programs are faster than the interpreted ones.
Fast and easy for programming.
Machine independent.
Example:
grossPay = basePay + overTimePay
The Hashemite University
14
Programming Languages
IV
It is common to classify the
computer programming languages
into two types:
Low level programming languages which includes both
the machine and assembly languages.
High level languages as in the previous slide.
The Hashemite University
15
Example of High-level
Languages
Other high-level languages
C and C++.
Java
Visual basic 6/.Net
C#.Net
FORTRAN
COBOL
Used in scientific and engineering applications
Used to manipulate large amounts of data
Pascal
Used to teach structured programming
The Hashemite University
16
History of C and C++
C++ developed from C
ANSI C: standard of C and C++
C developed from two other programming languages:
BCPL (Basic Compiled programming Language) and B
which are used mainly to develop operating systems and
compilers.
ANSI (American National Standard Institution ) has
cooperated with ISO (International Organization for
Standardization) to established worldwide standards for C
and C++ programming to make C++ programs portable.
C99 is the latest ANSI standard of C/C++
C++ “spruces up” C
Provides capabilities for object-oriented programming
Objects are reusable software components that model things
in the real world
Object-oriented programs are easy to understand, correct and
modify
The Hashemite University
17
C++ Standard Library
C++ programs
Built from pieces called classes and functions.
C++ standard library
Provides rich collections of existing classes and
functions for all programmers to use.
The Hashemite University
18
Basics of a Typical C++
Environment
Editor
Preprocessor
Phases of C++ Programs:
1.
2.
Edit (create .h and .cpp files):
create the source code or file
Preprocess (text replacement,
include other files)
Compiler
Linker
Loader
3.
Compile: creates the object code
4.
Link: creates the executable file
5.
Load
6.
Execute
Disk
Program is created in
the editor and stored
on disk.
Disk
Preprocessor program
processes the code.
Disk
Compiler creates
object code and stores
it on disk.
Disk
Linker links the object
code with the libraries,
creates a.exe and
stores it on disk
Primary
Memory
Loader puts program
in memory.
Disk
..
..
..
Primary
Memory
CPU
The Hashemite University
..
..
..
CPU takes each
instruction and
executes it, possibly
storing new data
values as the program
executes.
19
Additional Notes
Check the Black Board to get your
copy of the lecture.
The lecture covers the following
sections from the textbook:
Fourth edition:
Chapter 1: Sections 1.1 – 1.8, 1.14, 1.15
The Hashemite University
20