Сторінки

Показ дописів із міткою С. Показати всі дописи
Показ дописів із міткою С. Показати всі дописи

пʼятниця, 17 жовтня 2014 р.

Мова програмування С

Мова програмування С, в якій поєднується потужність і гнучкість універсальних мов програмування з високою ефективністю виконавчого коду та можливістю безпосереднього доступу до апаратних ресурсів комп'ютера, є однією з фундаментальних і найбільш уживаних мов проблемно-орієнтовного ти системного програмування. Тому глибоке знання і практичне володіння інструментальним засобом мови С обов'язкове для фахівців з програмного забезпечення комп'ютерів, комп'ютерних інформаційних технологій, систем автоматизованого керування й проектування, комп'ютерної інженерії, а також для всіх, хто пов'язує свою діяльність з комп'ютером і бажає опанувати науку програмування.

Створення та розвиток мови С. Мову С розробив на початку 70-х років минулого століття Деніс Рітчі (Dennis M. Rirchie), співробітник фірми Bell Telephone Laboratories (США). Спочатку мова створювалась як ефективний  і зручний професійний інструментарій, призначений для програмування операційної системи UNIX. Попередницями С були мови BCPL та B. Довший час фактичним стандартом мови C слугувала її реалізація в 7-й версії UNIX, описана Б. Керніганом (Brian W. Kernigkhan) та Д. Рітчі в першому виданні відомої усі програмістам книги "The C Programming language" (1978р). Цю версію мови прийнято позначати K&R.
Властивості мови С настільки захопили програмістів, що незабаром її стали широко використовувати для створення програм у різних практичних сферах. З'явилося багато версій і діалектів мови , часто несумісних між собою. Тому в 1983р. був сформований комітет із розроблення стандарту мови С. Шість років створювався стандарт С, який у 1989р. затвердив Американський національний інститут стандартизації (ANSI-American National Standarts Institute), а в наступному році - Міжнародна організація стандартизації (ISO - International Standarts Organization). Цей стандарт називають ANSI/ISO C, його повністю підтримую переважна більшість сучасних компіляторів мови С.
З 80-х років мовою С розробляють програми практично для всіх типів комп'ютерів: великих універсальних ЕОМ (мейнфреймів), міні-ЕОМ та персональних комп'ютерів, включаючи IBM-сумісні та комп'ютери Macintosh, а також для різних операційних середовищ: MS DOS, UNIX, Windows, Linux, Mac OS, OS/2 та інших. Створюються системи програмування С, до складу яких входять бібліотеки з широким набором різнотипних функцій та інтегровані середовища розробки (IDE - Integrated Development Enviroment). IDE призначені для швидкого та наочного запису й редагування текстів програм, їх компіляція та налагодження , а також для компонування великих програмних проектів. Одним з найбільш популярних IDE визнано Borland C/C++ фірми Borland International (тепер Inspire), розроблене для створення програмних продуктів мовами C та C++ в операційних середовищах MS DOS та Windows.
У 1999р. затверджено новий стандарт С, який не змінив базових концепцій та структури мови, а лише частково доповнив їх і розширив стандартні бібліотеки з урахуванням нових апаратних і системних можливостей комп'ютерів. На жаль, компілятори С-99 та відповідні середовища програмування ще не набули належного поширення .
Мова С стала основою створення і розвитку низки мов об'єктно-орієнтованого програмування, зокрема: C++, Java, C#. Першою назвою С++ була "C з класами", чим підкреслюють, що С становить фундамент нової мови, а саму мову С навіть оголовили підмножиною С++, проте згодом їх визнали двома самостійними мовами. Насправді, мова С++ є розширенням мови С, оскільки компілятори С++ підтримують усі синтаксичні конструкції та властивості мови С. Додатково С++ включає спеціальні засоби та бібліотеки, які реалізують принципи об'єктно-орієнтованого програмування.

