imho.ws |
|
15.08.2007, 15:59 | # 1 |
Junior Member
Регистрация: 08.06.2005
Адрес: Рыжа
Пол: Male
Сообщения: 95
|
Компиляторы С
У меня тут появилась необходимость подучиться программить на С (для встроенных систем), а до этого я только на Delphi программил. Так вот столкнулся с такой проблемой: для С такое огромное множество компиляторов, да к тому же многие компиляторы С++ тоже, вроде, могут и С-код компилировать. Стал вобщем выбирать и застрял. Подскажите пожалуйста есть ли какая-либо существенная разница между ними (для обучения по-меньшей мере) и существует ли "эталонный" компилятор? А может кто объяснит почему вообще их такое количество для одной и той же платформы???
__________________
Born to lose, Live to win... |
15.08.2007, 16:44 | # 2 |
СуперМод
IMHO Консультант 2005-2009 Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 375
|
Для изучения собственно C/C++ компилятор большого значения не имеет. Язык един (а вот расширения его под каждую из платформ могут быть весьма специфическими).
Учиться лучше сразу на компилляторе, предназначенном под ту программно-аппаратную платформу, для которой собираешься писать - с тем, чтобы вникнуть в специфические расширения. Все могут. C явсяется подмножеством C++. Вообще - нет. Но, например, для Wintel эталоном является Intel C++ Compiller, а для *NIX - gcc (который, собственно, существует и в версии под Win).
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила! Распространенье наше по планете Особенно заметно вдалеке: В общественном парижском туалете Есть надписи на русском языке В. Высоцкий |
17.08.2007, 01:03 | # 5 |
Junior Member
Регистрация: 08.11.2006
Адрес: Quantizer
Сообщения: 67
|
А можно по подробнее? Это может быть существенно.
Borland, C и C++ -- это разные языки. У них синтаксис похож. Есть программы на C, которые не компилируются C++ компилятором.
__________________
Matrix has you... |
17.08.2007, 20:21 | # 6 |
Junior Member
Регистрация: 08.06.2005
Адрес: Рыжа
Пол: Male
Сообщения: 95
|
Ну, в конечном итоге надо будет программировать AVR микроконтроллеры. Я, правда, хотел сначала научиться писать на С в общем. Потому как с языком незнаком абсолютно.
И все-таки непонятно, в чем причина такого количества разных компиляторов для Windows, например. Пытался найти в чем между ними разница, но так толком и не разобрался...
__________________
Born to lose, Live to win... |
17.08.2007, 20:37 | # 7 | |
СуперМод
IMHO Консультант 2005-2009 Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 375
|
Ага. И есть программы на С++, которые компилируются, к примеру, только в Borland C++ Builder и ни в какую - в Visual C++... Это просто частичная несовместимость диалектов языка...
Цитата:
Основной от M$, существенно от него отстающие интеловский и борландовский и совсем уж маргинальный gcc. Больше ничего в голову не приходит... M$ делает компилятор под свои оси. Intel - оптимизирующие компиляторы под свои процессоры. Borland делает компилятор под свою идеологию разработки (VCL). gcc фактически линуксовый продукт, серьёзный проект под Win в нём собрать проблематично (зато он хорош для кросплатформенного программирования и портирован практически под все ОС). Есть определённые различия между компиляторами в плане языка - т.е. у каждого компилятора свой диалект.
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила! Распространенье наше по планете Особенно заметно вдалеке: В общественном парижском туалете Есть надписи на русском языке В. Высоцкий |
|
18.08.2007, 00:04 | # 8 | |
Junior Member
Регистрация: 08.06.2005
Адрес: Рыжа
Пол: Male
Сообщения: 95
|
Цитата:
__________________
Born to lose, Live to win... |
|
18.08.2007, 00:24 | # 10 |
СуперМод
IMHO Консультант 2005-2009 Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 375
|
JWalker, _http://www.thefreecountry.com/compilers/cpp.shtml
Это только свободные... Почему существует столько свободных (и не только) реализаций? Да потому, что часть из них узкоспециализированные, а часть - просто-напросто порождение тщеславия. "Я могу написать компилятор" - и пишет же. А то, что реально этим компилятором кроме автора пользуется 100, пусть даже 1000 человек во всём мире - автора в общем-то не волнует... Тот же TCC писался как наиболее компактный и наименее ресурсоёмкий компилятор, причём изначально только под Linux. Опять же, "работает под Windows" отнюдь не означает, что на выходе будет программа под Windows...
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила! Распространенье наше по планете Особенно заметно вдалеке: В общественном парижском туалете Есть надписи на русском языке В. Высоцкий |
05.09.2007, 05:20 | # 11 |
Guest
Сообщения: n/a
|
попробуй от Intel
>> http://www.intel.com/cd/software/pro...ers/284132.htm |
07.09.2007, 19:37 | # 12 |
Full Member
Регистрация: 25.11.2001
Адрес: Imho.ws
Сообщения: 941
|
Для AVR есть вроде GCC-AVR (WinAVR кажется тоже зовут).
Тебе надо Керниггана и Ричи как уже советовали и нормальные дебаггер. Причет последнее обязательно. Dev C++ MS Studio 2005 Express довольно неплохие средства разработки со встроенными дебаггерами. Потому как без дебаггера учиться програмить сложно.
__________________
Когда умираешь, да еще так долго и трудно, очень хочется хоть немного насолить живым, просто невозможно удержаться от искушения! М.Фрай |
20.09.2007, 22:47 | # 13 |
Guest
Сообщения: n/a
|
Это для х86 такой выбор. А для каждой конкретной embedded платформы от как правило сильно меньше. В большинстве случаев - 1. Как правило - GCC. Хотя для х86 он далеко не самый лучший код генерирует.
А вообще - С он и в Африке С. Какая нафиг разница "для встроенных систем" или для ЗС? Глупости все это. Это как "мне нужно овладеть кухонным ножом фирмы Х". Учись владеть ножом, фирма не важна. Удачи! |
22.09.2007, 13:57 | # 14 |
Guest
Сообщения: n/a
|
Это не так. Да, С++ сохранил бОльшую часть совместимости с С, но некоторые возможности C в нем не поддерживаются, т.о. он не является надмножеством C. Примеры - объявление функций в старом стиле, кастинг pointer-to-void в pointer-to-type и т.п. Для обучения, на мой взгляд, самый лучший, т.к. у него можно выставить -ansi -Wall -pedantic, что хорошо учит культуре кода имхо. Хотя, по скорости под Win32 я все же предпочитаю Microsoft Compiler...
|
24.09.2007, 11:52 | # 15 |
Junior Member
Регистрация: 24.06.2007
Сообщения: 121
|
Кстати, для встроенных систем есть хорошие средства разработки. Я видел Томпсоновскую. Специально оптимизирована под их железо.
Но если языка не знаешь - садиться за такую бесполезно. Сначала по простому, Здравствуй мир и пр. |