Research Article

[Retracted] Automatic Grading for Complex Multifile Programs

Algorithm 3

AST simple tree matching with tag classifier algorithm.
Input:
A: Standardized student program AST
B: Standardized model program AST i
Output: Count of similarity node
Begin:
(1)Step 1: GenerateMap(A, B)
(2) A ⟶ set info tree based on Map key for A tree
(3) B ⟶ set info tree based on Map key for B tree
(4) global TagMap ⟵ 
(5) global GlobalNodeMap ⟵ 
(6)for each root node r
(7)  
(8)Step 2: SimilarityMatching(A, B)
(9) ns, cp ⟵ 0
(10) local LocalNodeMap ⟵ 
(11)for each (ANode, BNode) (A, B)
(12)  if (ANode, BNode) = (ATag ANodeNo, BTag BNodeNo)
(13)   TagMap ⟵ TagMap {ATag  BTag}
(14)   LocalNodeMap ⟵ LocalNodeMap {ANodeNo BNodeNo}
(15)  else if (ANode, BNode) = (AChildNo := a op a’, BChildNo: = b op b’)
(16)   SimilarityMatching(a, b)
(17)   SimilarityMatching(a’, b’)
(18)   if isLocal(a) and is Local (b) and TagMap(a, b) is equal
(19)    LocalNodeMap ⟵ LocalNodeMap {a  b}
(20)    ns+1, cp+1
(21)   else if
(22)    GlobalNodeMap ⟵ GlobalNodeMap {a  b}
(23)    cp+1
(24)   else if
(25)   else break
(26)End