The compiler is mainly divided into front and and back end as bydecoupling the front end and back end of the compiler, we need only write one front end and then one back end for each target architecture. This approach to organizing the compiler cuts down significantly on the amount of work required to target another architecture and it aids in portability.
So option A