Date post: | 02-Jun-2018 |
Category: |
Documents |
Upload: | dragon0962 |
View: | 217 times |
Download: | 0 times |
of 20
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