Chapter 1 Early History of Computing Abacus 16

Chapter 1

Early History of Computing Abacus (16 th century BC) An early device to record numeric values, Blaise Pascal (mid 17 th century) Mechanical device to add, subtract, divide & multiply 1 -2 6

Early History of Computing Alan Turing Machine (1930 s), Artificial Intelligence Testing True or False: Turing won the Nobel Prize in computer science. Harvard Mark I, ENIAC, UNIVAC I Early computers launch new era in mathematics, physics, engineering and economics. John von Neuman. 1 -3 7

Early History of Computing Ada Lovelace (Lord Byron’s daughter) First Programmer, invented the loop Herman Hollerith Electro-mechanical tabulator used to tabulate census numbers. 1 -4 7

Early History of Computing Jacquard Loom (1801) Used punch cards to specify patterning of fabric 1 -5 7

Early History of Computing Charles Babbage The analytical engine, difference engine (1822), mechanical computation. 1 -6 7

Example Turing Machine Program Hello World as a Turing machine. State Read | Write Step Next state --------|----------------1 empty | H > 2 2 empty | e > 3 3 empty | l > 4 4 empty | l > 5 5 empty | o > 6 6 empty | blank > 7 7 empty | W > 8 8 empty | o > 9 9 empty | r > 10 10 empty | l > 11 11 empty | d > 12 12 empty | ! > STOP 1 -7

First Generation Hardware (1951 -1959) Vacuum Tubes Large, not very reliable, generated a lot of heat Card Readers, Magnetic Tape Drives Sequential auxiliary storage devices 1 -8 8

Early History of Computing 1 -9 7

Second Generation Hardware (1959 -1965) Transistor Replaced vacuum tube, fast, small, durable, cheap Magnetic Disks Replaced magnetic tape, data can be accessed directly 1 -10 9

Early History of Computing IBM 70 1 -11 7

Third Generation Hardware (1965 -1971) Integrated Circuits Replaced circuit boards, smaller, cheaper, faster, more reliable. Transistors Now used for (volatile) memory construction. Terminal An input/output device with a keyboard and screen 1 -12 10

Third Generation Computer Apple 2 (1977) IBM 70 1 -13 7

Fourth Generation Hardware (1971 -? ) Large-scale Integration Great advances in chip technology PCs, the Commercial Market, Workstations Personal Computers were developed as new companies like Apple and Atari came into being. Workstations emerged. 1981 IBM PC 1984 Apple Macintosh 1987 Sun Workstation 1 -14 11

Fourth Generation Computer IBM PC (1981) Apple Macintosh (1984) IBM 70 1 -15 7

Parallel Computing and Networking Parallel Computing Computers rely on interconnected central processing units that increase processing speed. Networking With the Ethernet small computers could be connected and share resources. A file server connected PCs in the late 1980 s. ARPANET and LANs Internet 1 -16 12

First Generation Software (1951 -1959) Machine Language Computer programs were written in binary (1 s and 0 s) Assembly Languages and translators Programs were written in artificial programming languages and were then translated into machine language Programmer Changes Programmers divide into application programmers and systems programmers 1 -17 13

Example Assembler Program ; Hello World for 6502 Assembler (C 64) ldy #0 beq in loop: jsr $ffd 2 iny in: lda hello, y bne loop rts hello: . tx "Hello World!". by 13, 10, 0 1 -18

Example Assembler Program ; ; Hello World for the nasm Assembler (Linux) SECTION. data msg len db equ "Hello, world!", 0 xa ; $ - msg SECTION. text global main: int mov mov mov 0 x 80 eax, 1 mov int eax, 4 ; write system call ebx, 1 ; file (stdou) ecx, msg ; string edx, len ; strlen ; call kernel ; exit system call ebx, 0 0 x 80 ; call kernel 1 -19

Second Generation Software (1959 -1965) High Level Languages Use English-like statements and make programming easier. C, Fortran, COBOL, Lisp are examples. (Today: Java, C++, Python) High-Level Languages Assembly Language Machine Language 1 -20 14

Example Fortran Program ! Hello World in Fortran 90 and 95 PROGRAM Hello. World WRITE(*, *) "Hello World!" END PROGRAM 1 -21

Example Cobol Program *************** IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION. MAIN SECTION. DISPLAY "Hello World!" STOP RUN. ************** 1 -22

Example Lisp Program ; ; ; Hello World in Common Lisp (defun helloworld () ; here comes the greeting (print "Hello World!") ) 1 -23

Third Generation Software (1965 -1971) • Systems Software – utility programs, – language translators (assemblers, compilers) – and the operating system, which decides which programs to run and when. • Time Sharing many different users, each has a terminal for I/O, connected to a single computer handling multiple processes. • Separation between Users and Hardware Computer programmers began to write programs to be used by people who did not know how to program 1 -24 15

Third Generation Software (1965 -1971) Application Package Systems Software High-Level Languages Assembly Language Machine Language 1 -25 16

Fourth Generation Software (1971 -1989) Structured Programming Pascal, C, (later: C++, Java) New Application Software for Users Spreadsheets, word processors, database management systems 1 -26 17

Example Pascal Program {Hello World in Pascal} program Hello. World(output); begin {The Greeting} Write. Ln('Hello World!'); end. 1 -27

Example C Program /* Hello World in C */ #include<stdio. h> main () { /* greeting follows */ printf(“Hello Worldn"); } 1 -28

Compare the programs • Examine the example programs closely and try to find things they have in common. {Hello World in Pascal} program Hello. World(output); begin {greeting follows} Write. Ln('Hello World!'); end. /* Hello World in C */ #include<stdio. h> main () { /* greeting follows */ printf(“Hello Worldn"); } 1 -29

Fifth Generation Software (1990 - present) Object-Oriented Design Based on a hierarchy of data objects (Java, Smalltalk) World Wide Web Allows easy global communication through the Internet New Users Today’s user needs no computer knowledge 1 -30 18

Example C++ Program // Hello World in C++ #include <iostream. h> main() { //The Greeting: cout << "Hello World!" << endl; return 0; } 1 -31
![Example Java Program public class Hello. World { public static void main(String[] args) { Example Java Program public class Hello. World { public static void main(String[] args) {](http://slidetodoc.com/presentation_image_h2/39656a1634b8f2c6fc2a194b8b9eca40/image-32.jpg)
Example Java Program public class Hello. World { public static void main(String[] args) { //The Greeting: System. out. println("Hello world!"); } } 1 -32
- Slides: 32