This is a method of accelerating emulation by converting user code x86 code sequences to code sequences which will run on the native architecture, on the fly. After a code sequence has been translated, the next time the execution path reaches that point, the translated code is run, rather than interpreting it. The rationale behind adding dynamic translation is simply based on performance. This is certainly the most challenging software task I've ever worked on. The x86 processor is not a very clean architecture, and it is very complicated to translate code to something which is both efficient, and carries out all the necessary checks which are done implicitly by the CPU hardware.
Dynamic translation is a configurable compile time option, so bochs retains it's portability.
But for each platform to enjoy the performance gain of dynamic translation, a CPU specific back-end needs to be written. It's very important to me. I want bochs to run on every capable platform, and be efficiently ported to new ones. One of the main goals here, is for people to choose the workstation they want based on it's quality, not what software is available for it. I'd like to see Windows running at a comfortable speed on a reasonably powered Linux workstation, using dynamic translation.