Convolution: generating a continuous-time signal from a discrete-time sequence
I believe (2) and (4) are same. One can write $z(t)$ as

$$z(t) = \sum_k z[k]\delta(t-kT) = \sum_k \left(\sum_l g[l]h[k-l]\right)\delta(t-kT)$$

But $h[k-l] = h((k-l)T)$. Thus,
$$z(t) = \sum_l g[l] \left(\sum_k h((k-l)T) \delta(t-kT) \right) = \sum_l g[l] \left(\sum_k h(kT-lT) \delta(t-kT) \right) $$
or
$$z(t) = \sum_l g[l] h(t-lT)$$
which, by change of variables, is same as (2).