Другие языки программирования и технологии

А почему программы написанные на C/C#/C++ имеют больший вес чем на tasm/masm?

Человек оптимизирует код прежде всего по кол-ву команд. Причём может использовать нетривиальные оптимизации, недоступные компилятору.

Компилятор C тоже можно переключить в режим оптимизации объёма кода (но до возможностей человеческого мозга он всё равно не дотягивает). Но чаще всего используется оптимизация по производительности - которая учитывает не только сами команды, но и взаимодействие рядом стоящих команд процессора. Потому, более длинный код, генерируемый компилятором, часто оказывается быстрее более короткого кода, написанного человеком.

Кроме того, к программам, написанным на языках высокого уровня, подключаются стандартные библиотеки, тоже увеличивающие объём программы - начиная с библиотек ввода-вывода.

В C++ ситуация хуже, чем в C - т.к. и объём библиотек больше, и объём генерируемого компилятором кода больше (например, нужно генерировать код, обеспечивающий поддержку ООП и исключений).

В C# ситуация ещё хуже - т.к. чем более высокоуровневый язык, тем больше кода, поддерживающего высокоуровневые возможности языка, вынужден генерировать компилятор и тем больший объём имеют подключаемые библиотеки.

P.S. Разумеется, я говорю про современные компиляторы. Компиляторы для MS-DOS давали длинный медленно работающий код - т.к. сделать эффективный автоматический оптимизатор кода для системы команд с малым количеством специализированных регистров и сегментной адресацией памяти практически невозможно.
Махсум Мухаммед
Махсум Мухаммед
76 836
Лучший ответ
Потому что на ассемблере никто не занимается коммерческими проектами.
Илья Кравцов Автору вопроса:
Позорники =) Правильно Volkov Commander.
У C# кст на выходе запускаемый файл относительно небольшой - т.к. юзает .NET библиотеки.
Ассемблер x86 - это консервы из прошлого тысячелетия. С гибелью Криса Касперски там всё засохло окончательно. Если бы я только начинал изучать ассемблер, я бы начал с ARM. 100% будущее там, Чувак! Сейчас пробую ковырятья, а мозги уже не те.
Каспер
Каспер
26 551