4 ms·
> machine-code binaries aren’t a programming language Machine-code binaries aren't (they are programs), but ISA of a CPU is. I'd plug in a requirement of Turi
by yakubin 4y ago
> machine-code binaries aren’t a programming language
Machine-code binaries aren't (they are programs), but ISA of a CPU is.
I'd plug in a requirement of Turing-completeness for the source and destination language, and at that point the "semantics-preserving" variant makes perfect sense to me. Although canonically textbooks and Wikipedia don't seem to require that, so I'm fine accepting a definition not requiring Turing-completeness, just preservation of semantics.
- eru 4y agoIt makes sense to drop Turing-completeness. Many interesting languages are not Turing complete. Perhaps the most practical example: just-in-time compilation of regular expressions to native code via LLVM. Regular expressions are not Turing complete. Another example: take Agda as a source language. Agda is deliberately not Turing-complete, but can express almost any program you might be interested in. (Basically, Agda only allows you to express terminating programs. That's why it's not Turing complete.)