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?

see also "compiler", "database", "runtime system" etc. etc.
@lindsey Did you just repeat the same phrase four times?
@lindsey
Challenge: Come up with a definition of “emulator” under which a modern CPU isn’t an emulator that runs machine code on top of microcode

@inthehands @lindsey I tend to think of emulation as like mimicry; an emulator is something that behaves indistinguishably from the thing it emulates.

… tho by that definition every emulator is correct; if it’s not correct it’s only an attempted 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
@lindsey if you define a state space of all the I/O devices the emulator is emulating then a computer is an update function over that state space and an emulator is another equivalent computer. if you want timing equivalence then you can put wall timestamps in the state space
@lindsey (I'm reading classical RL papers right now so everything is some kind of state space to me atm)
@lindsey that is well defined here for a given state space but then you have to define the state space which I guess is moving the problem somewhere else instead of solving it

@lindsey worse: what is *correctness* :D

*ducks, in formal methods*

@kaoudis @lindsey did someone say ducks in formal methods?
@lindsey You seem caught up on the word "is".
@lindsey 'What, if anything, is an emulator?'
@joshua This, but with "transpiler", is also what you commented on my blog post complaining about the word "transpiler" nine years ago
@lindsey The worst part of that is that I did not even get that snowclone from the original "what, if anything, is a parrot", but instead, I got it from @tom7 's classic, https://tom7.org/papers/epsilon.pdf , which must have been relatively fresh in my mind at the time
@joshua @tom7 @lindsey this meme has its roots in animal taxonomy! see "what, if anything, is a rabbit" (wood 1957) https://www.jstor.org/stable/2406062?seq=1
@joshua @tom7 @lindsey ...wait hang on you did say this but i'm pretty sure it's rabbit and not parrot (i can't find one about parrots)
@joshua @tom7 @lindsey okay so i'm now going down a rabbit hole (whatever THAT is) trying to trace who got what from where. i THOUGHT surely tom must have heard of it through bob, via "what, if anything, is a programming paradigm" https://www.cs.cmu.edu/~rwh/papers/paradigms/paradigm.pdf but it looks like epsilon predates that by 3 years (epsilon does not cite a predecessor for the title)
@joshua @tom7 @lindsey meanwhile, *Bob* cites Jay Gould (1983), "what, if anything, is a zebra." but *Gould* https://emilkirkegaard.dk/en/wp-content/uploads/SJ-Gould-What-if-anything-is-a-zebra.pdf cites Wood (1957), "what, if anything is a rabbit". afaict the chain of allusion stops there

@joshua @lindsey

see @tom7 THIS is why it's important to cite your sources, so you can participate in the grand tradition of academic telephone

@chrisamaphone @joshua @lindsey yes, definitely from Bob, and the paper I know is the zebra one (pretty cool paper!) Good point on citations, though I’ll also note that when it comes to jokey allusions, the joke is better if you don’t have to explain it! Maybe a “spoilers” bibliography with red overprint so you have to use that red cellophane magnifying glass that comes with The Colonel’s Bequest
@chrisamaphone @tom7 @lindsey Yeah, I apparently had an uncorrected double-bit error