CSC141 Introduction to Computer Programming Programming Language
CSC141 Introduction to Computer Programming Programming Language • A programming Language is a notational system intended primarily to facilitate human-machine interaction. • The notational is understood both by human and machine. • The programming language has Syntax, and language elements have Semantics.
CSC141 Introduction to Computer Programming What is a program? • A program is something that is produced using a programming Language. •A program Semantics. is a structured entity with
CSC141 Introduction to Computer Programming What is programming?
CSC141 Introduction to Computer Programming What is programming? • Programming is a Science: Because it implement the algorithms describe by mathematics and science. • Programming is a Skill: Because it requires design efforts. • Programming is an Engineering: Because it requires a tradeoffs between program size, speed, time (required for development and debugging) and maintainability among many solutions. • Programming is an Art It requires creativity and employ imagination.
CSC141 Introduction to Computer Programming Types of programming Languages
CSC141 Introduction to Computer Programming Levels/Generations of Programming Languages • 1st Generation Programming language (1GL) • 2nd Generation Programming language (2GL) • Assembly Language : Mnemonics • 3rd Generation Programming language (3GL) • High-Level Languages ; (procedure oriented or Object Oriented) • 4th Generation Programming language (4GL) • Very-High-Level Languages • 5th Generation Programming Language • Natural Languages CSC141 Introduction to Computer Programming • Machine Language: 0s or 1s
CSC141 Introduction to Computer Programming Machine language (1GL) • The lowest level of language. • The language used to program the firstgeneration computers. • The instructions in 1GL are made of binary numbers, represented by 1s and 0s. • 1s and 0s correspond to the on and off states of electrical switches. • Suitable for the understanding of the machine but very much difficult to interpret and learn by the human programmer.
CSC141 Introduction to Computer Programming Assembly language (2GL) • Low-level language that allows a programmer to use abbreviations or easily remembered words instead of numbers. • These Observations are called Mnemonics. These Mnemonic are Opcode and Operands For Example: ADD AX, BX MOV CX, AX INC CX Op-code; ADD, MOV, INC Operands AX, BX,CX
CSC141 Introduction to Computer Programming Assembly language (2GL) • Programmer can write instructions faster but it is still not an easy language to learn. • Drawback: The language is specific to a particular processor family and environment. (Machine Dependent Language) • Assembler – A program that translates the assembly language program into machine language.
CSC141 Introduction to Computer Programming High Level languages (3GL) •A High-Level Language is an English-like language. • It is a refinement of a second-generation programming language. • It allowed users to write in familiar notation, rather than numbers or abbreviations. • Most High-level languages are not Machine Dependent. • Translator for High-level languages is either a Compiler or an Interpreter. • Examples of High-level languages: ―FORTRON ―COBOL ―BASIC ―C and C++
CSC141 Introduction to Computer Programming Very-High-Level Languages (4GL) • 4GLs are much more user-oriented and allow programmers to develop programs with fewer commands compared with 3GLs. • Non-Procedural Language; Programmers don’t have to specify all the programming logic, only tell the computer what they want done. • Saves a lot of time. • 4GLs consist of report generators, query languages, application generators, and interactive database management system • For example: • RPG III (Report Generator) • SQL (Structured Query Language) • NOMAD and FOCUS (DBMS)
CSC141 Introduction to Computer Programming Natural Languages (5GL) • Two types • Ordinary Human Languages; like English. • Programming language that use human language to give people a more natural connection with computers. • 5GLs are designed to make the computer solve a given problem without the programmer. • Natural languages are part of the field of study known as Artificial Intelligence. • Develop machines to emulate human-like qualities such as learning, reasoning, communicating, seeing and
CSC141 Introduction to Computer Programming Evolution of Programming
CSC141 Introduction to Computer Programming Programming Paradigms A number of programming paradigms are: • Procedural/Imperative Programming • Functional Programming • Declarative Programming • Object Oriented Programming • Event driven Programming • Parallel Programming
CSC141 Introduction to Computer Programming Procedural or Imperative: • Imperative programs emphasize “tell what to do” • When we say “ Do this, then do this, then do this, and if xx, do this, otherwise do this” This is imperative programming: • They focus on evaluating expressions and storing results in a variable. • The most common imperative language consists of statements such as: a = 10; b = 5; c = a + b;
CSC141 Introduction to Computer Programming Procedural or Imperative: … Contd Example of imperative languages are: • Assembly language • COBOL • Pascal • C and C++
CSC141 Introduction to Computer Programming Is there any Best Programming Language? • Programming Language is probably used most efficient if it is well suited for a specific task. • For example • Business applications are often written in COBOL. • Beginners to programming use BASIC. • Scientific programming is often undertaken with either FORTON, PASCAL or C.
CSC141 Introduction to Computer Programming Language Evaluation Criteria • Readability: measure programmer ease in reading source code • Orthogonality: include context sensitive restrictions. • Applicability: this is best suited as “use the right tool for the job” • Writ ability: includes simplicity and orthogonality and support for the abstraction • Reliability: include type checking and inspection handling • Cost: includes learning and writing cost, productivity, compilation cost, execution cost, debugging cost etc. • Other: flexibility of control statements and availability of data structures
CSC141 Introduction to Computer Programming History of C Language • A general-purpose computer programming language. • Developed between 1969 and 1973 by Dennis Ritchie at • • • • • the Bell Telephone Laboratories for use with the UNIX operating system. Descendant of Ken Thompson’s language “B” The first C programming language standard was published in 1978 as “The C Programming Language” by Kernighan and Ritchie (K&R). "ANSI C" was the second C programming language standard published in 1989. ISO approved “ANSI C” in 1990. The latest stable release is C11.

