Арсенал для программистов С/С++

Поработав в различных командах и проектах, думаю, что не открою новый материк, сказав о том, что Microsoft Visual C++ или те же решения от экс- Borland — далеко не единственные интегрированные среды разработки С/С++, которые популярны и используются. Иногда комбинации бывают просто невероятными, причем многое зависит от года старта проекта, предрасположенностей программистов, его начинавших, платформы, финансовых и технических требований к используемому ПО. Насчет предрасположенностей, кстати, это далеко не шутка. Недавно сам столкнулся с тем, что пришлось посмотреть на себя со стороны (самым любимым языком является С, следующим по собственным предпочтениям Lua…, кой тоже фактически С:)). Многие молодые программисты достаточно бегло изучают С и С++, предпочитая быстро переходить к более высокоуровневым языкам. Это не хорошо и не плохо, просто по мере профессионального совершенствования, если что-то упущено, идет возвращение к основам программирования на уровне изучения определенных концепций, а иногда и вовсе к С/С++.

В целом, для С/С++ сейчас актуально около двух десятков С/С++ компиляторов и примерно около тридцати IDE. Есть и узкоспециализированные ниши. Данная информация требует систематизации. Составлением подобного списка ссылок на компиляторы, IDE, библиотеки, дополнительную информацию я и занялся в одно время. Активные читатели могут также поучаствовать, прислав ссылки на те программные решения, которые здесь отсутствуют. Дело в том, что данный список будет выложен в Сети и постоянно будет находиться в режиме обновления. Сегодня мы дадим ссылки на бесплатные компиляторы и IDE.
Если вы решите изучать С или С++ после прочтения этой статьи, взяв за основу те же MSVC++, Code::Blocks, Dev-C++ и т.п., то, немного опередив события, порекомендую книги: Б.В. Керниган, Д.М. Ричи «Язык С» и/или Бьерн Страуструп «Язык программирования С++», а также какие-нибудь типовые задачники, в качестве которых также могут хорошо подойти и книги по интервью на собеседованиях для программистов по этим языкам. Итак, поехали.

Бесплатные компиляторы

