translational vs. denotational semantics

I'm developing a three-phase semantics for a block diagram language. I'm calling the first two phases "translational" and the last phase "denotational." This distinction between "translational" and "denotational" feels right, but I'm not sure it is right and was hoping some LtU members might be able to help.

I'm using "translational" to describe the phases of the semantics that could also be called desugaring. The distinction I see between these phases and the final denotational phase is that the denotational phase cannot be captured as translation to a finite program in the target language. The target language is a lightly sugared lambda calculus or a very limited Haskell, depending on how you look at it. (Actually the latter interpretation is how I actually make this semantics executable. I mention this only because I think it is cool, not because I think it is relevant to the question at hand.)

This all seems to stem from the denotation for the "letrec" construct, which, via the fixed-point operator, involves potentially unbounded recursive calls to the meaning function.

In particular,

meaning [LETREC declarations IN body] env
=
meaning body (fix newEnv)
where
newEnv e' = updateEnv (meaning declarations e') env

and fix and updateEnv are as you might expect, and "meaning" is assumed to be overloaded to work on declarations as well as expressions.

Does this distinction between translational and denotational semantics seem correct? As such, would a denotational semantics of a language w/o letrec be translational? And would a denotational semantics of a language with letrec and with letrec in the target language be translational? Are all operational semantics translational?