Недоліки мов програмування високого рівня

click fraud protection

У термінології комп’ютерного програмування мови програмування часто поділяють на мови «високого рівня» та «низького рівня». Різниця між ними полягає в апаратній взаємодії. Простіше кажучи, мови низького рівня знаходяться «нижче» в комп’ютерній системі, ближче до фактичної апаратної взаємодії. Мови високого рівня відокремлюються від апаратного забезпечення. Результат такої абстракції може призвести до швидшого та читабельнішого коду, але з меншою швидкістю та меншим доступом до системних ресурсів.

Абстракція

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

Відео дня

Швидкість

Мови високого рівня, як правило, є «інтерпретованими» мовами, а не «компільованими» мовами низького рівня. «Інтерпретований» просто означає, що мова використовує інтерпретатор, який виконує вихідний код по одному рядку, а не компілює двійковий файл. Однак інтерпретатори часто є програмами, написаними компільованими мовами. Через це інтерпретована мова — Python, як приклад — працює лише поверх інтерпретатора Python, який написаний на C. Це збільшує накладні витрати на пам’ять і час для інтерпретованих програм, і вони часто виконуються повільніше.

Особливості системи

Здавалося б, сильна сторона високорівневого коду — його переносимість. Високорівневий код може працювати в будь-якій системі, де встановлено відповідний інтерпретатор. Однак, коли програма компілюється для комп’ютера, вона враховує все середовище цієї системи при її компіляції. Інтерпретована мова вже абстрагується від системи до такої міри, що інтерпретована програма нічого не знає про систему, крім того, що може надати їй інтерпретатор.

Обмеження програмування

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