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

Человек оптимизирует код прежде всего по кол-ву команд. Причём может использовать нетривиальные оптимизации, недоступные компилятору.
Компилятор C тоже можно переключить в режим оптимизации объёма кода (но до возможностей человеческого мозга он всё равно не дотягивает). Но чаще всего используется оптимизация по производительности - которая учитывает не только сами команды, но и взаимодействие рядом стоящих команд процессора. Потому, более длинный код, генерируемый компилятором, часто оказывается быстрее более короткого кода, написанного человеком.
Кроме того, к программам, написанным на языках высокого уровня, подключаются стандартные библиотеки, тоже увеличивающие объём программы - начиная с библиотек ввода-вывода.
В C++ ситуация хуже, чем в C - т.к. и объём библиотек больше, и объём генерируемого компилятором кода больше (например, нужно генерировать код, обеспечивающий поддержку ООП и исключений).
В C# ситуация ещё хуже - т.к. чем более высокоуровневый язык, тем больше кода, поддерживающего высокоуровневые возможности языка, вынужден генерировать компилятор и тем больший объём имеют подключаемые библиотеки.
P.S. Разумеется, я говорю про современные компиляторы. Компиляторы для MS-DOS давали длинный медленно работающий код - т.к. сделать эффективный автоматический оптимизатор кода для системы команд с малым количеством специализированных регистров и сегментной адресацией памяти практически невозможно.
Компилятор C тоже можно переключить в режим оптимизации объёма кода (но до возможностей человеческого мозга он всё равно не дотягивает). Но чаще всего используется оптимизация по производительности - которая учитывает не только сами команды, но и взаимодействие рядом стоящих команд процессора. Потому, более длинный код, генерируемый компилятором, часто оказывается быстрее более короткого кода, написанного человеком.
Кроме того, к программам, написанным на языках высокого уровня, подключаются стандартные библиотеки, тоже увеличивающие объём программы - начиная с библиотек ввода-вывода.
В C++ ситуация хуже, чем в C - т.к. и объём библиотек больше, и объём генерируемого компилятором кода больше (например, нужно генерировать код, обеспечивающий поддержку ООП и исключений).
В C# ситуация ещё хуже - т.к. чем более высокоуровневый язык, тем больше кода, поддерживающего высокоуровневые возможности языка, вынужден генерировать компилятор и тем больший объём имеют подключаемые библиотеки.
P.S. Разумеется, я говорю про современные компиляторы. Компиляторы для MS-DOS давали длинный медленно работающий код - т.к. сделать эффективный автоматический оптимизатор кода для системы команд с малым количеством специализированных регистров и сегментной адресацией памяти практически невозможно.
Потому что на ассемблере никто не занимается коммерческими проектами.
Ассемблер x86 - это консервы из прошлого тысячелетия. С гибелью Криса Касперски там всё засохло окончательно. Если бы я только начинал изучать ассемблер, я бы начал с ARM. 100% будущее там, Чувак! Сейчас пробую ковырятья, а мозги уже не те.
Похожие вопросы
- Возможно ли любую программу написать на языке C++ при помощи только структурного программирования, без ООП?
- Критика программы, написанной на языке C
- Возможно ли из программы, написанной в VISUAL STUDIO c++ извлечь exeшник так, чтобы он запускался абсолютно везде?
- Почему программа не компилируется в Borland C++ Builder?
- Подскажите пожалуйста самые лучшие учебники и программы для изучения C,C++.
- Ребят почему все говорят что c++ тяжелее c#? Если посмотреть синтаkсис c++ и c#,то более читаемый синтаkсис будет у C++
- почему языки с сиподобным синтаксисом такие как, C C++, C#, Java похоже между собой,
- Задача по программированию на C++ C++ C++ C++, не на Pascal
- какой язык легче; c, c++, c#
- язык программирования. какой язык программирования лутьше изучать: C, C++, C#, Java?
Позорники =) Правильно Volkov Commander.
У C# кст на выходе запускаемый файл относительно небольшой - т.к. юзает .NET библиотеки.