Old research question: What is a correct emulator?

New research question after thinking about the old research question for a while: Oh god. Oh no. What is an emulator?

@lindsey I often see people start tumbling down this slope as soon as they start thinking about the word "transpiler" for two whole seconds haha. Coming out the other side we do the usual lazy natural language semantics approach, in my experience at least: an emulator is an element of the set of things most of us call emulators (😭)
What do people mean when they say “transpiler”?

A compiler is a computer program that takes a program as input, does some sort of transformation on it, and returns another program. Most of the time, we think of a compiler as something that translates code from a higher-level language (such as, for instance, Rust, Racket, or JavaScript) to a lower-level language (such as, for instance, LLVM IR or x86-64 assembly), but this doesn’t necessarily have to be the case.

decomposition ∘ al
@lindsey @ryanbrewer a transpiler is a compiler with impostor syndrome