16 March, 2000 CS1001 Lecture 1 Introduction - Syllabus History of Computers Computer Components
16 March, 2000 Instructor Joe Wong Sc.B., MS Applied Math, Brown University MS Applied Physics, Harvard University 20 years of Software Engineer and Manager 17 years with Raytheon Company 3 years with Cadence Design Systems ADSUM Consulting Tech-Vol Adjunct at WPI FORTRAN was my first language 1967
16 March, 2000 Introduction Course grading and schedule -- see Syllabus Office hours and contact -- see Syllabus Reading assignments are for the topic presented on that date Reading ahead is encouraged Lectures Most of what is on the slides is in the book Whenever possible, handouts will be available ahead of time Lectures will be PowerPoint slides available on Web Labs
16 March, 2000 History of Computers 2000 B.C -- First digital computer might be the abacus used by the Chinese Slide rule was initially crude, but long-lived, and could only multiply and divide, a characteristic of analog computers 1642 A.D. Blaise Pascal’s mechanical adding machine for tax computation was a better first example of an analog computer unreliable All of these lacked a means of storing a program
16 March, 2000 Analog/Digital In a digital computer –data input and output and data representation within the computer is discrete –it is either a 0 or a 1 (which is actually a voltage level) In an analog computer –data input and output and data representation within the computer is continuous or proportional – it can have any value within the limits of the power supplies.
16 March, 2000 Electronic Computer Evolution ENIAC - 30 tons, 30 by 50 ft, 300 multiplications/sec UNIVAC - UNIVersal Automatic Computer (performs add in 282 microsec) IBM nanosecond add (three orders of magnitude faster than first generation) IBM About three orders of magnitude faster again than the second generation Now -- not much faster, but much smaller and affordable
16 March, 2000 Computer Components Hardware -- the physical parts of the computer such as disk drives, keyboards, etc. Software -- the programs that run on the computer, stored on disk, run in RAM Firmware -- parts of the operating system that are programmed in ROM “Wetware” -- the human operator
16 March, 2000 Hardware Components Input Devices: keyboard, Mouse, Scanner Output Devices: Monitor, Printer Secondary Storage Control Unit Arithmetic Logic Unit Main Memory Central Processing Unit
16 March, 2000 Computer Hardware CPU (Central Processor Unit) -- the heart of your computer, the part that actually computes RAM and ROM, system memory where executable programs are stored while running Hard and floppy disk drives, where programs are stored Display monitor, the screen where you view program operation and results Keyboard and mouse (or other pointing device) for user input during program operation Printer, scanner, modems, etc. -- peripheral devices
16 March, 2000 Memory ROM -- Read-Only Memory, permanent, used to store portions of the computer operating system, such as the BIOS RAM -- Random-Access Memory, volatile, used to store portions of the operating system and any programs that are running PROM -- Programmable Read-Only Memory, special version of ROM that can be modified
16 March, 2000 Software Operating System –MS-DOS –UNIX –etc. Graphical User Interface (GUI) –Windows –X-Windows –etc. Programs
16 March, 2000 Operating System (MS-DOS) BIOS (Basic Input/Output System) in ROM –loads the hidden file called IO.SYS from the disk drive into RAM DOS (Disk Operating System) Kernal –loads the hidden file called MSDOS.SYS from the disk to RAM –provides the link between your program and DOS, performing: File and directory management Application interface to DOS services DOS Command Processor –loads COMMAND.COM from disk to RAM –performs your commands
16 March, 2000 Layers of Operating System
16 March, 2000 Language Hierarchy High-level language (Ada, C, C++, FORTRAN, Pascal, BASIC, COBOL, etc.) Assembly language (symbolic, dependent on target processor/computer), mnemonics Machine language, understood by the actual processor /computer, opcodes and operands X = A*B+C MOV A, ACC MUL B, ACC ADD C, ACC STO ACC, X Opcode Operand
16 March, 2000 Programs --> Machine Interpretation Translation Interpreter Data AnswerProgram Compiler Computer Object Code Data Answer Program
16 March, 2000 Preparing a Program for Execution You enter the program and save it as a source file The compiler attempts to translate the program You correct syntax error The linker links the new object file with other object files The loader places the load file into memory Executable program in memory Load File Source file on disk New Object File Other Object File Revised Source file List of errors Oops! Good job!
16 March, 2000 Fortran FORmula TRANslation (FORTRAN) - translate scientific equations into computer code. First compiled high-level language FORTRAN II FORTRAN IV FORTRAN 77 Fortran 90 Fortran 95
16 March, 2000 Summary History of computers Computer components High level --> executable Brief, brief history of Fortran