Computer Languages
First Generation
Machine language Binary code (0 and 1) Each type 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 M4 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 More 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, statistics 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 (at first) Copied by many hardware and software companies The first interpreter language Instructions translated to machine code one-at-a-time 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 Who 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 Bell Labs 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