1.01 – Evolution of Programming Languages I. II. Categories of Programming Languages A. Low Level 1. Characteristics a) Almost no abstraction from the hardware b) Code is written to specific hardware c) Code will only operate on the hardware for which it was written 2. Examples a) Machine Code (1st Generation) i. Understood directly by CPU ii. Takes specialized knowledge to program iii. Uses hexadecimal numbering system b) Assembly Language i. One level of abstraction from machine code ii. MASM is an assembly language B. High Level 1. Characteristics a) Strong abstraction from the hardware b) Program can be written to run on many types of computers that run the same operating system 2. Examples a) Visual Basic 2010 i. BASIC (1964) was adapted by Microsoft for the purpose of writing Windows and Web applications ii. VB was released in 1991 iii. VB 2010 is the 9th version iv. Object-oriented programming language (OOP) b) Visual C# i. Created by Microsoft (2001) ii. Intended to be a simple, modern, general-purpose object-oriented programming language. iii. Current version is C# 4.0 iv. Language most closely related to CLI (Common Language Infrastructure)—backbone of the .Net framework c) Other high level languages are C++, F#, Java, and many more History of Programming Languages A. First Computer Program 1. Written by Ada Lovelace 2. Written in 1842-43 B. Modern Computer Programming Languages 1. 1940s—Plankalkül a) Written by Konrad Zuse b) Not implemented until 1998 2. 1950s and 1960s a) FORTRAN (Formula Translation) i. 1955 ii. John Backus and others b) COBOL (Common Business-Oriented Language) i. 1959 ii. Grace Hopper and others iii. Many of today’s financial computer programs are written in COBOL c) RPG (Report Program Generator) i. 1950 ii. IBM d) BASIC (Beginners’ All-purpose Symbolic Instruction Code) i. 1964 ii. Was widely taught in secondary schools 3. Late 1960s and 1970s a) B i. 1969 ii. Forerunner to C b) Pascal i. 1970 ii. Java borrows from Pascal c) C i. 1972 ii. C++, Java, C# and others are based on C d) ML i. 1973 ii. F# is based on ML iii. C++ borrows from ML III. e) SQL i. 1978 ii. Used for databases (Oracle, SAS) 4. The Internet Age—1990s a) Python—1991 b) Java—1995 c) Javascript—1995 (not related to Java) d) PHP—1995 e) Delphi—1995 (Object Pascal) Evolution of Computer Programming Languages A. Modern languages have more abstraction 1. Java program can run on a Windows system on any computer as long as a Java compiler is installed 2. Early programs were hardware-specific B. Modern languages have moved to Object Oriented Programming (OOP) 1. Use objects—data structures consisting of data fields and methods to design applications and computer programs 2. Early programming languages did NOT use OOP