Amigo писал(а):
SAAЦитата:
Не понял что тебя так пленило в lcc - 6кб кода?
Не код, а EXE-файл. В большинстве случаев начинающий программист вставляет несколько команд, а на выходе получается пол-меговый файл, это что, нормально? У меня ещё ни один код не переваливал за 100кб.
Не понимаю почему начинающего программиста должен волновать размер полученного
КОДА?
Андрюх мне не нравится терминология которую ты употребляешь, мы поэтому так долго и без результатно общаемся на тему программирования что ты не придерживаешься стандартной терминологии.
Код - это бинарный код, если так можно выразиться не читаемый человеком без специальной подготовки набор байт. А
исходные тексты программ - это
исходный код как любят говорить в кулуарах.
Еще раз попытаюсь объяснить тебе что EXE файл это файл в формате portable executable для MS Windows/DOS. EXE - это сокращение от английского слова
Executable (Исполняемый). Для нас это означает что код внутри этого файла может напрямую быть передан процессору. Есть еще COM формат исполняемых файлов, пришедший с больших систем в MS-DOS и я уже говорил что отличие COM от EXE в том что COM не содержит заголовка PE. Тут подробней можно почитать о PE
http://msdn.microsoft.com/ru-ru/magazine/bb985992(en-us).aspx
Поэтому самым коротким исполняемым файлом будет файл COM. Но поддерживается он скорее всего только средой DOS. Кроме того 6кб кода говорить не верно, так как кода там может всего 100 байт остальное это ресурсы, которые в оперативную память могут быть и не загружены совсем.
Теперь насчет компиляторов, опять таки GCC создает код меньший и более оптимизированный, потому что в GNU Compiler Colections идет достаточно жесткий отбор. Например в настоящий момент на роль компилятора С/С++ пытается активно пройти "собеседование" Clang. У llc к тому же весьма забавная лицензия не позволяющая создавать на нем коммерческие продукты, что для тебя как я понимаю является непреодолимым препятствием. CCG мультиплатформенен, это надо понимать так что твой файл на C/C++/Object C/Java/Ada/Fortran можно будет:
а) скомпилировать на любой* платформе
б) скомпилировать под любую* целевую платформу
в) скомпилировать на любой* ОС
г) скомпилировать под любую ОС
* любую это конечно условно, экзотические вещи GCC не поддерживаются, но список платформ уникален по количеству и типу возможных.
lllc - только Win32 и видимо только под x86 совместимый процессор.
Мне кажется любого программиста не встроенных систем в первую очередь должны волновать вопросы совместимости, во вторую вопросы оптимизации по скорости и только в третью вопросы занимаемого исполняемым файлом размера.