Зручність для людини
Інструкції, написані на машинній мові, зрозумілі комп’ютера, але вкрай незручні для людини. У них важко розібратися, їх практично неможливо швидко змінити або скласти з їх допомогою складний алгоритм. Для підвищення ефективності програмісти піднялися на нові рівні абстракції і навчили машину приймати більш людинозрозумілі інструкції і самостійно переводити їх у машинний код. Розглянемо класифікацію та особливості мов програмування різного рівня:
- Машинний код. Це теж мова програмування, на якому при належній підготовці можна написати інструкцію.
- Низький рівень. По-справжньому низькорівневими є мови асемблера, які використовують нативні машинні команди, закодовані за допомогою мнемонічних кодів.
- Середній рівень. Системи програмування цієї групи можуть вважатися і низько – і високорівневими, в залежності від конкретних уявлень про ступінь абстракції. Сюди можна віднести C і C++.
- Високий рівень. Ці мови дозволяють створювати складні алгоритми, але вимагають додаткової обробки перед виконанням, тому згенерований код ними менш ефективний і виконується повільніше.
- Надвисокий рівень. Ця нечисленна група характеризується появою надпотужних команд і операторів. Сюди можна віднести Алгол-68.
Особливістю мов низького рівня є їх машинозависимость. Вони тісно прив’язані до особливостей організації конкретного типу ЕОМ, але в цілому схожі один на одного. Вони забезпечують:
- високу швидкість виконання і максимальну компактність створюваних програм;
- пряма взаємодія з апаратними ресурсами;
- повний контроль над пам’яттю.
Основні недоліки низькорівневих мов:
- для кожного типу ЕОМ необхідно використовувати певну систему команд, залежну від особливостей функціонування машини;
- складність і низька швидкість процесу програмування;
- висока ймовірність появи помилок, які складно відстежити;
- відсутність мобільності програм, неможливість запустити їх на ЕОМ іншого типу.
Високорівневі системи програмування не прив’язані до певної машинною системою команд і можуть виконуватися на будь-якому комп’ютері. Завдяки високому рівню абстракції вони можуть собі дозволити використовувати різноманітні концепції і методології в складанні інструкцій. Тому класифікація мов програмування високого рівня дуже обширна і складна.