Еще раз хочу указать на существование LLVM (т.к. он идеально для данной задачи подходит).
Почитайте http://llvm.org/Features.html
Все что нужно, грубо говоря - сделать backend для Z80 (чтоб оно знало как со своего внутреннего "машинного кода" (IR - "internal representation") преобразовывать код в код Z80).
В результате получится куча готовых оптимизирующих компиляторов (C, C++, Obj.C, Java и т.д.) и прочих инструментов. Часть проходов оптимизации производится до преобразования в конечный машинный код, на уровне внутреннего "машинного кода" но с учетом характеристик конечной платформы, типа числа регистров, разрядности, доступных операций и т.д. Плюс можно дописать свои, специфичные для платформы.
---------- Post added at 12:53 ---------- Previous post was at 12:43 ----------
К слову о применимости LLVM для компиляции высокоуровнего кода во что угодно: backend компилирующий в javascript: https://github.com/kripken/emscripten/wiki (там есть онлайн демки).
Т.е. берется C, C++ и прочий код, на выходе получается javascript.
То же можно сделать и для Z80, но пока никто не сделал соответствующего backend-a. Понятное дело, органиченность объема оперативки Speccy нужно учитывать, но тем не менее. Да и переключение страниц по идее можно вполне прозрачно реализовать. (типа long jumps/calls)





Размещение рекламы на форуме способствует его дальнейшему развитию 
Ответ