Exams › GATE › Technical
Which of the following are true?
I. A programming language which does not permit global variables of any kind and has no nesting of procedures/functions, but permits recursion can be implemented with static storage allocation
II. Multi-level access link (or display) arrangement is needed to arrange activation records only if the programming language being implemented has nesting of procedures/functions
III. Recursion in programming languages cannot be implemented with dynamic storage allocation
IV. Nesting of procedures/functions and recursion require a dynamic heap allocation scheme and cannot be implemented with a stack-based allocation scheme for activation records
V. Programming languages which permit a function to return a function as its result cannot be implemented with a stack-based storage allocation scheme for activation records
- II and V only
- I, III and IV only
- I, II and V only
- II, III and V only
Correct answer: I, II and V only
Solution
Option I is correct because a language without global variables and nesting can still use static allocation for recursion. Option II is accurate as multi-level access links are necessary for managing activation records only when nesting is present. Option V is true since returning functions typically requires a dynamic allocation scheme to manage their lifetimes.
Related GATE Technical questions
⚔️ Practice GATE Technical free + battle 1v1 →