Chapter 1 Introduction
Components of a Computer CPU (central processing unit) Executing instructions –Carrying out arithmetic and logical operations (+, -, *, /, and, or, …) –Coordinating: Accessing memory (read, write), handling exceptions (divided by zero), …
Components of a Computer (cont.) Memory Storing and retrieving (writing and reading) information (instructions and data). RAM (random-access memory) –volatile Secondary storage –Hard disk, CD, USB –Non-volatile
Information in Memory Binary, … A string of 0s and 1s can mean different things –A number (integer, floating-point) –An instruction (addition, load, store) In RISC, every piece of information (number or instruction) is 32 bits long.
Numbers in Memory Binary Converting decimal to binary –Integers 100 = 1*2^6 + 1*2^5 + 0*2^4 + 0*2^3 + 1*2^2 + 0*2^1 + 0*2^ =
Converting decimal to binary –Fractions 2^0 2^(-1) 2^(-2) 2^(-3) 2^(-4) 2^(-5) 2^(-6) … 2* … … 1*10^(-1) = 1*2(-4) + 1*2^(-5) + 0*2^(-6) + … 1*10^(-1) = …*2^(-4) = … 2
Converting binary to decimal Integers = 2^6 + 2^5 + 2^2 = = Fractions = 2^0 + 2^(-1) + 2^(-4) + 2^(-5) = 1 + 1/2 + 1/16 + 1/32 =
Components of a Computer (cont.) I/O (input/output) devices –Keyboard, mouse –Monitor Communication links –Bus –Network
Algorithms Method for solving a problem using a computer Unambiguous (well-defined and precise) Executable (can be carried out) Finite (does not run on forever) An algorithm is language independent.
Program Implementation of an algorithm in a language (Java), so a computer can understand. Stored in a file (source file) extension to identify the language (hw1.java).
From Program to Machine Code Compiler: Translates a program (high-level language) into machine language (low- level). –Machine architecture dependent (Intel, sparc). –End result: Executable file (binary). Often object files are linked together to produce an executable.
From Program to Machine Code Interpreter –Translate a program into an intermediate language, independent of machine architecture. –Run an intermediate language program by an interpreter that implements the intermediate language on that machine. JVM (Java virtual machine) executes an intermediate language program on the underlying machine.
Program Errors Computers (hardware) are very rigid, cannot tolerate slightest errors: Missing “;” Misplaced spaces Upper case in place of lower case …
Programming Disciplines Design, design, design. Think logically, structure your program carefully, know exactly what each step is supposed to do, anticipate future changes. Your program is to be read and modified by others.
Programming Disciplines Consistent style –Comments –Indentations –Line breaks –Blank lines –Positions of “{“ and “}” Programming is a craftsmanship, requires skills and art.