. Microsoft Visual C++ Express (http://msdn.microsoft.com/vstudio/express/visualc/) — бесплатный компилятор для Windows и .NET.

. Embedded Visual C++ (http://msdn.microsoft.com/mobility/othertech/eVisualc/) — бесплатный компилятор С++ для Windows Mobile и Windows CE. . GNU C++/C Compiler, GCC (http://gcc.gnu.org/) — GCC (аббревиатура от GNU Compiler Collection), бесплатный, мультиплатформенный, с открытым исходным кодом набор компиляторов. Разработан в рамках проекта по разработке свободного программного обеспечения GNU (GNU — обратный акроним от фразы «GNU is Not Unix»). После изначальной поддержки С, далее было расширение для С++, Objective-C, Java, Fortran, Ada. На базе GCC разработано множество специфических компиляторов для различных, в т.ч. и уникальных платформ. В ряде случаев они называются «GCC- based». Стоит сказать, что некоторые разработчики подвергли его серьезной критике (см. Portable C Compiler).

. MinGW (http://www.mingw.org/) — набор минималиста для Windows (Minimalist GNU for Windows). По существу это порт GNU Compiler Collection (GCC) (см. выше) для Windows плюс бесплатная коллекция, включающая типовые заголовочные файлы и библиотеки. Используется очень часто при программировании под Windows. Нужно сказать, что изначально MinGW разрабатывался на базе Cygwin (см. следующий), но с версии 1.3.3 последнего был отделен и ведет развитие как самостоятельный проект, поддерживаемый мировым сообществом.

. Cygwin (http://www.cygwin.com/) — инструмент для портирования ПО UNIX в Windows и представляет собой библиотеку, которая реализует интерфейс прикладного программирования POSIX на основе системных вызовов Win32. Состоит из двух частей: динамически подключаемой библиотеки (DLL) cygwin1.dll, которая обеспечивает совместимость API и реализует значительную часть стандарта POSIX, и коллекции приложений, которые обеспечивают привычную среду UNIX. Как понятно из написанного, для обеспечения совместимости с Windows в Cygwin используется dll-слой, поверх которого запускаются программы (в отличие от концепции MinGW, которая использует вызовы Win API напрямую). Такой подход влияет и на лицензию, то есть с использованием Cygwin вы должны предоставлять свое ПО с открытым исходным кодом (в MinGW этого не требуется).

. Clang (http://clang.llvm.org/) — новый компилятор/фронтенд для С-подобных языков (С/С++/Objective-C/Objective C++), созданный специально для работы на базе фреймворка LLVM (Low Level Virtual Machine — низкоуровневая виртуальная машина), для которого в большинстве случаев в качестве фронтенда пока используются версии GCC. LVMM выступает в качестве бэкенда и может быть установлена на платформах MacOS, Linux, FreeBSD, Solaris и Windows. Основной целью Clang является замена GCC. В качестве основной IDE для него сейчас является XCode.

. Borland C++ 5.5 (http://forms.embarcadero.com/forms/BCC32CompilerDownload) — компилятор от Borland, ныне принадлежащий Embarcadero Technologies, для Win32 и DOS, бесплатную версию можно получить легально, соответственно, множество IDE середины 2000-х включили его поддержку.

. Digital Mars (http://www.digitalmars.com/) — набор С/С++ компиляторов и IDE для Win32, Win16, DOS32 и DOS.

. Open Watcom (http://www.openwatcom.org/) — С, C++ и Fortran компиляторы для Windows, Linux, OS/2 и DOS. Ведут историю с компиляторов Фортрана, а в 1988-м появился компилятор под С, который был очень высоко оценен большинством разработчиков С/С++ за генерацию быстрого и компактного кода. На его базе писались ключевые игры под DOS типа Doom или Warcraft II. В 2003 году были открыты исходные коды. В процессе развития было несколько проблем, но сейчас большинство из них решено.

. Intel C++ compiler (http://www.intel.com/cd/software/products/asmo-na/eng/compilers/clin/219856.htm) — бесплатный С++ компилятор от Intel для Linux. Запускается с командной строки, также может быть интегрирован в Eclipse IDE. На сайте Intel оный уже отсутствует, хотя можно найти на всевозможных ресурсах. Некоторые сайты также ссылаются на некий Intel C++ компилятор для Windows, но я таковой не встречал. . Macintosh Programmer's Workshop (http://developer.apple.com/tools/mpw-tools/) — здесь вы можете найти бесплатные С++ компиляторы, отладчики, ассемблеры и другую информацию для Мас-платформы.

. CC386 (http://www.members.tripod.com/~ladsoft/cc386.htm) — C-компилятор и IDE для 32 разрядных Win и DOS.

. Amsterdam Compiler Kit, ACK (http://tack.sourceforge.net/) — набор С-компиляторов и инструментов для ОС Linux, Minix и других Unix- подобных, в частности все варианты BSD.

. LCC (http://sites.google.com/site/lccretargetablecompiler/) — компилятор С (исходный код дается для некоммерческого использования), для Win 32 есть вариант с собственной IDE. На базе LCC созданы некоторые IDE, такие как Pelles C для Windows и Windows Mobile.

. Portable C Compiler, PCC (http://pcc.ludd.ltu.se/) — C-компилятор для Linux и Unix-подобных (BSD), написанный Стивеном С. Джонсоном из Bell Labs в середине 70-х, теперь поддерживается Андресом Магнуссоном. По существу, это один из первых компиляторов, способных адаптировать код к различным архитектурам вычислительных систем, лишь малая часть его исходного кода является платформозависимой, при этом РСС является строгим по отношению к синтаксическим ошибкам. Все это сделало Portable C Compiler долгожителем. В середине 80-х на базе PCC было написано множество С-компиляторов. Стоит отметить, что разработчики OpenBSD в одно время (2007 г.) подвергли большой критике GCC, назвав его «громоздким, глючным, медленным и генерирующим плохой код», и с того момента они перешли на PCC.

. Tiny C Compiler (http://bellard.org/tcc/) — С-компилятор для Win32 и Linux. Работает в несколько раз быстрее GCC (иногда чуть ли не на порядок).

. Portable Object Compiler (http://users.telenet.be/stes/compiler.html) — набор библиотек классов Objective-C и пре-компилятор, способный транслировать Objective-C код в стандартный С. Есть версии для MacOS, Linux, OS/2 и Windows.

. Small Device C Compiler, SDCC (http://sdcc.sourceforge.net/) — мультиплатформенный набор С-компиляторов для микроконтроллеров, Linux и MacOS-варианты базируются на GCC, Windows-вариант — на MinGW.

Бесплатные IDE

Думается, что Microsoft Visual C++ Express, а также возможность бесплатного использования полноценного Visual C++ для студентов в особом представлении не нуждается, поэтому идем дальше.

. Code::Blocks (http://www.codeblocks.org/) — пожалуй, одна из самых популярных на сегодня IDE среди программистов, как в стандартных сегментах, так и в геймдеве (именно там я встречал Code::Blocks чаще всего). В ее рамках предусмотрены различные типы проектов с предварительными настройками, например, C Console Application либо для DirectX или OpenGL. Есть полноценная интеграция с кроссплатформенной GUI-библиотекой wxWidgets (http://www.wxwindows.org/). Поддерживает следующие типы компиляторов — GCC (MinGW/Cygwin), MS Visual C++, Borland's C++ 5.5, DigitalMars, OpenWatcom, Small Device C Compiler (SDCC) и так далее. Может импортировать MS Visual C++ проекты, а также проекты Dev-С++.

. Eclipse CDT (http://www.eclipse.org/cdt/) — С/С++ IDE на базе Eclipse.

. NetBeans IDE (http://netbeans.org) — эта IDE пользуется большим уважением у программистов в силу того, что по уровню предоставляемых возможностей она фактически ничем не уступает коммерческим средам разработки. Может использоваться на платформах MacOS, Linux, Solaris, Windows и т.п. В ее рамках реализована поддержка основных языков, хотя ключевым является Java. Что касается C/C++, то NetBeans может работать и с ними, для чего требуется установка специального дополнения и компилятора (GCC, Cygwin или MinGW).

. Dev-C++ (http://www.bloodshed.net/devcpp.html) — IDE под Windows, может использовать различные GCC-based компиляторы С/С++, в качестве базового предлагается MinGW, а в качестве отладчика GDB, есть шаблоны проектов и так далее. По уровню развития, предоставляемых возможностей, а также количеству пользователей эта IDE сравнима с Code::Blocks. Добавление новых возможностей по созданию и использованию уникальных UI-компонент и форм специально для этой IDE разработан плагин wxDev-C++ (http://wxdsgn.sourceforge.net/) для интеграции с API wxWidgets.

. Ecere (http://www.ecere.com/) — довольно интересная и по своему уникальная коллекция инструментария, включающая IDE (дизайнер, отладчик, редактор кода) и SDK (GUI, 3D, базы данных, многопоточность, сокеты и т.п.). Работает в Windows и Linux. Удобно подходит для создания тех же компьютерных игр, мультимедийных и сетевых приложений. Уникальность данного инструментария состоит в том, что все базируется на языке eC, который является объектно-ориентированной надстройкой над С, но при этом все намного проще и удобнее, чем в С++.

. Solaris Studio (http://www.oracle.com) — мощная C/C++/Fortran IDE для Linux и Solaris. Включает графическую IDE на базе NetBeans, интегрированный отладчик dbx, большое количество инструментария и библиотек.

. KDevelop (http://kdevelop.org/) — С/С++ IDE для MS Windows, Mac OS X, Linux, Solaris и FreeBSD. Ранее набрала большую популярность среди программистов под Linux, поскольку охватывала меньше платформ.

. Anjuta DevStudio (http://www.anjuta.org/) — развитая многоязыковая IDE для Linux.

. Relo (http://www.fifsoft.com/relo/) — стандартная С/С++ IDE с открытым исходным кодом под Windows, в качестве компиляторов могут использоваться MinGW, Borland C++, Digital Mars.

. Sally (http://sallyide.sourceforge.net/) — небольшая С++ IDE для WinXP с дизайнером, позволяющим делать GUI в стиле .NET. Сама среда написана на C#, причем программирование в ней можно назвать, скорее, визуальным.

. SmallIDE (http://www.lusa.de/software/smallide.htm) — компактная С/С++ IDE на базе компилятора Borland C++ 5.5.

. Pelles C (http://www.smorgasbordet.com/pellesc/) — C IDE для Windows (x86 и x64) и Windows Mobile (ARM). Базируется на компиляторе LCC. В арсенале имеется редактор кода, отладчик, ассемблер (X86 и ARM), такие удобные вещи, как графический редактор для создания иконок,
курсоров, анимации.

. Ultimate++, U++ (http://www.ultimatepp.org) — довольно уникальная С++ среда разработки под Windows, для функционирования которой необходимо иметь одну из последних версий компилятора MS Visual C++. Уникальность состоит в том, что в рамках IDE объединены возможности обычного программирования и создания виджетов (различных элементов GUI). В этом плане среда выступает в качестве прямого конкурента таким
технологическим нишам, как Qt и wxWidgets, и в сравнении с ними программирование отличается более емким и оптимизированным кодом. Есть визуальный дизайнер и редакторы элементов.

. XCode — одна из ключевых IDE для MacOS.

. Visual-MinGW (http://visual-mingw.sourceforge.net/) — небольшая С++ IDE с открытым исходным кодом. Последнее обновление было в 2004 году.

Продолжение следует

Кристофер http://itcs.3dn.ru


Компьютерная газета. Статья была опубликована в номере 39 за 2011 год в рубрике программирование

©1997-2024 Компьютерная газета