a) False
Explanation:The support of dynamic memory allocation is needed, when during compilation, the programmer does not know about the maximum requirement of memory by the program. It gives the flexibility to assign memory as per requirement during run time. Even when maximum or worst case memory allocation is known beforehand, usage of dynamic memory allocation leads to efficient programs in terms of memory usage.
b) True
Explanation:In the call by name parameter passing technique, unevaluated expressions are passed to the function and the expressions are evaluated in this called function. The functional programming languages like C which does not directly support call by name, can use thunk to implement the same. Thunk is a subroutine to assist call to another subroutine. During implementation of call by name strategy, thunk can be used to evaluate the passed expression and that evaluated value can be used by the original called function. Check out more about thunk and examples @ http://en.wikipedia.org/wiki/Thunk