Мова С з самого початку.

Опубліковано: 2008-10-30   23:41:19

C/C++Два дні тому я розмірковував про підходи до підготовки спеціалістів з розробки програмного забезпечення. І прийшов до висновку, що навчання ні за книжкою, яка не містить фундаментальних основ, теорії, ні за класичною ВУЗівською програмою (маю на увазі українські ВУЗи з якими мені довелось зіткнутись) навчитись нормально не можна. Що в першому, що в другому випадках треба проводити самонавчання.

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

Екскурс в історію

Історично мова C пов'язана з операційною системою Unix. В наш час популярністю користуються декілька апаратних платформ (тут мушу сказати, що окрім популярних у нас PC за кордоном долю ринку займають Mac, який зараз все більше зростається з PC, та Sparc - це з мені відомих). В 60ті роки різноманіття апаратних ресурсів було ширшим. І кожна апаратна платформа потребувала якихось інструментів для керування і користування.

В ті часи під кожну платформу писались власна операційна система, власні компілятори, іноді народжувались окремі мови програмування. І все це писалось на асемблері та в машинних кодах. Процес написання таких програм є завданням не тривіальним, вимагає багато часу та витрат.

Зрозуміло, що завдання для будь-якої платформи багато в чому співпадали: робота з пам'яттю, пристроями введення/виведення, якимись носіями інформації. Створення універсальної ОС вирішило б всі ці завдання, додавши до цього можливість безболісного переходу з однієї платформи на іншу. Не вистачало лишень універсальної, незалежної від платформи мови програмування..

В 1972 році Деніс Річі та Кен Томпсон створили мову, яка давала все що було потрібним для системного програмування під різні платформи. По суті C надає прості можливості роботи з пам'яттю, структурні конструкції для управління та можливість модульної організації програми. Здавалося це лише спрощений синтаксис того ж самого асемблера. Однак модульність та препроцесор, що обробляв код перед компіляцією надали можливість писати код незалежний від платформи, а всі залежні від платформи елементи виносити в модулі, які звичайно ж можна переписувати під кожну конкретну платформу, та не чіпати основний код.

На C була написана ОС Unix, яка швидко розповсюдилась в американських університетах даючи серйозний поштовх для популяризації цієї мови програмування серед студентів. Що і сталось. Хоча пройшло багато часу, однак мова програмування C займає частку ринку кадрів, використовується в задачах системного програмування, вона дала величезний поштовх розвитку мов програмування, ставши основою для C++.

Гадаю цього вистачить для розуміння важливості цієї мови. Настав час перейти ближче до практики...

Що нам буде потрібно?

Як я вже казав, C тісно пов'язана зі світом Unix. Саме там на мою думку краще працювати. Чому? Найкраща підтримка стандартів самої мови (в 1989 році було створено стандарт ANSI C, який можна вважати еталоном), широкий вибір інструментів, що дають можливість вивчати мову, а не середовище розробки, як це відбувається в Visual Studio, ну і звичайно термінал, що дає можливість відчути як це було тоді :)

Ще одна причина в тому, що робота з ОС цього сімейства потребує іноді трішки міркувати та вміння користуватись різноманітними джерелами інформації, що також буде корисним з практичної точки зору. Причому, вона дає готовий приклад як програми написані на C можуть працювати - для будь-якого OpenSource рішення можна продивитись програмний код та спробувати розібратись в принципі його роботи.

Я гадаю, що привабливим варіантом буде ОС Linux, або FreeBSD. Перший випадок взагалі дає можливість легкого старту. А вибір інструментів, більшість прийомів роботи є стандартними. Так що в даному випадку вибір залишу за вами.

Тепер залишилось обрати компілятор, та текстовий редактор. З компілятором особливих проблем не буде. GCC - консольний компілятор, що підтримує масу опцій, існує навіть на win платформі портована версія. А от з текстовим редактором все набагато складніше: їх просто величезна купа. Особисто я обрав собі vim - нове інкарнація класичного Unix редактора стандарту Posix. Однак багатьом він здається незвичним, проте його функціональність перекриває будь-які незручності.

Що далі?

На сьогодні гадаю слід зупинитись. Так би мовити дати можливість підготуватись до початку роботи: обрати собі текстовий редактор, комусь компілятор (якщо людина користується Windows), чи можливо поставити саму ОС Linux чи то Unix. Сподіваюсь, що будуть і такі бажаючі.

Дякую за увагу!

Теги: C/C++
Коментарі: 2
 

Коментарі:

L42008-12-23 22:58:42 :

Що являє собою C/C++? Це програма для написання програм чи назразок медіа плейера що тільки відтворює вже написану програму?

Де можна придбати C/C++

Вибачай за гору запитань. Я хочу спробувати як воно :)

 
GrAndSE2008-12-24 09:56:28 :

Це спосіб написання інструкцій, обробивши які спеціальною програмою, що називається компілятор, можна отримати виконуваний файл. Наприклад, для windows це буде exe.

Всі інструкції записуються в текстовий файл. Взагалі є вже продовження цього матеріалу:

Перша програма мовою С, та набір дописів про типи змінних в мові: частина 1, частина 2, частина 3.

 

Додати коментар

user

email

url

text

Повідомляти про новікоментарі