Що таке програмування? Мови програмування. Комп 'ютерне програмування

Що таке програмування? Мови програмування. Комп 'ютерне програмування

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

Що таке програмування в загальному розумінні?

Якщо подивитися на основні трактування даного терміну, неважко зробити найпростіший висновок. Що таке програмування? Це написання програм.

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

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

Трохи історії

Говорячи про те, що таке програмування в сучасному трактуванні, варто звернути свій погляд на історію його виникнення. По суті, автоматизоване виконання якихось певних дій, наприклад, в області математичних обчислень, відомо людству досить давно.

Пригадати хоча б стародавню Грецію, в якій було використано пристрій з шестернями різної величини, що дозволяв робити найпростіші арифметичні дії. Це був справжнісінький прототип сучасного калькулятора.

У 1206 році з 'явився унікальний апарат з відстеження так званого метонового циклу, побудований Аль-Джазарі, який використовував складні на той час механізми, засновані на затисках і кулачках.

Тільки 1804 року світ побачив жаккардовий ткацький верстат, який був здатний відтворювати візерунки на тканинах, створені на основі перфокарт.


Але справжнім проривом став програмований аналітичний пристрій, розроблений Чарльзом Беббіджем, який, на жаль, за його життя так і не було побудовано.

Зате в 1846 році дочка Байрона створила першу в світі програму для аналітичної машини, яка вирішила рівняння Бернуллі. Звичайно, алгоритми програмування, які застосовувала графиня Ада Августа Лавлейс, були досить примітивними, але саме вони заклали те саме зерно, яке було використано при створенні сучасних комп 'ютерних програм. І саме її вважають у всьому світі прабатьком програмування.

Як комп 'ютер сприймає команди?

Будь-яка комп 'ютерна програма повинна машиною якимось чином виконуватися. Їй мало написати, мовляв, зроби те-то і те-то. Для цього були створені мови програмування.

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

Універсальним засобом стало використання двійкового (бінарного) коду, що складається з послідовностей нулів і одиниць, які сприймаються будь-яким комп 'ютерним пристроєм. Але як перевести смислові фрази і формули в такий вигляд? Для цього використовуються компілятори, які і перетворюють список команд у зрозумілий машині двійковий код. Можна зустріти і троїчні, і шістнадцятиричні коди, але вони використовуються вкрай рідко.

Мнемокоди

Зрозуміло, що вводити двійкові команди навіть на примітивних пристроях було вкрай важко, адже запам 'ятати такі послідовності людина за природою своєю просто не в змозі.

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


Поняття змінних

Але і цим справа не обмежилася. Застосовувані на зорі розвитку алгоритми програмування зажадали введення нової величини, що отримала назву змінної.

Суть її використання в будь-якій мові програмування полягає в присвоєнні певної області пам 'яті, в якій зберігається якесь значення, буквеного позначення. Для того щоб перевести мнемокоди в інструкції, а змінні в області пам 'яті, використовувалися інструменти, звані трансляторами. І всі мови, які використовували таку методику, отримали назву асемблерів.

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

Самі ж мовні засоби, на яких пишуться (або свого часу писалися) комп 'ютерні програми, умовно можна розділити на низько- і високорівневі.

Якщо хто зі старшого покоління пам 'ятає, навіть у радянські часи в школах на уроках інформатики викладалася мова Basic. З його допомогою на тодішніх машинах Yamaha КУВТ можна було створювати примітивні програми математичних обчислень, програмувати найпростіші картинки або музику, що звучить із системного динаміка. Для математики можна було використовувати і логічні оператори на кшталт "якщо", "то", "інакше". Але проблема всіх тих, хто гарненько навчився цій мові, полягала в тому, що вони ніяк не могли освоїти нові кошти.

Не кажучи про те, що мова Ассемблер своєю появою справила справжню революцію і використовується досі, з 'явилися досить специфічні засоби, наприклад, мови структурного або об' єктно-орієнтованого програмування (ОВП).


До ОВП сміливо можна віднести мову C +/+ +, на основі команд якої створені ті ж операційні системи Windows. Програмування на "Сі" є досить складним, проте при бажанні можна освоїти і його. Як кажуть, було б бажання. Можна піти на ті ж курси програмування або використовувати для навчання відповідну літературу. Правда, як вважає більшість фахівців, самому вникнути в основи мови ще можна, а от розвивати свої знання на практиці буде вкрай складно. Тут ніякі праці на кшталт книг "Програмування для чайників" не допоможуть.

Але повернемося до мов. Відносно недавно з 'явилися мови, що працюють на основі інтерпретаторів (.NET Framework, Python, Java, Perl і т. д.). У них замість машинного коду генерується особливий байт-код, який являє собою двійковий код віртуальної машини.

До речі сказати, програмування на Java можна без особливих зусиль освоїти самому. Наприклад, для мобільних пристроїв на основі Android-систем можна паралельно використовувати Android Studio і пакет Java SDK, а в якості тестувальника встановити Genymotion. Можна поступити ще простіше, звернувшись до онлайн-конструктора App Inventor, в якому створення послідовності команд проводиться на зразок складання пазлів.

Поняття парадигм

Поняття парадигм виникло не на порожньому місці. У загальному розумінні парадигми являють собою якийсь погляд на навколишній світ і дії, які в його відношенні можна зробити. У комп 'ютерному світі під таким терміном розуміється якесь узагальнення щодо роботи програми.

Існують програми, орієнтовані виключно на одну парадигму або виконання лише одного завдання, але всі сучасні мови та програми, що створюються на їх основі, вирішують кілька завдань. Звідси і з 'явився термін багатозадачності.


Сучасне програмування і його особливості

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

І хоча, як вважається, мова C +/+ + є домінуючою, не варто скидати з рахунків і Ассемблер. Дивно, але більшість вірусів написано саме на нім. а якщо взяти до уваги веб-програмування, скажімо, на основі Delphi, тут взагалі відкриваються такі широкі можливості і перспективи, що багато програмістів-початківців про це навіть не здогадуються.

Чи можна самому навчитися програмуванню?

Питання, пов 'язані з самостійним навчанням, безпосередньо залежать від того, чого саме хочеться навчитися. Література у вигляді книг "Програмування для чайників" дає лише часткові відповіді без конкретизації основних аспектів з урахуванням застосування тієї чи іншої мови. Це, так би мовити, для загального розуміння. Курси програмування - теж питання спірне, адже в даному випадку все залежить не тільки від сприйняття навчаним, а й від того, якими знаннями володіє викладач, як він подає матеріал тощо. Але якщо вже виникла необхідність вивчення якоїсь певної мови або методу програмування, в наше століття інтернету проблемою це не є. Можна знайти навіть онлайн-курси або докладний опис уроків з тієї ж платформі Java, програмування Android- або iOS-пристроїв.

Короткі підсумки

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