
Experiments in NES JIT Compilation - david_parrott
https://bheisler.github.io/post/experiments-in-nes-jit-compilation/
======
gravypod
For anyone who hasn't written a JIT I'd recommend writing a Brainfuck runtime
one day. It's a tractable and strait forward project that will teach you how
to do all of this. Start with implementing a direct interpreter and think of
ways to make it faster.

~~~
userbinator
Studying this amazing work of art is also recommended:
[https://news.ycombinator.com/item?id=8746054](https://news.ycombinator.com/item?id=8746054)

------
emerged
I've been meaning to do something similar, except by generating C code which
is compiled JIT. This way the compiler can optimize blocks of 6502 in more
efficient ways than just a direct mapping between opcodes and registers. Of
course there's no real purpose to doing this, but it's on my backlog of
"projects to do if I'm ever really bored" \- one of my first ever C++ projects
was writing a dynamic recompiler for 6502, nearly 20 years ago.

~~~
Gaelan
I think the common way to do something like this these days would be to
generate LLVM IR.

------
smegel
> Broadly speaking, a JIT (or just-in-time) compiler is a piece of code that
> translates some kind of program code into machine instructions for the host
> CPU.

No, that's a compiler.

~~~
SmellyGeekBoy
The author goes on to clarify right in the next sentence...

~~~
adwhit
I love the idea that someone got this far into the article, then stopped in a
furious rage to fire off a missive to the HN collective. If only they had read
on just One. More. Line!

