Difference between revisions of "Adding a language construct"

m (Listed wizards)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
[[Category:Compiler]]
 
Checklist for adding a language construct to EiffelStudio (order not particularly significant).
 
Checklist for adding a language construct to EiffelStudio (order not particularly significant).
  
Line 5: Line 6:
 
* If this is an experimental change, make sure there is a clear rationale available for consultation.  
 
* If this is an experimental change, make sure there is a clear rationale available for consultation.  
 
* Lexical changes
 
* Lexical changes
* Syntax changes: parser
+
* Syntax changes: parser, pretty printer, documentation generator
 
* New validity rules and their four-letter codes, or modifications (including additions) to existing validity rules
 
* New validity rules and their four-letter codes, or modifications (including additions) to existing validity rules
 
* Type checking
 
* Type checking
Line 23: Line 24:
 
* Testing Framework
 
* Testing Framework
 
* EiffelStudio views: what survives of the new construct in the Contract View and others?
 
* EiffelStudio views: what survives of the new construct in the Contract View and others?
 +
* EiffelStudio wizards: what forms need to be changed, what behavior need to be updated, what new dialogs need to be added
 
* Effect on external code; in particular, how will the new construct appear to the  via external features, CECIL, .NET, external features?
 
* Effect on external code; in particular, how will the new construct appear to the  via external features, CECIL, .NET, external features?
 
* Documentation update, in particular
 
* Documentation update, in particular

Latest revision as of 21:24, 11 September 2017

Checklist for adding a language construct to EiffelStudio (order not particularly significant).

  • Announce the change so that others know what's happening!
  • Check ISO/ECMA standard, work of ECMA committee
  • If this is an experimental change, make sure there is a clear rationale available for consultation.
  • Lexical changes
  • Syntax changes: parser, pretty printer, documentation generator
  • New validity rules and their four-letter codes, or modifications (including additions) to existing validity rules
  • Type checking
  • Changes to AST structure (Abstract Syntax Tree)
  • Code generation
  • Runtime support:
    • introspection and reflection
    • conformance
    • catcall detection
    • storable facilities (serialization)
  • Serialization again: any problem with retrieving existing "storables"
  • Editor support
  • Automatic completion (also in editor)
  • New icons (or modified existing icons) associated with the new construct
  • Debugger
  • Metrics tool
  • Testing Framework
  • EiffelStudio views: what survives of the new construct in the Contract View and others?
  • EiffelStudio wizards: what forms need to be changed, what behavior need to be updated, what new dialogs need to be added
  • Effect on external code; in particular, how will the new construct appear to the via external features, CECIL, .NET, external features?
  • Documentation update, in particular
  • Examples of use, covering both basic and advanced usage, and integrated into the regression test suite for the compiler (EiffelWeasel)
  • Diagram tool (including: what are the BON and UML notations for the new construct)?

Original version from material by Alexander Kogtenkov and Bertrand Meyer