2. P102 Prog. Fundamentals I: Software / Slide 2
Four components of a computer system:
CPU - central processing unit
– Makes decisions, performs computations, and
delegates input/output requests
Memory: Disk Drives, CD drives, Tape drives, USB
flash drives.
– Stores information
Input devices: Keyboard, Mouse,
– Gets information from the user to the computer
Output devices: monitor
– Sends information from computer to the user
Hardware
4. P102 Prog. Fundamentals I: Software / Slide 4
S y s t e m
S o f t w a r e
A p p lic a t io n
S o f t w a r e
S o f t w a r e
5. P102 Prog. Fundamentals I: Software / Slide 5
Application software
Easy-to-use programs designed to perform
specific tasks
System software
Programs that support the execution and
development of other programs
Two major types
–Operating systems
–Translation systems (compilers & linkers)
Software
7. P102 Prog. Fundamentals I: Software / Slide 7
Computer Software Relationships
User
Interface
Basic Input and Output Services (BIOS)
• needed for a computer to boot up
User Interface Operating System
User Interface Application Programs
Computer Hardware
8. P102 Prog. Fundamentals I: Software / Slide 8
Application Software
Application software makes computer popular and
easy to use
Common application software:
Microsoft Word, WordPerfect
PowerPoint
Netscape, Internet Explorer
PhotoShop, Photo-Paint
Quick Time
Dreamweaver
9. P102 Prog. Fundamentals I: Software / Slide 9
Controls and manages the computing resources
Examples
Windows, Unix, MSDOS,
Important services that an operating system
provides:
Security: prevent unauthorized users from accessing
the system
Commands to manipulate the file system
Input and output on a variety of devices
Window management
Operating System
10. 102 Prog. Fundamentals I: Software / Slide 10
What is a (programming) language?
A program needs to be written in a language
There are many programming languages
Low-level, understandable by a computer
High-level, needs a translator!
C++ is a high level programming language
A sequence of instructions
A program
(in computer language)
An algorthm
(in human language)
11. 102 Prog. Fundamentals I: Software / Slide 11
Machine binary language: unintelligible
Low-level assembly language
Mnemonic names for machine operations
Explicit manipulation of memory addresses
Machine-dependent
High-level language
Readable
Machine-independent
Levels of programming language
12. 102 Prog. Fundamentals I: Software / Slide 12
Machine binary language Low-level assembly High-level
An example:
13. 102 Prog. Fundamentals I: Software / Slide 13
How to translate?
Examples of compilers:
Microsoft Visual C++, Eclipse, g++
A program written in high-level programming language
(for example, C++ program)
A low-level (machine language) program that is
understandable by a computer (for example, a PC)
COMPILER (for example, Visual C++)
14. 102 Prog. Fundamentals I: Software / Slide 14
Translation System
Set of programs used to develop software
Types of translators:
Compiler
Linker
Examples
Microsoft Visual C++, Eclipse, g++
15. 102 Prog. Fundamentals I: Software / Slide 15
Software Development
Major activities
Editing (writing the program)
Compiling (creates .obj file)
Linking with compiled files (creates .exe file)
– Object files
– Library modules
Loading and executing
Testing the program
Compile
Link
Libraryroutines
Otherobjectfiles
Think
Edit
Load
Execute
SourceProgram
16. 102 Prog. Fundamentals I: Software / Slide 16
Integrated
Development Environments
Combine all of the capabilities that a programmer
would want while developing software (VC++ 2008,
Eclipse)
Editor
Compiler
Linker
Loader
Debugger
Viewer
17. 102 Prog. Fundamentals I: Software / Slide 17
Our First Program
// a simple program
#include <iostream>
using namespace std;
int main() {
cout << "Hello world!" << endl;
return 0;
}
Print
statement
Ends execution
of main() which ends
program
Comments
Function
named
main()
indicates
start of
program