Program Specification, Construction and Verification: A Scientific Journey Spanning Three Decades