language: definition language: definition...
TRANSCRIPT
1
CPSC 449 Principles of Programming Languages Jörg Denzinger
1. Introduction
Language
Semantics
Parsing
Grammar
Syntax
Compiler
Interpreter
?
l-CalculusSLD-Resolution
abstract data types
loops
Error handling
CPSC 449 Principles of Programming Languages Jörg Denzinger
Human LanguagesBabel, manyyears ago
GoodDay!
GutenTag!
BonJour!
CPSC 449 Principles of Programming Languages Jörg Denzinger
Language: definition
Language:1 a: the words, their pronunciation, and the methodsof combining them used and understood by a largegroup of peopleb (1): audible, articulate, and meaningful sound asproduced by the action of the vocal organs(2): a systematic means of communicating ideas bysigns or marks with understood meanings (signlanguage)
CPSC 449 Principles of Programming Languages Jörg Denzinger
Language: definition (cont.)
2 a: form or manner of verbal expression; esp. STYLE(forceful language)b: the words and expressions of a particular group orfield (the language of medicine)3: the study of language especially as a school subject(Old French, from langue "tongue, language:, fromLatin lingua)
Webster's New Encyclopedic Dictionary, 1996 Edition
CPSC 449 Principles of Programming Languages Jörg Denzinger
How is language supposed to work?
Chair ?
CPSC 449 Principles of Programming Languages Jörg Denzinger
How is language supposed to work?
Chair ?
2
CPSC 449 Principles of Programming Languages Jörg Denzinger
How is language supposed to work?
Chair ?
CPSC 449 Principles of Programming Languages Jörg Denzinger
How is language supposed to work?
Chair
CPSC 449 Principles of Programming Languages Jörg Denzinger
But:
CPSC 449 Principles of Programming Languages Jörg Denzinger
So:
Chair
Syntax Semantics
CPSC 449 Principles of Programming Languages Jörg Denzinger
What do we want to communicateusing a language?
n Thingsl visible/invisiblel real/imaginary
n Conceptsn Actionsn Relationships
l Causall Temporal
n …
CPSC 449 Principles of Programming Languages Jörg Denzinger
Language is more than words!
n Letters are used to form wordsn Words are used to form phrasesn Phrases form sentencesn Sentences form paragraphsn Paragraphs form sectionsn Sections together form chaptersn Chapters form books
3
CPSC 449 Principles of Programming Languages Jörg Denzinger
But:
n Not every sequence of letters is an "allowed" wordn Not every combination of words is a phrasen Not every collection of phrases is a sentence
F Syntax defines what is allowed and what not!But: syntax must be communicated between humans!F Grammars
are used to describe syntax (using rules, laws, etc.)
CPSC 449 Principles of Programming Languages Jörg Denzinger
How do we go from syntax tosemantics?
n Humans learn about the meaning of words fromother humans and develop their own relationsbetween syntactical constructs and semanticalconcepts
n There are then groups of human beings that haverather similar semantical concepts for the samesyntactical construct
F A language is born
CPSC 449 Principles of Programming Languages Jörg Denzinger
Problems with human languages (I)
n Several different syntactical constructs can expressthe same semantical concepts:l Chair vs. object you sit onl This allows poets to exist!
n One syntactical construct can be associated withseveral semantical concepts
l Ambiguity: source for many jokes
Chair
CPSC 449 Principles of Programming Languages Jörg Denzinger
Problems with human languages (II)n Human languages change
CHATILLONPhilip of France, in right and true behalfOf thy deceased brother Geffrey's son,Arthur Plantagenet, lays most lawful claimTo this fair island and the territories,To Ireland, Poictiers, Anjou, Touraine, Maine,Desiring thee to lay aside the swordWhich sways usurpingly these several titles,And put these same into young Arthur's hand,Thy nephew and right royal sovereign.
The Life and Death of King John William Shakespeare
CPSC 449 Principles of Programming Languages Jörg Denzinger
What about computer programminglanguages?
n Fortrann Prologn Lispn C / C++n Javan Smalltalkn …
CPSC 449 Principles of Programming Languages Jörg Denzinger
Why do we have the Babel syndromehere?n People want to combine certain features of other
languages into one languagen People want to work on a higher abstraction level
and therefore produce a language with such higherconcepts
n People want to have a language that supports certaintypes of tasks:
l Self modifying programsl Real-time applicationsl Verification of programsl etc.
n There is a new idea of computability
4
CPSC 449 Principles of Programming Languages Jörg Denzinger
How is a programming languagesupposed to work?
?
CPSC 449 Principles of Programming Languages Jörg Denzinger
How is a programming languagesupposed to work?
?Sourcecodefile
Compiler
Inter-preter memory
prozessor
Compiler Exe-cutable
CPSC 449 Principles of Programming Languages Jörg Denzinger
How is a programming languagesupposed to work?
?Sourcecodefile
Compiler
Inter-preter memory
prozessor
Inter-preter
CPSC 449 Principles of Programming Languages Jörg Denzinger
How is a programming languagesupposed to work?
!Sourcecodefile
Compiler
Inter-preter memory
prozessor
Inter-preter
CPSC 449 Principles of Programming Languages Jörg Denzinger
But still:
CPSC 449 Principles of Programming Languages Jörg Denzinger
So, what defines semantics?
n Language report in natural languagen Operating system of underlying computern Understanding of designer & programmer of
compiler/interpreter of language report and machinespecifications
5
CPSC 449 Principles of Programming Languages Jörg Denzinger
What do we want to communicateusing a programming language?
n Data and the structure of datan Many different manipulations of datan Sequences and more complex combinations of data
manipulationsn Access to external devices, like sensors, files, printers
CPSC 449 Principles of Programming Languages Jörg Denzinger
How do we define a programminglanguage? (I)
Syntax:n Formal grammars like
l Context-free grammarsl Backus-Naur forml Attribute grammars
n Syntax diagrams
CPSC 449 Principles of Programming Languages Jörg Denzinger
How do we define a programminglanguage? (II)
Semantics:n Theoretically using:
l Operational semanticsl Axiomatic semanticsl Denotational (or fixpoint) semantics
n Practically:l (in theory) by a language reportl (in practice) by a compiler/interpreter
CPSC 449 Principles of Programming Languages Jörg Denzinger
Problems with programminglanguages (I)
n Several different syntactical constructs can result inthe same computation result:
j:= 0 j:= 0for i:=1 to 5 do i:= 1
j := j+1; while i<> 6 dobeginj:= j+1;i:=i+1end
CPSC 449 Principles of Programming Languages Jörg Denzinger
Problems with programminglanguages (II)
n Programming languages can change!Remember the Java 1.1 to Java 1.2 fiasco
But: the same syntactical construct should never havedifferent meanings(now, we just have to tell the compiler guys this J)