Posted: Sun Mar 17, 2013 02:25
Прямо мурашки по коже.Accolon wrote:в свое время собирал "досье" на Lost-а, Dalai и Astor-а
Unofficial Heroes IV Mod
https://equilibris.celestialheavens.com/forum/
https://equilibris.celestialheavens.com/forum/viewtopic.php?t=160
Прямо мурашки по коже.Accolon wrote:в свое время собирал "досье" на Lost-а, Dalai и Astor-а
Щито?Accolon wrote:точнее, компилятр из ОО-языка в промежуточный код и затем - в ассемблер
Гадать не хочу, но размер exe-шника Тройки - 250kB, Четверки - 6.9Mb. Что называется, почувствуйте разницу.Accolon wrote:Например, создатели WoG-а, которые так же приложили свою руку к созданию Экви (на первых порах), утверждали, что код Четверки значительно сложнее Трешки.
Название: Equi-team.ADL.zip
Размер: 2.68 Мб
Доступен до: 2013-04-19 07:56:19
Моя соврал. Я имел в виду "компилятор переднего плана".Щито?
Но да, это не значит, что Четверку компилировали front-end компилятором.Наша система - не традиционный компилятор, порождающий объектный код, а так называемый компилятор переднего плана (front-end compiler), который в качестве результата своей работы формирует образ исходной программы на некотором промежуточном языке. Далее этот образ обрабатывается отдельной компонентой - генератором кода (back-end). Это обычная схема, давно принятая в многоязыковых системах программирования. Так как промежуточное представление выбирается единым для всех входных языков, то в системе достаточно единственного генератора кода, что исключает затраты на реализацию генератора для каждого отдельного компилятора. Кроме того, можно разработать несколько генераторов кода с единого внутреннего представления для различных аппаратных платформ, получив тем самым многоплатформную систему программирования. По этой схеме организована система gcc, похожим образом устроены и продукты семейства TopSpeed и десятки других.
По-моему, дело не только в объеме. В exe Четверки внутренних связей больше. И много hardcode (функционал спеллов, артов, абилок и проч).Гадать не хочу, но размер exe-шника Тройки - 250kB, Четверки - 6.9Mb. Что называется, почувствуйте разницу.
Так на выходе все равно получается стандартный ассемблерный код. Основы работы с которым неплохо описаны в книгах Криса Касперски из серии "Искусство дизасемблирования".Accolon wrote:Моя соврал. Я имел в виду "компилятор переднего плана".
Я к тому, что замороченность оного зависит от компилятора. Док-во:Так на выходе все равно получается стандартный ассемблерный код.
------------
BW4ever:
в какие иструкции транслируется след. программа:Code: Select all
main()
------------
Avaddon:
пример для gcc:Для Visual CCode: Select all
pushl %ebp movl %esp, %ebp subl $8, %esp andl $-16, %esp movl $0, %eax movl %eax, -4(%ebp) movl -4(%ebp), %eax call __alloca call ___main movl $1, %eax leave ret
Code: Select all
pushl %ebp movl %esp,%ebp movl 1,%eax popl %ebp ret