Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Религиозные войны > Компилятор или язык ?


Автор: TP@MB@Y 1.8.2005, 00:53
Step
Наверно у меня тачка быстрая т.к. я не заметил тормозов при компиляции.

Дурацкий вопрос:
А вообще почему так долго компилируется код у с++? На дельфи например такого не слышал...

Автор: Step 1.8.2005, 01:17
TP@MB@Y, а ты сбацай прогу посерьезней и там и там, откомпиль их в релизе, запусти, сравни скорости работы, размеры... количесво глюков... и поймешь smile
Добавлено @ 01:19
это из области: каждый хвалит свое болото.... но по скорости будь уверен проги откомпиленные в вс будут работать побыстрее

Автор: En_t_end 1.8.2005, 14:26
TP@MB@Y
Все зависет от рук и от головы.

Автор: TP@MB@Y 1.8.2005, 17:06
Step
En_t_end

Да нет... я имел ввиду что может у С++ способ компиляции чем то отличается?

Автор: En_t_end 1.8.2005, 19:23
TP@MB@Y
А причем здесь язык ? речь идет о компиляторе. Ведь ты не языком компилируешь smile Здесь речь идет о Visual C++ от Майкрософта.

Автор: Void 1.8.2005, 19:55
TP@MB@Y
C++ действительно компилируется медленнее Delphi. Причин тому несколько:
  • Существенно более сложная грамматика языка - больше работы парсеру.
  • Отсутствие модулей - изменение открытого интерфейса одного класса может привести к перекомпиляции всего проекта. Способы обхода есть (pimpl), но тем не менее...
  • Шаблоны. Сложный шаблонный код компилируется очень долго, и опять возникает проблема с модульностью, потому что раздельную компиляцию шаблоны убивают.

Автор: TP@MB@Y 1.8.2005, 23:37
Void
Теперь более менее ясно smile

En_t_end
Конечно же я имел ввиду компилятор С++. Но компилятор без описания языка не может компилировать... Это две вещи которые одна без другой бессмысленны smile

Автор: En_t_end 2.8.2005, 07:03
TP@MB@Y
Цитата(TP @ 1.8.2005, 21:06)
Да нет... я имел ввиду что может у С++ способ компиляции чем то отличается?

Еклмн... извиняюсь я отвечал на это высказывание smile
Способ компиляции зависет от компилятора. Так ? Это логично.
Язык же существует отдельно, существует его стандарт, он зарегистрирован.
Скорость компиляции зависет от сложности синтаксически определенного куска кода. Потому что я могу скомпилировать проект с десятками примеров множественного наследования(что есть большая работа для компилятора) и пример на Дельфи выполняющий те же функции, но без множественного наследования(хыхы). Могу поспорить скорость компиляции у Дельфей будет выше на порядок. Но вот здесь не стоит обольщаться, что скорость работы программ будет различной или же наоборот одинаковой, так как здесь все зависет от грамотности создателей компилятора и грамотности результатов его работы переданной линковщику, от которого скорость работы зависет в свою очередь тоже весьма сильно.
Void
Опять же эти шаблоны... их применение чрезвычайно специфично, в той доке, которую я предпочитаю, автор считает, что применять их следует крайне редко и только в библиотеках. А библиотеки как раз относяться к тем precompiled headers. А теперь вспомни пожалуйста когда ты вносил изменения в std smile Есть конечно вариант, когда создатели библиотек предпочитают отдать распоряжение шаблонами в руки людей ими пользующихся, но это есть не очень хороший стиль.

Автор: En_t_end 2.8.2005, 07:16
Модератор: Тема была сформирована из сообщений содержащих оффтопик из темы http://forum.vingrad.ru/index.php?showtopic=49441

Автор: Void 2.8.2005, 19:29
Цитата(En_t_end @ 2.8.2005, 09:03)
линковщику, от которого скорость работы зависет в свою очередь тоже весьма сильно.

Хм, я не смог придумать ничего, кроме скорости загрузки исполняемого файла, на что может влиять работа линкера.
Цитата(En_t_end @ 2.8.2005, 09:03)
Опять же эти шаблоны... их применение чрезвычайно специфично, в той доке, которую я предпочитаю, автор считает, что применять их следует крайне редко и только в библиотеках.

Название доки не подскажешь? smile Шаблоны могут избавить от массы ненужной писанины в самом различном коде, так что я не был бы столь категоричен.
Цитата(En_t_end @ 2.8.2005, 09:03)
Есть конечно вариант, когда создатели библиотек предпочитают отдать распоряжение шаблонами в руки людей ими пользующихся, но это есть не очень хороший стиль.

Не понял смысла "отдать в руки людей"... Шаблонная библиотека принципально не может быть с закрытым кодом. Или ты имел в виду что-то другое?

Автор: En_t_end 3.8.2005, 08:34
Void
Я имел ввиду, когда интерфейс шаблонов открытый и в коде человека, пользующегося подобной библиотекой можно увидеть частое указание типов в ипользуемых обьектах либо функциях. Когда как я считаю лучше закрывать интерфейс и даже smile... делать для каждого типа свой интерфейс явным подставлением известных типов в коде библиотеки.

ЗЫ Уолтер Савитч не очень доверяет шаблонам smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)