Com S 342 meeting -*- Outline -*- * syntax abstraction (EOPL 3) a key idea in language design ------------------------------------------ THE IDEA OF SYNTAX ABSTRACTION problem: users doing same thing over and over making local bindings deeply nesting if expressions ... but it's solution: examples: terms: syntactic sugar syntax abstraction macro desugaring ------------------------------------------ ... tedious, error-prone ... new syntax that captures the pattern, semantics by translation to original ... let, letrec, and, or, cond, case C++'s for loop Q: How is this like procedural abstraction? also encapsulates a pattern of computation, but doesn't need special syntax as a procedure works Q: How is this like data abstraction? abstracts behavior from ways of using it Q: Which is the sugar, the shorter, less tedious version, or the translation? Also, this is important for us in that we can "boil away" the sugars and be left with the essentials of a langauge, which is what we'll focus on studying.