Where Syntax Meets Semantics
Chapter Three Modern Programming Languages, 2nd ed. 1
Where Syntax Meets Semantics Chapter Three Modern Programming - - PowerPoint PPT Presentation
Where Syntax Meets Semantics Chapter Three Modern Programming Languages, 2nd ed. 1 Three Equivalent Grammars G1 : < subexp > ::= a | b | c | < subexp > - < subexp > G2 : < subexp > ::= < var > - < subexp
Chapter Three Modern Programming Languages, 2nd ed. 1
Chapter Three Modern Programming Languages, 2nd ed. 2
Chapter Three Modern Programming Languages, 2nd ed. 3
Chapter Three Modern Programming Languages, 2nd ed. 4
Chapter Three Modern Programming Languages, 2nd ed. 5
Chapter Three Modern Programming Languages, 2nd ed. 6
Chapter Three Modern Programming Languages, 2nd ed. 7
– (Can’t be infix, of course) – Can be prefix, as in -1 – Can be postfix, as in a++
Chapter Three Modern Programming Languages, 2nd ed. 8
Chapter Three Modern Programming Languages, 2nd ed. 9
Chapter Three Modern Programming Languages, 2nd ed. 10
Chapter Three Modern Programming Languages, 2nd ed. 11
Applies when the order of evaluation is not
Each operator has a precedence level, and those
Most languages put * at a higher precedence level
Chapter Three Modern Programming Languages, 2nd ed. 12
Chapter Three Modern Programming Languages, 2nd ed. 13
Chapter Three Modern Programming Languages, 2nd ed. 14
Chapter Three Modern Programming Languages, 2nd ed. 15
Chapter Three Modern Programming Languages, 2nd ed. 16
Chapter Three Modern Programming Languages, 2nd ed. 17
Chapter Three Modern Programming Languages, 2nd ed. 18
Chapter Three Modern Programming Languages, 2nd ed. 19
Chapter Three Modern Programming Languages, 2nd ed. 20
Chapter Three Modern Programming Languages, 2nd ed. 21
Chapter Three Modern Programming Languages, 2nd ed. 22
Chapter Three Modern Programming Languages, 2nd ed. 23
Chapter Three Modern Programming Languages, 2nd ed. 24
Chapter Three Modern Programming Languages, 2nd ed. 25
Chapter Three Modern Programming Languages, 2nd ed. 26
Chapter Three Modern Programming Languages, 2nd ed. 27
Chapter Three Modern Programming Languages, 2nd ed. 28
Chapter Three Modern Programming Languages, 2nd ed. 29
Chapter Three Modern Programming Languages, 2nd ed. 30
Chapter Three Modern Programming Languages, 2nd ed. 31
Chapter Three Modern Programming Languages, 2nd ed. 32
– Algol does not allow the then part to be
– Ada requires each if statement to be
– Python requires nested if statement to be
Chapter Three Modern Programming Languages, 2nd ed. 33
Chapter Three Modern Programming Languages, 2nd ed. 34
Chapter Three Modern Programming Languages, 2nd ed. 35
– Novices want to find out what legal programs
– Experts—advanced users and language system
– Tools—parser and scanner generators—want an
Chapter Three Modern Programming Languages, 2nd ed. 36
Chapter Three Modern Programming Languages, 2nd ed. 37
Chapter Three Modern Programming Languages, 2nd ed. 38
Chapter Three Modern Programming Languages, 2nd ed. 39
– Use {} anywhere it helps – Add a paragraph of text dealing with
– Define a convention: for example, that the form
– Use explicitly recursive rules for anything
Chapter Three Modern Programming Languages, 2nd ed. 40
Chapter Three Modern Programming Languages, 2nd ed. 41
Chapter Three Modern Programming Languages, 2nd ed. 42
Chapter Three Modern Programming Languages, 2nd ed. 43
Chapter Three Modern Programming Languages, 2nd ed. 44
Chapter Three Modern Programming Languages, 2nd ed. 45
Chapter Three Modern Programming Languages, 2nd ed. 46
Chapter Three Modern Programming Languages, 2nd ed. 47