+ All Categories
Home > Documents > introduction-handout.pdf

introduction-handout.pdf

Date post: 02-Jun-2018
Category:
Upload: dragon0962
View: 217 times
Download: 0 times
Share this document with a friend

of 20

Transcript
  • 8/11/2019 introduction-handout.pdf

    1/20

    Introduction

    PhD. Nguyen Hua PhungHCMC University of Technology, Viet Nam

    06, 2014

    PhD. Nguyen Hua Phung Introduction 1 /26

  • 8/11/2019 introduction-handout.pdf

    2/20

    Outline

    1 Introduction

    2 Reasons to study Concepts of ProgrammingLanguages

    3 Language Evaluation Criteria

    4 Language Design

    5 Implementation Methods

    PhD. Nguyen Hua Phung Introduction 2 /26

  • 8/11/2019 introduction-handout.pdf

    3/20

    Lecturer In Charge

    My name: Nguyen Hua PhungEmail: [email protected]

    Website: http://cse.hcmut.edu.vn/~phung(pending)Ofce hour: 9:00-11:30 Tuesday (subject to change)Sakai: https://elearning.hcmut.edu.vn

    PhD. Nguyen Hua Phung Introduction 4 /26

  • 8/11/2019 introduction-handout.pdf

    4/20

    References

    Programming Languages: Principles And Paradigms,Maurizio Gabbrielli and Simone Martini, Springer,2006.

    Programming Languages: Principles and Practices,Kenneth C. Louden, Thomson Brooks/Cole, 2003.Ngon Ngu Lap Trinh: Cac nguyen ly va mo hinh, CaoHoang Tru, 2004.

    PhD. Nguyen Hua Phung Introduction 5 /26

  • 8/11/2019 introduction-handout.pdf

    5/20

    Assessment

    Tutorial/Lab/Online: 10%Assignment: 20%Midterm: 20%Final:50%

    PhD. Nguyen Hua Phung Introduction 6 /26

    Obj i

  • 8/11/2019 introduction-handout.pdf

    6/20

    Objectives

    After complete this subject, students are able to:describe formally lexicon and grammar of aprogramming language

    describe and explain some mechanism of aprogramming languageimplement a interpreter/compiler for a simpleprogramming language

    PhD. Nguyen Hua Phung Introduction 8 /26

    B f S d i

  • 8/11/2019 introduction-handout.pdf

    7/20

    Benets of Studying

    Increased capacity to express ideaImproved background for choosing appropriatelanguagesIncreased ability to learn new languagesBetter understanding of the signicance ofimplementationBetter use of languages that are already known

    Overall advancement of computing

    PhD. Nguyen Hua Phung Introduction 9 /26

    P i D i

  • 8/11/2019 introduction-handout.pdf

    8/20

    Programming Domains

    Scientic ApplicationsFortran, ALGOL 60Business ApplicationsCOBOL

    Articial IntelligenceLISP, PrologSystems ProgrammingPL/S, BLISS, Extended ALGOL, and C

    Web SoftwareXHTML, JavaScript, PHP

    PhD. Nguyen Hua Phung Introduction 11/26

    L Ch t i ti

  • 8/11/2019 introduction-handout.pdf

    9/20

    Language Characteristics

    SimplicityOrthogonality

    Support of abstraction (Control, Data)Safety...

    PhD. Nguyen Hua Phung Introduction 12/26

    E al ation

  • 8/11/2019 introduction-handout.pdf

    10/20

    Evaluation

    ReadabilityWritabilityReliabilityCost

    PhD. Nguyen Hua Phung Introduction 13/26

    Inuences on Language Design

  • 8/11/2019 introduction-handout.pdf

    11/20

    Inuences on Language Design

    Computer ArchitectureVon Neumann

    Programming MethodologiesImperative

    Machine-based

    ProceduralDeclarative

    LogicFunctionalConstraint

    Query-basedObject-Oriented...

    PhD. Nguyen Hua Phung Introduction 15/26

    Computer Architecture Inuence

  • 8/11/2019 introduction-handout.pdf

    12/20

    Computer Architecture Inuence

    Well-known computer architecture: Von NeumannImperative languages, most dominant, because ofvon Neumann computers

    Data and programs stored in memory

    Memory is separate from CPUInstructions and data are piped from memory to CPUBasis for imperative languagesVariables model memory cellsAssignment statements model writing to memory cellIteration is efcient

    PhD. Nguyen Hua Phung Introduction 16/26

    Programming Methodologies Inuences

  • 8/11/2019 introduction-handout.pdf

    13/20

    Programming Methodologies Inuences

    1950s and early 1960s: Simple applications; worryabout machine efciencyLate 1960s: Efciency became important; readability,better control structures

    Structured programmingTop-down design and step-wise renementLate 1970s: Process-oriented to data-oriented

    data abstractionMiddle 1980s: Object-oriented programming

    Data abstraction + inheritance + polymorphism

    PhD. Nguyen Hua Phung Introduction 17/26

    Language Paradigms

  • 8/11/2019 introduction-handout.pdf

    14/20

    Language Paradigms

    Imperative (C, Pascal)

    Central features are variables, assignmentstatements, and iterationFunctional (LISP, Scheme, Haskel, Ocaml, Scala)

    Main means of making computations is by applyingfunctions to given parameters

    Logic (Prolog)Rule-based (rules are specied in no particular order)

    Object-oriented (Java, C++, Scala)Data abstraction, inheritance, late binding

    Markup (XHTML, XML)New; not a programming per se, but used to specifythe layout of information in Web documents

    PhD. Nguyen Hua Phung Introduction 18/26

    Language Design Trade-Offs

  • 8/11/2019 introduction-handout.pdf

    15/20

    Language Design Trade-Offs

    Reliability vs. cost of executionConicting criteriaExample: Java demands all references to arrayelements be checked for proper indexing but thatleads to increased execution costs

    Readability vs. writability

    Another conicting criteriaExample: APL provides many powerful operators(and a large number of new symbols), allowingcomplex computations to be written in a compactprogram but at the cost of poor readability

    Writability (exibility) vs. reliabilityAnother conicting criteriaExample: C++ pointers are powerful and very exiblebut not reliably used

    PhD. Nguyen Hua Phung Introduction 19/26

    Implementation Methods

  • 8/11/2019 introduction-handout.pdf

    16/20

    Implementation Methods

    CompilationPrograms are entirely translated into machinelanguage and then executedPure InterpretationPrograms are translated and executed line-by-lineHybrid Implementation SystemsA compromise between compilers and pureinterpretersJust-in-time CompilerA compiler inside an interpreter compiles just hotmethods

    PhD. Nguyen Hua Phung Introduction 21/26

    Implementation Methods

  • 8/11/2019 introduction-handout.pdf

    17/20

    Implementation Methods

    CompilerSourceExecution

    DataResult

    InterpreterSource

    DataResult

    CompilerSourceInterpreter

    DataResult

    PhD. Nguyen Hua Phung Introduction 22/26

    Compilation Phases

  • 8/11/2019 introduction-handout.pdf

    18/20

    Compilation Phases

    source program

    lexical analyzer

    syntax analyzer

    semantic analyzer

    intermediate code generator

    code optimizer

    code generator

    target program

    front end

    back end

    PhD. Nguyen Hua Phung Introduction 24/26

    Related Programs

  • 8/11/2019 introduction-handout.pdf

    19/20

    Related Programs

    PreprocessorAssemblerLinkerLoaderDebuggerEditor

    PhD. Nguyen Hua Phung Introduction 25/26

    Summary

  • 8/11/2019 introduction-handout.pdf

    20/20

    Summary

    What are still in your mind?

    PhD. Nguyen Hua Phung Introduction 26/26


Recommended