NOTE: You should do this homework on your own, not with the help of others in the class or outside the class. You may ask for clarification of questions from the TA or instructor.
PURPOSE: The purpose of this homework is to examine some of the issues and concepts related to data types, type equivalence, type inference, and memory layout and access for types.
type int[1:10] : vector; type vector[1:10] : matrix; type int[1:10[1:10] : mm; type vector[1:10] : zz; type record { string : lastname; int : phonenum; int : gradyear; int[1:10] : coursenums; } : studenttype; type record { string : firstname; int : age; int : gradyear; vector : coursenums; } : newstudenttype; type pointer to studenttype : spointer; pointer to studenttype : p, q; spointer : t,u; studenttype : s,r; newstudenttype : m,n; mm : c,d; zz : a,b; vector : v1, v2; matrix : m1, m2; (a) If we use structural equivalence for all type comparisons, which of these variables will be of the same types? Justify your answer. (b) If we use strict name equivalence for all type comparisons, which of these variables will be of the same types? Justify your answer. (c) If we use loose name equivalence for all type comparisons, which of these variables will be of the same types? Justify your answer.