220 likes | 456 Views
Programming Languages. CPS120: Introduction to Computer Science Lecture 5. Programming Languages. A programming language is a set of rules that provides a way of telling a computer what operations to perform. Levels of Programming Languages. Machine language Assembly Language
E N D
Programming Languages CPS120: Introduction to Computer Science Lecture 5
Programming Languages • A programming language is a set of rules that provides a way of telling a computer what operations to perform.
Levels of Programming Languages • Machine language • Assembly Language • High Level Languages • Fourth Generation Languages (4GL)
Machine Languages • different for each computer processor 0100 001101 100000 001101 110001 00101 10001 10000 01110 111001 . . .
Assembly Languages • different for each computer processor main proc pay mov ax, dseg mov ax, 0b00h add ax, dx mov a1, b1 mul b1, ax mov b1, 04h
High-Level Languages • Higher Level Languages • Use traditional programming logic where the programming instructions tell the computer what to do and how to perform the required operations. • 4GLs • Use high-level English-like instructions to specify what to do, not how to do it .
Interpreter vs. Compiler • Interpreter • Translates instructions to machine code line-by-line. • Compiler • Translates the entire program to machine code before running it.
Types of Programming Languages • Machine language • Procedure-oriented languages • Object-oriented languages • Event-driven languages
Early Language History • FORTRAN (short for Formula Translator, developed in the 1950s by IBM • In 1958, a language called ALGOL (Algorithm Language) was developed • COBOL (Common Business Oriented Language) was created in 1960 to serve as the primary language for large-scale programs • In 1964, the BASIC language (Beginners All-Purpose Symbolic Instruction Code) was first used • In 1965, a language called PL/I was developed in hopes of being everything to everyone. • PL/I proved to be too complex. • In the late 1960s, Niklaus Wirth developed a teaching language called Pascal.
Later Language History • Ada, which was developed in 1983, is large and complex. • Smalltalk is graphical and object-oriented. Concepts developed with Smalltalk were important to the development and continued development of languages like C++ and Java • The C language was derived from ALGOL. • C++ is C with the addition of object-oriented concepts.
Procedure-Oriented Languages • FORTRAN • COBOL • Pascal • C • Ada
OOED Languages • Object-oriented languages • Smalltalk • C++ • Ada 95 • Event-driven languages • Visual Basic • most Visual languages
What Can a Program Do? • A program can only instruct a computer to: • Read Input • Sequence • Calculate • Store data • Compare and branch • Iterate or Loop • Write Output
Fundamental Programming Concepts • Assignment of values to a variable • Iteration (Looping) • Over a set of set of statements • With respect to a logical expressions (conditions) • Delegation of sub-tasks to functions / procedures
The Structure Theorem The Structure Theorem states that any algorithm can be built from three basic control structures. • One-after-another (Sequence) • Decision-making (Selection) • Making choices between 2 or more alternatives • Repetition (Iteration) • Concerned with repetitive tasks (and the termination conditions of loops)
C++ Control Structures • "Sequence statements" are imperatives • "Selection" is the "if then else" statement • AND, OR, NOT and parentheses ( ) can be used for compound conditions • "Iteration" is satisfied by a number of statements • "while" • " do " • "for" • The case-type statement is satisfied by the "switch" statement. • CASE statements are used for most non-trivial selection decisions
Programmer Productivity Tools • Modular Programming • Structured Programming • Object-oriented Programming
Modular Programming • Large programs are divided by functional parts into subroutines • Strong cohesion • Loose coupling
Structured Programming • Composed of sequence, decision (selection), and repetition (looping or iteration) structures • Structured program languages lend themselves to flowcharts, structure charts, and pseudocode. • Structured programming languages work best where the instructions have been broken up into small, manageable parts. • Looks at a problem as procedures • Data are maintained separately from data
Structured Program Rules • Use only sequence, decision, and repetition • Only one entrance into and one exit from a structure • Connectors only allowed when continuing processing from one column or page to another • Decision and repetition structures can be nested • Only one STOP instruction is permitted. It must be in the MAINLINE routine
Structured Programming Advantages • Standard method for solving problems • GO-TO less • Easier to test and debug • Written by more than one programmer • Reusability • Thrashing minimized
Object-Oriented Programs • Developed to respond to programming issues that structured programming did not adequately address • Rarely possible to anticipate the design of a completed system before implementation • GUIs were difficult to develop in traditional procedure-oriented languages • Sharing data across routines is error prone • Information hiding allows programmers to determine what data is exposed to various routines