The language has to perform implicit type conversions where ever it is possible. As a thumb rule compiler performs a type conversion if it doesn't lead to any loss of information. For example, int can be converted into real, single precision to a double precision etc. under this rule. Compilers also support explicit type conversions. This conversion translates into many cases in the type assignment of a Left Hand side of a expression. For example, x = y + z ; Then the type of x depends on the type of y, z as described above.