Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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, 100110100010… • 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^0 10010 = 11001002 • Converting decimal to binary – Fractions 2* 2^0 0.1 0 2^(-1) 2^(-2) 2^(-3) 2^(-4) 2^(-5) 2^(-6) … 0.2 0.4 0.8 1.6 1.2 0.4 … 0 0 0 1 1 0 … 1*10^(-1) = 1*2(-4) + 1*2^(-5) + 0*2^(-6) + … 1*10^(-1) = 1.10011001100…*2^(-4) 0.110 = 0.000110011001100…2 • Converting binary to decimal Integers 11001002 = 2^6 + 2^5 + 2^2 = 64 + 32 + 4 = 10010 Fractions 1.100112 = 2^0 + 2^(-1) + 2^(-4) + 2^(-5) = 1 + 1/2 + 1/16 + 1/32 = 1.5937510 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 (lowlevel). – 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.