Changes between Version 79 and Version 80 of IR


Ignore:
Timestamp:
11/28/15 09:23:18 (10 years ago)
Author:
siegel
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • IR

    v79 v80  
    44Questions:
    55* fix notation for contracts
    6 * can labels, whens, chooses be optional?
    7 * quotes around variables in declarations?
    8 * quotes around function names in definitions, prototypes?
     6* can labels, whens, chooses be optional?   See proposed statement grammar below.
     7* quotes around variables in declarations?  Could be awkward but might simplify parsing.
     8* quotes around function names in definitions, prototypes?  Could be awkward.
    99* is there ever a need for a function prototype?  Could variable decl notation be used instead? NO, variable decls are different, those are state variables.
    1010* should we leave our parameter names in abstract and system functions?  They are not needed for anything.  THEY ARE NEEDED FOR CONTRACTS, sometimes, and maybe for documentation.    Consider making them optional.
    1111
     12Proposed statement grammar:
     13{{{
     14statement: (ID ':')? (simpleStmt | chooseStmt)
     15
     16simpleStmt:
     17  (guardedStmt | primitiveStmt) ('goto' ID ';')?
     18
     19guardedStmt:
     20  'when' expr 'do' primitiveStmt
     21
     22chooseStmt:  'begin choose' simpleStmt+ 'end choose'
     23}}}
     24
     25If goto is missing, default is the next location.
     26If guard missing, deafult is true.
    1227
    1328
     
    385400pointer, ...
    386401Should these be called part of the language, or not?
    387