Transcript
Programming
Hardware & Software
Hardware
• 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
Memory
Input Devices
Output Devices
CPU
Software
System Software
Application Software
Software
• 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)
Copyright © 2000 by Brooks/Cole Publishing Company A division of International Thomson Publishing Inc.
Computer Software Relationships
User Interface Application Programs
User Interface
Operating System
User Basic Input and Output Services (BIOS) Interface • needed for a computer to boot up
Computer Hardware
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
Operating System
• 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
What is a (programming) language?
A sequence of instructions An algorthm (in human language) A program (in computer 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
Levels of programming language
• 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
An example:
Machine binary language Low-level assembly High-level
How to translate?
A program written in high-level programming language (for example, C++ program)
COMPILER (for example, Visual C++)
A low-level (machine language) program that is understandable by a computer (for example, a PC) Examples of compilers: – Microsoft Visual C++, Eclipse, g++
Translation System
• Set of programs used to develop software • Types of translators: Compiler Linker • Examples – Microsoft Visual C++, Eclipse, g++
Software Development
• Major activities Editing (writing the program) Compiling (creates .obj file) Linking with compiled files (creates .exe file) • Object files Source Program • Library modules Compile Loading and executing Testing the program Edit Link
Think Load
Library routines
Other object files
Execute
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
Our First Program
// a simple program #include Comments using namespace std; int main() { cout << "Hello world!" << endl; return 0; }
Function named main() indicates start of program
Ends execution of main() which ends program
Print statement
Summary