What’sProgramming Language (PL)Principles of Programming languageProgramming Paradigms and applicationdomainsPragmatic considerationsA brief history of programming languageProgramming language quality
IT6020 (c) PGS.TS. H.Q.Thắng, Dep. of SE 1 IT6020 Nguyên l cc ngôn ng lp trnh Lecturer: Dr. Huỳnh Quyết Thắng, Assoc. Prof at Dept. of Software Engineering, SoICT, HUST Email: thanghq@soict.hut.edu.vn Mobile: 0913536752 Chương 1 – Tng quan v ngôn ng lp trnh v chương trnh dch 2 Content of Lesson 1. Object-oriented programming 2. Compilation, Syntax and Semantic of Programming Language 3. Introduction to Programming Concepts (c) PGS.TS. H.Q.Thắng, Dep. of SE IT6020 3 1. Overview What’s Programming Language (PL) Principles of Programming language Programming Paradigms and application domains Pragmatic considerations A brief history of programming language Programming language quality (c) PGS.TS. H.Q.Thắng, Dep. of SE IT6020 4 1.1. What’s Programming Language What is a programming language? Abstraction of virtual machine int sum(int[] x) { int sum = 0; n = 0; while (n < x.length) { sum += x[n]; } return sum; } 00101010101010 10101011111010 11101010101110 00101010101010 (c) PGS.TS. H.Q.Thắng, Dep. of SE IT6020 5 1.1. What’s Programming Language What is a programming language? Donald Knuth (The Art of Computer Programming): Programming is the art of telling another human being what one wants the computer to do int sum(int[] x) { int sum = 0; n = 0; while (n < x.length) { sum += x[n]; } return sum; } 00101010101010 10101011111010 11101010101110 00101010101010 (c) PGS.TS. H.Q.Thắng, Dep. of SE IT6020 (c) PGS.TS. H.Q.Thắng, Dep. of SE 6 1.2. Overview-Principle of Programming Language Syntax: Basic vocabulary of words and symbols Grammar for writing programs in the Language: linguistic formalism (context-free grammar) Type systems and semantics: Types of values that programs can manipulate and the meaning (semantics) of these programs. Memory management: Collection of techniques that help us to understand the mechanism of mapping value, data structures, static and dynamic memory. stack and the heap lifetime of variables, object Exception handling: Fundamental techniques of programming language, Kind of events occur unexpectedly during the run of a program IT6020 AT in PMT (c) PGS.TS. H.Q.Thắng, Dep. of SE 7 1.3. Ovier-View Programming Paradigms and application domains Major programming paradigm: Imperative programming Object-Oriented Programming Functional Programming Logic Programming Event-Driven Programming Concurrent Programming Application Domain Scientific computing Management information system Artificial intelligence System Web-Centrics AT in PMT (c) PGS.TS. H.Q.Thắng, Dep. of SE 8 1.4. Overview-Pragmatic considerations Considerations for programming language Architecture constrains Contextual constrains Virtual machines and interpreters Standard Legacy systems AT in PMT (c) PGS.TS. H.Q.Thắng, Dep. of SE 9 1.4. Overview-Pragmatic considerations Architecture constrains: programming language are designed for computer. Most computer designs over the past several decades have followed the von-Newman model. Many programming languages are well-matched with this architecture. CISC, RISC: Lisp machine AT in PMT (c) PGS.TS. H.Q.Thắng, Dep. of SE 10 1.4. Overview-Pragmatic considerations Contextual Constraints: programming languages are designed to satisfy other constrains imposed by the context in which they are used: the application area, the operating system, the network, and preference of the programming community. . Programming Functional Programming Logic Programming Event-Driven Programming Concurrent Programming Application Domain Scientific computing Management information system Artificial intelligence . organizations that oversee and maintain standard for programming languages American National Standards Institute (ANSI) International Standard Organization (ISO) Information about language. SE 6 1.2. Overview-Principle of Programming Language Syntax: Basic vocabulary of words and symbols Grammar for writing programs in the Language: linguistic formalism (context-free grammar) Type