
[Ред.]Рівні програмування
Успішне програмування передбачає виконання необхідних дій на таких рівнях[Джерело?]:
Економічний (бізнес-логіка): Формування вимог до програмного продукту з урахуванням привабливості для користувачів, прибутковості для розробника і наявних можливостей розробника;
Структурний (архітектура): Створення переліку і взаємозв'язків потрібних модулів, графічних і звукових елементів, алгоритмів, баз даних, файлів, вибір мови програмування;
Детальний/Фізичний (кодування): Реалізація окремих функцій з використанням конструкцій і операторів мови програмування, друкування тексту програми на клавіатурі.
Систе́мне програмува́ння (або програмування систем) - це вид програмування, який полягає у розробці програм, які взаємодіють з системним програмним забезпеченням(операційною системою), або апаратним забезпеченням комп'ютера[1]. Головною відмінністю системного програмування в порівнянні з прикладним програмуванням є те, що прикладне програмне забезпечення призначене для кінцевих користувачів (напр., текстові процесори, графічні редактори), тоді як результатом системного програмування є програми, які обслуговують апаратне забезпечення або операційну систему (напр., дефрагментація диска) що обумовлює значну залежності такого типу ПЗ від апаратної частини. Слід зазначити, що "звичайні" прикладні програми можуть використовувати у своїй роботі фрагменти коду, характерні для системних програм, і навпаки; тому чіткої межі між прикладним та системним програмуванням немає[2]. Оскільки різні операційні системи відрізняються як внутрішньою архітектурою, так і способами взаємодії з апаратним та програмним забезпеченням, то принципи системного програмування для різних ОС є відмінними. Тому розробка прикладних програм, які здійснюватимуть одні і ті ж дії на різних ОС, може суттєво відрізнятися.
Прикладна програма, застосунок, застосовна програма (англ. application, application software; рос. приложение, прикладная программа) — користувацька комп'ютерна програма, що дає змогу вирішувати конкретні прикладні задачі користувача. Поняття введено, щоб підкреслити відмінність від операційної системи, драйверів, бібліотек, системних утиліт тощо (які забезпечують функціонування власне комп'ютерної системи та підтримують її працездатність) та засобів і середовищ розробки.
Застосунок у своїй роботі спирається на системне програмне забезпечення і використовує (застосовує) концепції, функціональність і можливості, закладені у середовище, де він виконується: операційної системи, мов програмування, бібліотек, архітектурних шаблонів тощо.
Прикладами застосунків є текстовий процесор, графічний редактор, електронні таблиці, оглядач, поштовий клієнт або медіаплеєр. Іноді застосовується більш вільно для позначення будь-якої програми, включаючи користувацькі і системні. В інших контекстах може означати діловий офісний пакет, відділяючи тим самим такий тип програм від ігор та службових програм.
Прикладне програмне забезпечення — це програми, призначені для виконання конкретних завдань користувача. Прикладне програмне забезпечення (англ. application software) також прикладна програма, прикладне ПЗ, застосовна програма — частина програмного забезпечення, що потребує безпосередньої взаємодії та забезпечує користувачевірозв`язання певної задачі. Цим самим поняття прикладного ПЗ є протилежним до системного та іншого допоміжного ПЗ (наприклад операційна система), котрі «лише» забезпечують можливість виконання роботи, але не приносять безпосередньої користі користувачеві.
Наочним прикладом аналогічного поділу може бути електричний струм: електромережа не приносить прямої користі користувачеві, але забезпечує роботу електричних пристроїв, надаючи їм електроенергію, в свою чергу користувач використовує ці пристрої для вдоволення потреб, тобто отримує користь.
Проте таке чітке розмежування не завжди можливе, особливо у вбудованих системах (наприклад мобільний телефон або кавоварка) де програмне та апаратне забезпечення є єдиним цілим.
Окрім того, виробники системного ПЗ нерідко вбудовують також і прикладні програми, відомим прикладом є ОС Windows, де стандартно вбудовано велику кількість прикладного ПЗ. Ця практика не завжди відповідає вимогам користувачів певної системи.
Є чимало стандартизованого прикладного ПЗ, котре спрямовано на задоволення потреб якомога ширшого кола. Але значна частина прикладного ПЗ розробляється індивідуально «з нуля» або ж на основі стандартних програм для рішення вузьких завдань, наприклад: в межах однієї компанії чи галузі.
Інструментарій інформаційної технології — один або декілька взаємопов'язаних програмних продуктів для певного комп'ютера, технологія роботи, за допомогою яких користувач досягає поставленої мети[Джерело?].
У якості інструментарію можна використовувати такі поширені види програмних продуктів для персонального комп'ютера як текстовий процесор (редактор), настільні видавничі системи, електронні таблиці, системи керування базами даних, електронні записні книжки, електронні календарі, інформаційні системи функціонального призначення (фінансові, бухгалтерські, для маркетингу та ін.), експертні системи тощо.
Можна сказати є зрозумілішими людині, ніж комп'ютеру. Особливості конкретних комп'ютерних архітектур в них не враховуються, тому створені програми легко переносяться з комп'ютера на комп'ютер. Здебільшого достатньо просто перекомпілювати програму під певну комп'ютерну архітектурну та операційну систему. Розробляти програми на таких мовах значно простіше і помилок допускається менше. Значно скорочується час розробки програми, що особливо важливо при роботі над великими програмними проектами.
Наразі у середовищі розробників вважається, що мови програмування, які мають прямий доступ до пам’яті та регістрів або мають асемблерні вставки, потрібно вважати мовами програмування з низьким рівнем абстракції. Тому більшість мов, які вважалися мовами високого рівня до 2000-го року зараз вже такими не вважаються.
Адресна мова програмування
Фортран
Кобол
Алгол
Pascal
Java
C
C++
Objective C
Smalltalk
C#
Delphi
Недоліком мов високого рівня є більший розмір програм порівняно з програмами на мові низького рівня. Тому в основному мови високого рівня використовуються для розробок програмного забезпечення комп'ютерів, і пристроїв, які мають великий обсяг пам'яті. А різні підвиди асемблеру застосовуються для програмування інших пристроїв, де критичним є розмір програми.
Трансля́тор (англ. translator) — програма або технічний засіб, який виконує перетворення чи іншу обробку текстів програм.
Транслятори поділяються на:
компілятори — перетворюють текст програми мови високого рівня в об'єктний код чи байт-код.
декомпілятори — навпаки, намагаються отримати початковий текст.
асемблери — перетворюють текст програми мови асемблера в машинний код.
дизасемблери — навпаки, намагаються розшифрувати машинний код.
інтерпретатори — отримують текст програми та набір вхідних даних, і повертають результат виконання програми над вхідними даними.
препроцесори — отримують текст програми, і повертають перетворений певним чином текст програми.[Джерело?]
Оскільки компілятори та інтерпретатори реалізують мови програмування, вони мають спільні риси: їх структура досить схожа, в основу їх реалізації покладено спільні теоретичні результати та практичні методи реалізації.
Підпрограма (subroutine) - частина програми, яка реалізує певний алгоритм і дозволяє звернення до неї з різних частин загальної (головної) програми. В термінах мов програмування: функції (С), процедури (Pascal), методи (в термінології об'єктно-орієнтованого програмування в мовах C++, Java, С# та ін.).
Підпрограма часто використовується для скорочення розмірів програм в тих задачах, в процесі розв'язання яких необхідно виконати декілька разів однаковий алгоритм при різних значеннях параметрів. Інструкції (оператори, команди), які реалізують відповідну підпрограму, записують один раз, а в необхідних місцях розміщують інструкцію виклику підпрограми.
Набір найвживаніших підпрограм утворює бібліотеку стандартних підпрограм.
В більшості мов програмування високого рівня, підпрограми називаються процедурами та функціями. В залежності від мови програмування, терміни «процедура» та «функція» можуть розрізнятися (як правило, процедурою називають підпрограму, що не повертає результату, тоді як функція має результат і може використовуватись як частина виразу) чи розглядатись як синоніми (зокрема, в мові C, де в початковому варіанті всі підпрограми могли повертати результат, їх здебільшого називають функціями). У об'єктно-орієнтованому програмуванні функції-члени класів називають методами.
Системне програмне забезпечення (англ. system software) — відоміше як операційна система, це будь-яке програмне забезпечення, що забезпечує інфраструктуру, на якій можуть працювати прикладні програми, тобто воно керує і контролює комп'ютерним обладнанням, для можливості виконання прикладних програм. Операційні системи, такі як Microsoft Windows, Mac OS X та Linux є яскравими прикладами системного програмного забезпечення.
Системне програмне забезпечення — це ПЗ, що в принципі забезпечує роботу комп'ютера. Крім операційних систем, іншими прикладами є антивірусні програми, комунікаційні програми та драйвери принтерів. Без системного програмного забезпечення комп'ютер працювати не буде. На відміну від системного програмного забезпечення, програмні засоби, які дозволяють вам робити щось на приклад створення текстових документів, грати в ігри, слухати музику або переглядати веб називаються прикладними. [1]
В цілому прикладні програмні засоби — це програми, що дозволяють кінцевому користувачу виконання конкретних функцій, таких як обробляння текстів або редагування зображень. Системні програмні засоби виконують такі завдання, як передача даних з пам’яті довільного доступу на диск, або відтворення тексту на дисплеї.