Languages and Compilers (SProg og Oversættere) Lecture 1
Lecturer
Assistant
What is the Most Important Open Problem in Computing?
How to increase Programmer Productivity?
Well …
What is this course about?
Curricula (Studie ordning)
What should you expect to get out of this course
Something for everybody
Format
Literature
Format (cont.)
What is expected of you at the end?
What you need to know beyond this course
Before we get started
Programming Languages and Compilers are at the core of Computing
What is a Programming Language?
Why Are There So Many Programming Languages
Levels of Programming Languages
Types of Programming Languages
Beyond Fifth Generation Languages
The principal paradigms
Programming Language Genealogy
Some new developments in programming languages in 2007
Multi-Paradigm
What determines a “good” language
Criteria in a good language design
Criteria (Continued)
Different Programming Language Design Philosophies
Programming languages are languages
Programming Language Specification
Slide 33
Slide 34
Important!
Syntax Specification
Backus-Naur Form
Slide 38
Mini Triangle
Syntax of Mini Triangle
Syntax of Mini Triangle (continued)
Slide 42
Syntax Trees
Slide 44
Contextual Constraints
Scope Rules
Type Rules
Semantics
Slide 49
Slide 50
Slide 51
Structured operational semantics
Language Processors: Why do we need them?
Language Processors: What are they?
Interpreter
You use lots of interpreters every day!
And also across the web
Compilation
Compiler (simple view)
Compiler
Hybrid compiler / interpreter
The Phases of a Compiler
Different Phases of a Compiler
Multi Pass Compiler
Tools and Techniques
Programming Language Implementation
Important
How does the course fit with my project ?
SPO as PE course for SW4
SPO as PE course on DAT2/F6S
SS as PE course on DAT2/F6S
SPO or SS as PE course
Programming Language Projects
Some advice
Programming Language Life Cycle
The course in a snapshot
Summary
Finally