1. What is name equivalence? In what context is name equivalence used during the type checking? Illustrate with an example in C language.
2. Write an algorithm to check the equivalence of two type expressions in C language represented by a linked list.
3. Explain some of the productions and the semantic actions pertaining to the type checking in a semantic analyser for C language.