Загальна характеристика мови С. Сучасна універсальна мова програмування С призначенна для створення прикладних (ужиткових) програмних продуктів і системних компонентів програмного забезпечення комп'ютерів. Підкреслимо основні риси мови С.
Потужність і гнучкість - ці терміни вживають найчастіше, характеризуючи С. Мовою С написано більшу частину програм універсальної і потужної операційної системи UNIX, створено ряд компіляторів та інтерпретаторів з різних мов програмування (зокрема Pascal, APL, LISP, Basic тощо), розроблено велику кількість інтерфейсів, різноманітних інструментальних засобів, в т. ч. текстових і графічних редакторів, систем і спеціалізованих програм для наукових досліджень, комп'ютерних ігор та багато іншого.
Ефективність. Програми мовою С достатньо швидкодійні й економічні за обсягами оперативної пам'яті, оскільки вони базуються на реальних можливостях комп'ютера. Це пов'язане з тим?, що С, хоча і є універсалною мовою програмування, але вона належить до мов високого рівня, як наприклад, Pascal, Ada, Modula-2, чи Basic. C - мова середнього рівня, яка може оперувати безпосередньо з даними та їх елементами: байтами, бітами, словами, адресами. Цим С-програми подібні до програм, написаних мовою асамблера, їх можна налаштовувати або на максимальну швидкодію, або на оптимальне використання оперативної пам'яті.
Структурованість. С належить до мов, які реалізують принципи структурованого підходу, зокрема проектування програми "зверху в низ", модульність, локалізацію області дії імен, автономність підпрограм, відокремленого коду програми від даних та інші. Структурованість С-програм близька до структурованості програм, написаних мовами Pascal чи Modula-2. Натомість С використовує єдиний вид підпрограм - функції. Мова С підтримує практично всі керуючі конструкції, а також типи і структури даних, які визнані сучасною теорією та практикою програмуваня як найбільш ефективні.
Орієнтація на професіоналізм програміста. Одна з базових концепцій С - високий рівень довіри програміста, Стваренна для потреб програмістів-професіоналів, мова С надає користувачеві широку свободу вибору форм даних і засобів програмування. Водночас потрібно пам'ятати, що відсутність контролю може призвести до небезпечних помилок у роботі програми, тому на програміста лягає значно вища, ніж в інших мовах, відповідальність за правильність результатів виконання програми.
Лаконізм. Ще однією рисою С, яка приваблює програмістів, є лаконізм запису конструктивних компонентів програм, пов'язаний перед усім з не великою кількістю ключових слів і потужним набором операцій. Програми мовою С можуть бути гранично компактними і короткими. Проте інколи надмірне прагнення до лаконізму робить програмний код малозрозумілим і сприятливим для помилок, які важко уявити. Недарма для С-програм традиційно проводять конкурс на найбільш заплутану програму.
Мобільність. Важливою рисою сучасних мов програмування є їх мобільність, яка дає змогу переносити програму, написану в одній системі програмування (тобто на певній операційній платформі) в інше операційне середовище. Мова С належить до мов, які характеризуються доброю мобільністю: перенесення програми вимагає мінімальних змін або доповнень. Безумовно, ті програми чи програмні компоненти, що використовують не стандартні засоби мови, а орієнтуються на конкретне апаратне забезпечення (наприклад, на певний вид відеосистеми або особливості механізму звертання файлів), залишаються немобільними.
Підсумовуючи сказане, можна зробити загальний висновок: С - універсальна мова програмування середнього рівня, яка підтримує більшість сучасних концепцій програмування, характеризується достатньою потужністю, доброю структурованістю, високою ефективністю, можливістю безпосереднього доступу до даних, компактністю та мобільністю програм. Основним недоліком мови є низька надійність через широку  свободу і неконтрольованість дій програміста.

Слово до читача. Щоб навчитись програмувати, недостатньо ознайомитись з мовою чи переглянути певну кількість програм. Необхідно самостійно
складати та реалізовувати програми, перевіряючи їх працездатність за різних умов виконання, шукати оптимальні програмні рішеня й експерементувати, вдосконалювати зміст і стиль запису програм.
Потужна за своїми можливостями і водночас не надто складна, лаконічна й елегантна мова С, яка відповідає більшості сучасних вимог до мов практичного програмування, дає змогу всебічно оволодіти майстерністю створення програм. "..чим більше працюєш із мовою C, тим зручнішою вона стає," -зазначали у передмові до своєї книги Б. Керніган і Д. Рітчі. Цю тезу можуть підтвердити тисячі прогрпмістів по всьому світі.