CSCI 125 & 161 Lecture 2 Martin van Bommel
Hardware vs Software Hardware - physical components you can see and touch –e.g. processor, keyboard, disk drive Software - instructions for hardware –e.g. operating system, compiler, word processor
Software Development Early computers - complex coding schemes –machine language - 0’s and 1’s Later on - introduction of system software –assembly language - mnemonics for operations –assembly program assembler machine lang Even later - compilers created –high-level languages (HLL) - natural language –HLL program compiler machine language
High Level Languages John Backus - FORTRAN 1958, 60, 64 - ALGOL, COBOL, BASIC US Dept. of Defence - Ada Nicklaus Wirth - Pascal Dennis Ritchie - C Nicklaus Wirth - Modula – Bjarne Stroustrup – C++ (C with class) ANSI C adopted 1998 – ANSI C++ adopted
Computer Components CPU - Central Processing Unit –controls operation of entire systems –performs arithmetic and logic operations –stores and retrieves instructions and data contains ALU - Arithmetic-Logic Unit Control Unit
Components (con’t) Main memory (internal or primary memory) –RAM - Random Access Memory –stores instructions and data temporarily Secondary memory (external or auxiliary) –magnetic disk (hard disk or floppy), tape –CD-ROM, DVD-ROM, Flash drive, etc. Peripherals - used for Input/Output –keyboard, printer, monitor, etc.
Internal Representation Each unit of memory a two-state device –off or on, 0 or 1 –represent in Binary, two Binary Digits (bits) Organized into groups of 8 bits - bytes –represents single keyboard character Larger grouping of 16 or 32 bits - word –represents single integer value –identified by address for access
Memory Sizes Kilobyte (K) = 2 10 = 1,024 bytes Megabyte (Mb) = 2 20 = 1,048,576 bytes Gigabyte (Gb) = 2 30 = 1,073,741,824 bytes
SI Memory Sizes System International – Convention Kilobyte = 10 3 bytes = one thousand bytes Megabyte = 10 6 bytes = one million bytes Gigabyte = 10 9 bytes = one billion bytes Kibibyte (K) = 2 10 = 1,024 bytes Mebibyte (Mb) = 2 20 = 1,048,576 bytes Gibibyte (Gb) = 2 30 = 1,073,741,824 bytes
Decimal Number Systems Base 10 Digits - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 e.g = = 3 x x x10 0 = 3 x x x 1 =
Binary Number System Base 2 Digits 0, 1 e.g = = 1 x x x 2 0 = 1 x x x 1 = = 6
Counting in Binary DecimalBinary DecimalBinary
Character Representation 1 byte = 8 bits = 1 character? 256 possible codes with 8 bits Assign a character to each code Common assignment –ASCII - American Standard Code for Information Interchange – defines first 128
ASCII Code Code ValueLetter 0Null character Special Control Characters 10\n = New line 32Space 33-47, 58-64, 91-96Punctuation A - Z a - z
Interesting ASCII Choice? Digits 0 through 9 seem strange? DigitDecHex …… …
Unicode International language coding standard Superset of ASCII Various codes defined to use upper 128 bits for symbols and other languages
16 bits? Two characters? One integer? Part of a floating point? Machine language instruction? Memory address? Depends on application!