Всі, хто використовують комп'ютерну або мобільну техніку, так чи інакше, встановлюють програми, здійснюють виконання тієї чи іншої задачі. Але далеко не кожен користувач чітко уявляє собі, що таке комп'ютерна програма, як вона працює, як створюється, і т. д. Доведеться цього питання внести ясність.
Що таке комп'ютерна програма в загальному розумінні?
Якщо виходити із загального визначення, яке пропонується безліччю інтернет-ресурсів, чомусь поняття програми або програми в більшості випадків асоціюється виключно з виконуваними файлами формату EXE, COM, і т. д. Дозволимо собі з таким твердженням не можна погодитися.
Майже всі сучасні комп'ютерні програми, список класифікації яких буде наведено декілька пізніше, самі по собі не працюють. Так, є виконуваний файл, але ж цього мало. Потрібні ще й деякі додаткові компоненти завантажуються в ту ж оперативну пам'ять. Проте саме поняття програми, як такої, можна звести до того, що вона являє собою певний набір команд і інструкцій, що передаються центрального процесора для обробки або проведення відповідних обчислень, причому в строго певній послідовності.
Щоб машина розуміла посилаємо в певний момент команду для обробки і виконання незалежно від мови програмування, на якому написана програма, використовується універсальне засіб – двійковий код, що представляє собою послідовність нулів і одиниць. Можна зустріти ще і застосування трійкового або шестандцатиричного коду, але, як правило, в даний момент їх використання сильно обмежене.
Класи комп'ютерних програм
Що стосується класифікації будь-якого ПО, сьогодні існує досить багато систем, що включають в себе поділ за типами.
Однак у всіх системах класифікації виділяють такі комп'ютерні програми (список наводиться нижче): первинні системи вводу/виводу (BIOS, UEFI); системні програми і їх компоненти (операційні системи та їх власні служби); сервісне та обслуговуюче програмне забезпечення; середовища розробки (створення програм); прикладне ПЗ (вузько орієнтовані користувальницькі програми, що встановлюються на комп'ютер для виконання конкретно поставлених завдань). Не варто дивуватися, що в списку присутні навіть операційні системи або BIOS. Будь-яка сучасна ОС забезпечує взаємодію користувача з програмними та апаратними засобами комп'ютера через командний або графічний інтерфейс, а первинна система відповідає за збереження інформації про всіх «залізних» компонентах і тестування устаткування на стадії включення комп'ютера.
Як створюються програми?
У розробку особливо вникати сенсу немає, оскільки тут можуть знадобитися хоча б базові знання мов програмування.
Досить зазначити, що створення комп'ютерних програм зводиться до написання коду на самій мові (або з використанням середовищ розробки, наприклад, Java SDK), тестування програми в самому середовищі і компіляції (перетворення в код, розпізнаваний машиною).
Як працює більшість програм?
Користувач комп'ютерних програм не завжди розуміє, як це все працює. Найпростіші програми, що складаються з одного виконуваного файлу, йдуть у небуття. Сьогодні будь-яка мало-мальськи серйозна програма використовує виконувані файли для запуску основного інтерфейсу, після чого в оперативну пам'ять завантажуються динамічні бібліотеки, що містять виконувані коди і команди, а також проводиться звернення до драйверів, керуючим комп'ютерним «залізом», для залучення їх відповідних функцій.
У сенсі роботи додатків таке пояснення є досить примітивним, проте, якщо не вникати в суть системних процесів, навіть пересічному користувачеві буде зрозуміло, як це все функціонує.
Практичне застосування
Використання комп'ютерних програм в більшості випадків зводиться до того, щоб запустити виконуваний файл формату EXE, який створюється після установки програми на комп'ютер (в мобільних пристроях застосовуються інші формати). Для інсталяції передбачені ті ж виконувані компоненти, зазвичай мають назву Setup.exe (для оновлень системи Setup.msi). Але це не завжди так.
Наприклад, деякі програмні компоненти, представлені виключно у вигляді динамічних бібліотек DLL, здатні запускатися тільки в іншому програмному середовищі.
Найяскравішим прикладом є VST-синтезатори і ефекти, що підключаються до музичним редакторам і секвенсорам через відповідний інтерфейс хост. Що таке комп'ютерна програма в цьому сенсі? Це навіть не програма, а компонент, в якому прописаний набір команд, виконуваних при підключенні до інтерфейсу завантаження в оперативну пам'ять. Тільки з «оперативки» проводиться посилання на обробку центральним процесором, а не навпаки, як у випадку з виконуваними файлами.
Проблеми сумісності
Зрозуміло, що створити якесь універсальне додаток, яке б працювало абсолютно на всіх відомих операційних системах і пристроях, неможливо навіть в принципі. Тим не менш, такі спроби робляться, причому вельми небезуспішно (принаймні, в Windows щось схоже є).
Чого варті тільки хмарні сервіси, що дозволяють здійснювати доступ до зберігання або редагування інформації будь-якого типу без фізичної інсталяції на власний термінал. До сховищ або редакторам доступ може бути здійснено з будь-якого пристрою (ПК, ноутбуки, смартфони, планшети). А мультимедіа не обговорюється взагалі. Через веб-інтерфейс користувач будь-якого пристрою отримує доступ до медіа-контенту (той же хостинг YouTube).
Замість підсумку
Як бачимо, питання того, що таке комп'ютерна програма, має досить багато відповідей. З одного боку, це начебто і набір команд, проте, якщо подивитися на питання дещо ширше, можна зробити висновок, що це сукупність кодів або компонентів, що визначають поведінку операційної системи в цілому і операцій, вироблених «залізом». Таким чином, неважко зробити висновок про те, що будь-яка програма або програма самі по собі нічого не варті, якщо немає програмної середовища (ОС), в якій вони зможуть працювати, або пристроїв, встановлених на материнській платі, функції яких будуть потрібні для виконання певних завдань на поточний момент.
Залишається додати, що тут були наведені тільки найпростіші трактування комп'ютерних програм, принципів їх створення і застосування. Насправді все набагато складніше, розгляд всіх аспектів може зайняти досить багато часу. Тим не менш, якщо добре поритися у відповідній літературі, знайти докладні інструкції по якомусь окремо взятому програмного продукту не так вже й складно (як правило, такі описи присутні навіть на сайтах завантаження у вигляді попередньої інформації про можливості скачуваних додатків).