On the Relating Denotational and Operational Semantics for Programming Languages with Recursion and Concurrency