KDM 1.4 RTF Avatar
  1. OMG Issue

KDM14 — Initialization block?

  • Key: KDM14-23
  • Legacy Issue Number: 11723
  • Status: closed  
  • Source: KDM Analytics ( Nikolai Mansourov)
  • Summary:

    Initialization block? Maybe need a special ControlElement for it. Maybe represent it with a BlockUnit
    not a CallableUnit. What is the semantics of passing control to other init blocks? The text needs to be made more
    clear

  • Reported: KDM 1.0 — Sat, 1 Dec 2007 05:00 GMT
  • Disposition: Resolved — KDM 1.4
  • Disposition Summary:

    Generalize Calls and clarify constraints for init blocks

    1. extend target of the current Calls from ControlElement to CodeItem so that It could refer to either a ControlElement or an entire CompilationUnit.
    Add description of initialization blocks to 13.3.3 pages 141-142, refer to Init example in section 12.19.2.

    2. Add description text to 12.19.2. Semantics of init blocks: 1) Code Assembly shall have an EntryFlow relation to the Init block, called the "master" init block; 2) each CompilationUnit shall have an EntryFlow relation to the first init block for the CompilationUnit, if required; 3) each init block has Flow relation to next init block within the same CompilationUnit, if required; 4) KDM implementation shall provide correct initialization order between multiple init blocks within each CompilationUnit. 5) KDM implementation shall provide correct initialization order between init blocks of separate modules. This order is typically undefined in the programming language and depends on the linker and the order in which modules are built. 6) KDM implementation shall determining appropriate owner for the init blocks. 6) KDM implementation shall provide appropriate chaining of init blocks across separate CompilationUnits within a CodeAssembly through the "master" init block in the CodeAssembly.
    The "master" init block owned by CodeAssembly owns an ActionElement with a sequence of Calls relations to each CompilationUnit that has an init block, in appropriate order. The last Calls relation is to the entry point of the CodeAssembly, for example, "main".

    3. Correct "master" init block in the Init example.

    4. Correct Init example.
    <actionRelation xmi:id="id.74" xmi:type="action:Flow" to="id.79" from="id.71"/>
    should flow to id.75

    5. Add description to CodeAssembly regarding EntryFlow relation to chained init blocks.

    6. Add description to Init microKDM action in Annex A, table A.4
    Clarify description of EntryFlow

  • Updated: Tue, 12 Jul 2016 14:44 GMT