Problem
1. Ada supports discriminated unions through variant records. Write a short report describing how Ada does this, and how it differs from Pascal and C.
2. Discuss the possible strategies adopted by a programming language to bind a finite mapping to a specific finite domain (i.e., to bind an array to a specific size). Also, give examples of languages adopting each different strategy.
3. Show how a variant record type in Pascal or Ada can be used to define a binary tree of either integer or string values.