270 likes | 411 Views
Chapter-01. Introduction to Computers and C++ Programming. Who are we?. Programmers. What make us programmers?. People who write programs are called programmers. What is a Program?. A sequence of statements that instruct a computer in how to solve a problem is called a program .
E N D
Chapter-01 Introduction toComputers and C++ Programming
Who are we? Programmers
What make us programmers? People who write programs are called programmers.
What is a Program? A sequence of statements that instruct a computer in how to solve a problem is called a program. Statment 1 Statment 2 Statment 3 . . .
What is Programming? • It is the process of planning a sequence of steps (called instructions) for a computer to follow. STEP 1 STEP 2 STEP 3 . . . • The act of designing, writing and maintaining a program is called programming.
What kinds of statements do computers understand? • A computer only understands machine language statements. • A machine language statement is a sequence of ones and zeros that cause the computer to perform a particular action, such as add, subtract, multiply, … e.g,, Add two numbers 100000010
Machine Language (ML) ML statements are stored in a computer’s memory, which is a sequence of switches. For convenience of representation, an “on” switch is represented by 1, and an “off” switch is represented by 0. ML thus appears to be binary (base-2): e.g, Add two numbers 100000010
Lets see more about Computers Chapter_01_2_Computer_Organization.ppt
Back toProgramming Chapter_01_1_Programming_and_Languages.ppt
Machine Language • is not portable • runs only on specific type of computer • is made up of binary-coded instructions (strings of 0s and 1s) • is the language that can be directly used by the computer
Early Computers ... required a programmer to write in machine language (ML) ... • Easy to make mistakes! • Such mistakes are hard to find! • Not portable -- only runs on one kind of machine! (CPU) Programming was very difficult!
Assembler ADD 100000010 A Bright Idea Devise a set of abbreviations (mnemonics) corresponding to the ML statements, plus a program to translate them into ML. The abbreviations are an assembly language, and the program to translate them into machine language is called an assembler.
Assembly Languages Allowed a programmer to use mnemonics, which were more natural than binary numbers. • Much easier to write programs • Much easier to read programs • Much easier to find and fix mistakes • Still not portable to different machines
Assembly Language(middle level) • a more or less human readable version of machine language • words, abbreviations, letters and numbers replace 0s and 1s • easily translated from human readable to machine executable code • like machine code, not portable (hardware dependent)
High Level Languages Devise a set of statements that are close to human language (if, while, do, ...),plus a program to translate them into ML. The set of statements is called a high level language (HLL) and the program to translate them into machine language is called a compiler.
10101100 00000000 00101110 00000000 00101110 00000000 Compiler z = x + y; HLL Compilers Where an assembler translates one mnemonic into one ML statement, a HLL compiler translates one HLL statement into multiple ML statements.
HLLs High level languages (like C++) are • Much easier to write programs • Much easier to read programs • Much easier to find and fix mistakes • Portable from one machine to another(so long as they keep to the language standard).
High Level Languages • are portable • user writes program in language similar to natural language • examples --FORTRAN, COBOL, Pascal, Ada, Modula-2, C++, Java • most are standardized by ISO/ANSI to provide an official description of the language
Interpreter High Level Language machine language Interpreters • Interpreters - another way to translate HLL to machine language or object code • interpretation (from source to object code) is not a separate user step • translation is “on-line,” i.e. at run time
Assembly Language Machine Language Assembler High Level Language Compiler, or Interpreter Machine Language Compilers vs. Assemblers vs. Interpreters • Compilers and Assemblers • translation is a separate user step • translation is “off-line,” i.e. not at run time • Interpreters - another way to translate source to object code • interpretation is not a separate user step • translation is “on-line,” i.e. at run time
Compilers vs. Interpreters • Compiled programs execute faster than interpreted programs • Interpreters are popular in program development environments in which programs are recompiled frequently as new features are added and errors are corrected. Once a program is developed, a compiled version can be produced to run most efficiently.
Where we use Interpreters? • Java virtual machine
Objectives in Programming A program should solve a problem: • correctly (it actually solves the problem) • efficiently (without wasting time or space) • readably (understandable by another person) • in a user-friendly fashion(in a way that is easy for its user to use).
Program Computer Processing Data Data input (input for the program) Data Output (Output of the program) Running a Program
Program Data Input (input for the program) Computer, Processing Data Data Output (output for the program) Running a Program
Summary There are “levels” to computer languages: • ML consists of “low” level binary statements, that is hard to read, write, and not portable. • Assembly uses “medium” level mnemonics: easier to read/write, but not portable. • C++ is a “high” level language that is even easier to read/write, and portable.