“…Static analysis is intended to assess the program code without executing it [2,26], which means it is achievable even if the code's compilation fails [28]. Static analysis is mainly based on similarity of the code with the model code [25], in addition to some measurable criteria such as the total number of variables, statements, expressions, etc., and symbolic execution [48,51], which is used consequently to assess the correctness, efficiency [28], plagiarism [37,51], keywords matching, diagram analysis [26], and quality of the code [28]. Correctness means that the code is syntactically correct, which can be easily checked through a compiler or interpreter [2].…”