Search code examples
rascal

Generic core binary relations of M3


In the paper "M3: a General Model for Code Analytics in Rascal" 3 Generic core binary relations for the M3 are given. These are: containment, declarations, and uses.

Looking at the M3 source code in analysis::m3::Core, I see a lot more binary relations:

  1. Declarations
  2. Types
  3. Uses
  4. Containment
  5. Messages
  6. Names
  7. Documentation
  8. Modifiers

Is this list just extended in the meantime? If so, should all relations be used for a correct implementation of the M3?


Solution

  • containment, declarations, and uses are still necessary core relations. The others are sufficiently generic to be implementable for all languages, but are not strictly necessary. This depends on the tooling you use in the "back-end".