code: public Graph<AttributeOccurrence>[] createDP() {
          Graph<AttributeOccurrence>[] dp;
          int i;
          int max;
          AttributionBuffer ab;
  
          dp = new Graph[semantics.getGrammar().getProductionCount()];
          for (i = 0; i < dp.length; i++) {
              dp[i] = new Graph<AttributeOccurrence>();
          }
          max = semantics.getSize();
          for (i = 0; i < max; i++) {
              ab = semantics.get(i);
              addDP(dp[ab.production], ab);
          }
          return dp;
      }
docs: Computes "dependency" relation DP (definition 1).
  
  @return array indexed by productions where each Relation contains pairs of
  AttributeOccurrences.