Programming Languages Telling computers what to do CMPE13 1 Cyrus Bazeghi Objectives • Describe what programmers do and do not do • Explain how programmers define a problem, plan the solution and then code, test, and document the program • List and describe the levels of programming languages – machine, assembly, high level, very high level, and natural • Describe the major programming languages in use today • Explain the concepts of object-oriented programming CMPE13 2 Program Set of instructions written in a programming language that tells the computer what to do CMPE13 3 Programmers • Prepare instructions that make up the program • Run the instructions to see if they produce the correct results • Make corrections • Document the program • Interact with – Users – Managers – Systems analysts • Coordinate with other programmers to build a complete system CMPE13 4 The Programming Process • • • • • Defining the problem Planning the solution Coding the program Testing the program Documenting the program CMPE13 5 The Programming Process: Defining the Problem • What is the input • What output do you expect • How do you get from the input to the output CMPE13 6 The Programming Process: Planning the Solution • Algorithms – Detailed solutions to a given problem • Sorting records, adding sums of numbers, etc.. • Design tools – Flowchart – Pseudocode • Has logic structure, but no command syntax • Desk-checking – Personal code design walk through • Peer Reviews – “Code walk through”/structured walk through CMPE13 7 The Programming Process: Planning the Solution Accept series of numbers and display the average CMPE13 8 The Programming Process: Coding the Program • Translate algorithm into a formal programming language • Within syntax of the language • How to key in the statements? – Text editor – Programming environment • Interactive Development Environment (IDE) CMPE13 9 VI • Mode editor, comes with pretty much all UNIX/LINUX distros • Insert or command modes • Cheat Sheet http://www.lagmonster.org/docs/vi.html CMPE13 10 Emacs • A very “rich” editor • More than just an editor • Cheat Sheet http://ccrma.stanford.edu/guides/packag e/emacs/emacs.html CMPE13 11 The Programming Process: Testing the Program • Translation – compiler – Translates from source module into object module – Detects syntax errors • Link – linkage editor (linker) – Combines object module with libraries to create load module – Finds undefined external references • Debugging – Run using data that tests all statements – Logic errors CMPE13 12 The Programming Process: Documenting the Program • Performed throughout the development • Material generated during each step – – – – – – – CMPE13 Problem definitions Program plan Comments within source code Testing procedures Narrative Layouts of input and output Program listing 13 Choosing a Language • Choice made for you – What is available? – Required interface • What do you know best? • Which language lends itself to the problem to be solved? CMPE13 14 Language Generations • Low levels closer to binary • High levels closer to human code • Five Generations: – Procedural Languages • Machine language • Assembly language • High-level language – 3GL – Nonprocedural Languages • Very high-level language – 4GL • Natural language – 5GL CMPE13 15 Machine Language • Written in strings of 0 and 1 – Displayed as hexadecimal • Only language the computer understands • All other programming languages are translated to machine language • Computer dependent CMPE13 16 Assembly Language • Mnemonic codes – Add, sub, tst, jmp… • Names for memory locations • Computer dependent • “Assembler” translates from Assembly to machine language CMPE13 17 3GL: High-Level Languages • 1960s • Languages designed for specific types of problems and used syntax familiar to the people in that field – FORTRAN: (FORmula TRANslator) • Math – COBOL: (COmmon Business Oriented Language) • Business • Compile translates from high-level language to machine language CMPE13 18 4GL: Very High-Level Languages • Programmer specifies the desired results; the language develops the solution • Ten times more productive with a 4GL than a procedural language • Query Languages – Retrieve information from databases – Easy to learn and use CMPE13 19 5GL: Natural Languages • Resemble natural or spoken English • Translates human instructions into code the computer can execute • Commonly used by non-programmers to access databases CMPE13 20 Third Generation Languages: Traditional Programming • Describe data • Describe procedures or operations on that data • Data and procedures are separate CMPE13 21 Third Generation Languages • FORTRAN – 1954 – Represent complex mathematical formulas – C/C++ has replaced FORTRAN • COBOL – – – – CMPE13 1959 Business Large complex data files Formatted business reports 22 Average a list of numbers Accept series of numbers and display the average CMPE13 23 Third Generation Languages FORTRAN CMPE13 24 Third Generation Languages COBOL CMPE13 25 Third Generation Languages • BASIC (Beginners All-purpose Symbolic Instruction Code) – 1965 – Popularity grew with PC popularity (1970s) – Easy to learn – Used little memory – Bill Gates beginnings.. MS Basic • RPG – 1965 – Report generation – quickly creates complex reports CMPE13 26 Third Generation Languages BASIC CMPE13 27 Third Generation Languages • MS Visual Basic – – – – 1987 Create complex user interfaces Uses standard Windows features Event-driven – user controls the program • C – 1972 – Efficient code – the language of UNIX – Portability • C++ – Enhancement of C (Object Oriented) CMPE13 28 Third Generation Languages C++ CMPE13 29 OOP: Object-Oriented Programming • Object – Self-contained unit of data and instructions – Includes • Related facts (data) • Related functions (instructions to act on that data) • Example – – – – Object: Data: Functions: Cat: CMPE13 cat feet, nose, fur, tail eat, purr, scratch, walk Kitty, Tabby 30 OOP: Object-Oriented Programming • Encapsulation – describes the objects selfcontainment • Attributes – the facts that describe the object • Methods / operations – the instructions that tell the object what to do • Instance – one occurrence of an object • Messages – activate methods – Polymorphism Example: A ‘walk’ message causes Kitty to move (in a cat-like way) CMPE13 31 OOP: Object-Oriented Programming • Class – defines characteristics unique to all objects of that class • Inheritance – Objects of a class automatically posses all of the characteristics of the class from which it was derived • Subclass – inherits characteristics from class and defines additional characteristics that are unique • Instance – actual occurrence of an object CMPE13 32 OOP: Object-Oriented Programming Example Class: Boat Subclass: Canoe Subclass: Powerboat Subclass: Sailboat Instance: Chardonnay II CMPE13 33 OOP: Object-Oriented Programming Using Objects in Business Class: Customer Subclass: Retail or Wholesale Instance: John Smith Retail and Wholesale customers automatically inherit customer address since it is part of the Customer class CMPE13 34 OOP: Object-Oriented Programming Languages • C++ Can write both structured and object-oriented code • Visual Basic Rudimentary features of object-oriented language CMPE13 35 Third Generation Languages Java • Cross-platform • Java Virtual Machine (JVM) – Sits on top of computer’s regular platform – Translates compiled Java code into instructions for the specific platform • Applets CMPE13 36