9. A method comprising: identifying one or more iterator-based expressions in a source code file by a computing device, wherein an iterator is an abstraction between an internal representation of a data structure and one or more functions that operate on the data structure, and an iterator-based expression is an expression that uses an iterator; for each identified iterator-based expression: replacing one or more operators in the iterator-based expression with one or more symbols corresponding to an operator class associated with each of the one or more operators by the computing device; generating a string comprising the iterator-based expression with the replaced one or more operators by the computing device; processing the generated string using an automaton to generate one or more non-iterator-based expressions that are functionally equivalent to the iterator-based expression by the computing device; and replacing the iterator-based expression in the source code file with the generated one or more non-iterator-based expressions by the computing device; and compiling the source code file to generate a computer executable program by the computing device.
9. A method comprising: identifying one or more iterator-based expressions in a source code file by a computing device, wherein an iterator is an abstraction between an internal representation of a data structure and one or more functions that operate on the data structure, and an iterator-based expression is an expression that uses an iterator; for each identified iterator-based expression: replacing one or more operators in the iterator-based expression with one or more symbols corresponding to an operator class associated with each of the one or more operators by the computing device; generating a string comprising the iterator-based expression with the replaced one or more operators by the computing device; processing the generated string using an automaton to generate one or more non-iterator-based expressions that are functionally equivalent to the iterator-based expression by the computing device; and replacing the iterator-based expression in the source code file with the generated one or more non-iterator-based expressions by the computing device; and compiling the source code file to generate a computer executable program by the computing device. 12. The method of claim 9 , wherein the one or more iterator-based expressions include one or more virtual function calls.