They're not like
The reason is that their primary goal isn't to evaluate code or to generate source code. It's to generate IR, something close to binary code. These four operators are something like macros for IR. Calling them operators isn't very accurate.
This may look pointless, because interpreters don't generate IR for code and instead evaluate code directly. In an interpreter, these operators would get source code as input. But this difference matters if a language isn't written as an interpreter because then the language must generate this IR at run-time. IR is usually generated at read-time to speed up execution, but in the rare cases where these operators are evaluated at run-time they must generate IR at run-time.
What should a program do if