Introduction to Programming Languages

  • 1.
    CSC141 Introduction toComputer Programming Programming Language
  • 2.
    CSC141 Introduction toComputer Programming Programming Language • A programming Language is a notational system intended primarily to facilitate human-machine interaction. • The notational is understood both by human and machine. • The programming language has Syntax, and language elements have Semantics.
  • 3.
    CSC141 Introduction toComputer Programming What is a program? • A program is something that is produced using a programming Language. •A program Semantics. is a structured entity with
  • 4.
    CSC141 Introduction toComputer Programming What is programming?
  • 5.
    CSC141 Introduction toComputer Programming What is programming? • Programming is a Science: Because it implement the algorithms describe by mathematics and science. • Programming is a Skill: Because it requires design efforts. • Programming is an Engineering: Because it requires a tradeoffs between program size, speed, time (required for development and debugging) and maintainability among many solutions. • Programming is an Art It requires creativity and employ imagination.
  • 6.
    CSC141 Introduction toComputer Programming Types of programming Languages
  • 7.
    CSC141 Introduction toComputer Programming Levels/Generations of Programming Languages • 1st Generation Programming language (1GL) • 2nd Generation Programming language (2GL) • Assembly Language : Mnemonics • 3rd Generation Programming language (3GL) • High-Level Languages ; (procedure oriented or Object Oriented) • 4th Generation Programming language (4GL) • Very-High-Level Languages • 5th Generation Programming Language • Natural Languages CSC141 Introduction to Computer Programming • Machine Language: 0s or 1s
  • 8.
    CSC141 Introduction toComputer Programming Machine language (1GL) • The lowest level of language. • The language used to program the firstgeneration computers. • The instructions in 1GL are made of binary numbers, represented by 1s and 0s. • 1s and 0s correspond to the on and off states of electrical switches. • Suitable for the understanding of the machine but very much difficult to interpret and learn by the human programmer.
  • 9.
    CSC141 Introduction toComputer Programming Assembly language (2GL) • Low-level language that allows a programmer to use abbreviations or easily remembered words instead of numbers. • These Observations are called Mnemonics. These Mnemonic are Opcode and Operands For Example: ADD AX, BX MOV CX, AX INC CX Op-code; ADD, MOV, INC Operands AX, BX,CX
  • 10.
    CSC141 Introduction toComputer Programming Assembly language (2GL) • Programmer can write instructions faster but it is still not an easy language to learn. • Drawback: The language is specific to a particular processor family and environment. (Machine Dependent Language) • Assembler – A program that translates the assembly language program into machine language.
  • 11.
    CSC141 Introduction toComputer Programming High Level languages (3GL) •A High-Level Language is an English-like language. • It is a refinement of a second-generation programming language. • It allowed users to write in familiar notation, rather than numbers or abbreviations. • Most High-level languages are not Machine Dependent. • Translator for High-level languages is either a Compiler or an Interpreter. • Examples of High-level languages: ―FORTRON ―COBOL ―BASIC ―C and C++
  • 12.
    CSC141 Introduction toComputer Programming Very-High-Level Languages (4GL) • 4GLs are much more user-oriented and allow programmers to develop programs with fewer commands compared with 3GLs. • Non-Procedural Language; Programmers don’t have to specify all the programming logic, only tell the computer what they want done. • Saves a lot of time. • 4GLs consist of report generators, query languages, application generators, and interactive database management system • For example: • RPG III (Report Generator) • SQL (Structured Query Language) • NOMAD and FOCUS (DBMS)
  • 13.
    CSC141 Introduction toComputer Programming Natural Languages (5GL) • Two types • Ordinary Human Languages; like English. • Programming language that use human language to give people a more natural connection with computers. • 5GLs are designed to make the computer solve a given problem without the programmer. • Natural languages are part of the field of study known as Artificial Intelligence. • Develop machines to emulate human-like qualities such as learning, reasoning, communicating, seeing and
  • 14.
    CSC141 Introduction toComputer Programming Evolution of Programming
  • 15.
    CSC141 Introduction toComputer Programming Programming Paradigms A number of programming paradigms are: • Procedural/Imperative Programming • Functional Programming • Declarative Programming • Object Oriented Programming • Event driven Programming • Parallel Programming
  • 16.
    CSC141 Introduction toComputer Programming Procedural or Imperative: • Imperative programs emphasize “tell what to do” • When we say “ Do this, then do this, then do this, and if xx, do this, otherwise do this” This is imperative programming: • They focus on evaluating expressions and storing results in a variable. • The most common imperative language consists of statements such as: a = 10; b = 5; c = a + b;
  • 17.
    CSC141 Introduction toComputer Programming Procedural or Imperative: … Contd Example of imperative languages are: • Assembly language • COBOL • Pascal • C and C++
  • 18.
    CSC141 Introduction toComputer Programming Is there any Best Programming Language? • Programming Language is probably used most efficient if it is well suited for a specific task. • For example • Business applications are often written in COBOL. • Beginners to programming use BASIC. • Scientific programming is often undertaken with either FORTON, PASCAL or C.
  • 19.
    CSC141 Introduction toComputer Programming Language Evaluation Criteria • Readability: measure programmer ease in reading source code • Orthogonality: include context sensitive restrictions. • Applicability: this is best suited as “use the right tool for the job” • Writ ability: includes simplicity and orthogonality and support for the abstraction • Reliability: include type checking and inspection handling • Cost: includes learning and writing cost, productivity, compilation cost, execution cost, debugging cost etc. • Other: flexibility of control statements and availability of data structures
  • 20.
    CSC141 Introduction toComputer Programming History of C Language • A general-purpose computer programming language. • Developed between 1969 and 1973 by Dennis Ritchie at • • • • • the Bell Telephone Laboratories for use with the UNIX operating system. Descendant of Ken Thompson’s language “B” The first C programming language standard was published in 1978 as “The C Programming Language” by Kernighan and Ritchie (K&R). "ANSI C" was the second C programming language standard published in 1989. ISO approved “ANSI C” in 1990. The latest stable release is C11.