摘要 |
A programming language processor performs link-time and run-time error checking of a program written in C, C++, or a combination of both. The link-time error checking diagnoses violations of the C++ One Definition Rule, and its equivalent in C. As the program runs, the run-time error checking examines accesses to computer memory to determine that the addresses accessed contain values of che type expected by the program. To add instrumentation to a C or C++ program, pre-expressions, post-expressions and clone-expressions are used to annotate an abstract syntax tree, the annotated tree is then canonicalized into a more traditional syntax tree before a back-end generates code for the program.
|