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

Попрацювавши в різних командах та проектах, думаю, що не відкрию новий материк, сказавши про те, що 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/) — безкоштовний компілятор C++ для 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/) - інструмент для портування ПЗ UNIXWindows і є бібліотекою, яка реалізує інтерфейс прикладного програмування 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/) — тут ви можете знайти безкоштовні C++ компілятори, відладчики, асемблери та іншу інформацію для Мас-платформи.

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.

linux
Думається, що 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-С++.

MinGW
. Eclipse CDT (http://www.eclipse.org/cdt/) - С/С++ IDE на базі Eclipse.

Windows
. 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.

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

. KDevelop (http://kdevelop.org/) — С/С++ IDE для 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.

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

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