Programming environment generation based on denotational semantics