Which of the following statements are CORRECT?
(1) Static allocation of all data areas by a compiler makes it impossible to implement recursion
(2) Automatic garbage collection is essential to implement recursion.
(3) Dynamic allocation of activation record is essential to implement recursion
(4) Both heap and stack are essential to implement recursion.