How does Constant Folding work?
The constant Folding Technique is used during the compilation time. Let us elaborate on it with the help of an example
Suppose we have written some code in C++. The code is as follows
C++
#include <iostream> using namespace std; int main() { float x=5+2.3*2; // x is variable of type float int y = x + 2.3; //y is integer type cout<<y; //displaying the value return 0; } |
In the above code, we have assigned an expression to x. The value of the expression is added to 2.3 and we display the value of y. Since the expression always generates a constant value, therefore during the compile time the compiler calculates the value of the expression. Here the value of x is 9.6. Therefore whenever the code gets executed the compiler directly replaces the value of x with 9.6 and performs further executions.
Example:
Another example is as follows
C++
#include <iostream> using namespace std; int main() { // performing division int a = 4; int b = 5 / a; cout << b; return 0; } |
In this case the value of a is 4. The value of b is found by dividing 5 by 4. So during the compile time the compiler performs one time substitution and directly replaces the value of a in the division expression with 4. So whenever the code gets executed the compiler directly performs the division 5/4.
Constant Folding
As we all know humans understand only programming languages like C, C++, Python, Java, etc. whereas a computer can only understand bytecodes or machine languages. So compiler acts as a converter. Its aim is to convert the high-level language to machine-level language. However, during conversion, some optimization processes are followed to make the code more efficient thereby increasing the execution speed as well. One such optimization technique is Constant Folding.