Com S 641 meeting -*- Outline -*- * the qualification principle ------------------------------------------ THE QUALIFICATION PRINCIPLE (Schmidt 4) or BLOCK STRUCTURE Any semantically meaningful syntactic category should be allowed to have U-blocks : U ::= ... | Typing rule: Semantic analogy: ------------------------------------------ ... local declarations ... | begin D in U end U is called the *body* of the block Explain the semantics, that the D are only visible to the body This gives *block structure*, as in Algol-60, Pascal, or Scheme pi1 |- D: pi2 dec, pi3 |- U: t _______________________________ where pi3 = pi1 `unionMinus` pi2 pi1 |- begin D in U end : t ... define I1(I2)=U in I1(V) is-like begin define I2 = V in U end The trouble with this analogy is that the two things have different syntactic categories. The first is a program, and the U-block is a U Q: What are expression-blocks in Haskell or ML? let expressions Q: How is the qualification principle like the abstracion principle? (discuss this, see 4.9)