Consider the following statements:
S1: Purpose of using intermediate code in compilers is to improve the register allocation.
S2: Operator grammer allows unit production .
S3: Directed acyclic graph can be used to eliminate the common sub expression
which of the above statements is / are correct?