<<

Computer

First Generation

 Machine (0 and 1)  Each of CPU has its own unique machine language (i.e., its "instruction set")  Addition = 0111  Subtraction = 0110  Input = 0001  Output = 1110  Halt = 1111

Address Op code Operands 0001 0001 01100100 1010 0010 0001 11001000 1011 0011 0100 1010 0001 0100 0100 1011 0010 0101 0111 0110 0011 1100 0111 1110 1100 1000 1111 1001 1010 01100100 1011 11001000 1100 Second Generation

 Assembly language  Short abbreviations for binary instructions:  ADD  SUB  MPY  DIV  Program source code must be translated into binary machine code (also known as object code)  Translation software is called an assembler

Address Op code Operands M1 INP 100,M10 M2 INP 200,M11 M3 MMR M10,REG1 MMR M11,REG2 M5 ADD M6 MAM M12 M7 OUT M12 M8 HLT M9 M10 100 M11 200 M12 Address Op code Operands M1 INP 100,M10 M2 INP 200,M11 M3 MMR M10,REG1 M4 MMR M11,REG2 M5 ADD M6 MAM M12 M7 OUT M12 M8 HLT M9 M10 100 M11 200 M12

Address Op code Operands 0001 0001 01100100 1010 0010 0001 11001000 1011 0011 0100 1010 0001 0100 0100 1011 0010 0101 0111 0110 0011 1100 0111 1110 1100 1000 1111 1001 1010 01100100 1011 11001000 1100

Third Generation

 Higher level than assembly language  Not as detailed  abstract  Program source code must be translated into binary machine code  Two types of translation software:  Compiler  Interpreter

A = 100 B = 200 C = A+B DISPLAY C Address Op code Operands 0001 0001 01100100 1010 0010 0001 11001000 1011 0011 0100 1010 0001 0100 0100 1011 0010 0101 0111 0110 0011 1100 0111 1110 1100 1000 1111 1001 1010 01100100 1011 11001000 1100

ASSIGN 100 TO A ASSIGN 200 TO B ADD A TO B GIVING C DISPLAY C

Address Op code Operands 0001 0001 01100100 1010 0010 0001 11001000 1011 0011 0100 1010 0001 0100 0100 1011 0010 0101 0111 0110 0011 1100 0111 1110 1100 1000 1111 1001 1010 01100100 1011 11001000 1100

Address Op code Operands 0001 0001 01100100 1010 0010 0001 11001000 1011 0011 0100 1010 0001 A = 100 0100 0100 1011 0010 0101 0111 B = 200 0110 0011 1100 0111 1110 1100 C = A+B 1000 1111 1001 DISPLAY C 1010 01100100 1011 11001000 1100

Address Op code Operands 0001 1000 01100100 1010 0010 1000 11001000 1011 0011 0101 1010 0001 0100 0101 1011 0010 0101 1111 0110 0111 1100 0111 1100 1100 1000 1110 1001 1010 01100100 1011 11001000 1100

Examples

 FORTRAN  Invented in 1954  Math, science, engineering,  Pi, e, imaginary numbers, trigonometry functions  COBOL  Invented in 1959  Business data processing on large mainframe computers  Payroll, banking, billing, inventory management, census  English commands:  ADD A TO B GIVING C

Examples

 BASIC  Invented in 1963  Educational language ( first)  Copied by many hardware and software companies  The first interpreter language  Instructions translated to machine code one-at-a- in real time  Many others  C  ALGOL  PL/1, APL, SPSS, SAS, WATFOR, GPSS, RPG II, PASCAL, ADA, Modula-2, LISP, PROLOG, FORTH, LOGO

Fourth Generation

 Data base languages  SQL  Visual languages  Visual Basic  Visual Age  Object-oriented languages  C++  C#  Java  Smalltalk

Fourth Generation

 Rapid Application Development (RAD)  Computer Assisted Software Engineering (CASE)  Examples:  Delphi  Power Builder  Automatic Program Generator Internet Languages

 Client-side processing  HTML  Javascript  VB Script  Cascading Style Sheets (CSS)  eXtensible Markup Language (XML)  Server-side processing  Perl  Python  Rexx  Ruby

Mobile App Languages

 Objective C  Objective Pascal  C++  C#  Java  Visual Basic  HTML5  Others invents computer languages?

 Hardware companies  IBM developed FORTRAN in 1954  IBM developed PL/1, RPG II, APL, GPSS, SQL, etc. in the 60's and 70's  AT&T developed C  Sun Microsystems invented Java Who invents computer languages?

 Software companies  Microsoft developed GWBASIC, QBASIC, QuickBASIC, Visual Basic, Visual Basic for Applications (VBA), Visual Basic .NET, J++, and C#  Netscape invented JavaScript  Borland developed Delphi  Sybase developed PowerBuilder

Who invents computer languages?

 Universities  BASIC was developed at Dartmouth University in 1963  LISP and LOGO were developed at M.I.T.  WATFOR was developed at the University of Waterloo (Canada)

Who invents computer languages?

 Governments/standards organizations  COBOL was developed by the U.S. Department of Defense in 1959  ALGOL was developed by a consortium of European governments in the 1960's  ADA was developed by the U.S. Government in the late 70's

Who invents computer languages?

 Individuals  Bjarne Stroustrup invented C++ (while working at AT&T Bell Labs)  Charles Moore invented FORTH.  Nicklaus Wirth invented PASCAL, Modula-2, and other languages  Larry Wall invented Perl  Jim Guerber invented InernetBasic  Brad Cox and Tom Love invented Objective C

The future…

 What types of programmable devices will we have?  Meta programming  Natural language programming