Hacker News new | ask | show | jobs
by conal 4187 days ago
Termination (really, non-bottom-ness vs bottom-ness) is a semantic (denotational) property, independent of the whims of any correct compiler. Execution/evaluation order, on the other hand is an implementation (operational) choice. For an implementation to be correct, the termination or nontermination of generated code must be agree with the semantics of the language.
1 comments

In principle, you can leave denotational properties unspecified in the language spec...