For faster navigation, this Iframe is preloading the Wikiwand page for Низькорівнева мова програмування.

Низькорівнева мова програмування

Матеріал з Вікіпедії — вільної енциклопедії.

Низькорівнева мова програмування — мова програмування наближена до машинного коду. Перші комп'ютери доводилось програмувати двійковими машинними кодами. Проте програмувати таким чином — доволі трудомістке і важке завдання з тої причини, що людям важко запам'ятовувати цифрові позначення команд[1]. Для спрощення цього завдання почали з'являтися мови програмування низького рівня, які дозволяли задавати машинні команди в зрозумілішому для людини вигляді. Для перетворення їх у двійковий код були створені спеціальні програми — транслятори.[2]

Приклад машинного коду і представлення його мовою асемблера. Дана програма для MS-DOS виводить повідомлення на екран.

Транслятори

[ред. | ред. код]

Найбільш застосовуваними трансляторами є:

  • компілятори — перетворюють текст програми в машинний код, який можна зберегти і після цього використовувати уже без компілятора (прикладом є виконувальні файли з розширенням *.exe).
  • інтерпретатори — перетворюють частину програми в машинний код, виконують і після цього переходять до наступної частини. При цьому щоразу при виконанні програми використовується інтерпретатор.

Приклади низькорівневих мов

[ред. | ред. код]

Прикладом мови низького рівня є Мова асемблера — мова (вірніше сімейство мов), оператори якої є мнемонічним позначенням машинних команд процесора. Деякі мови високого рівня (наприклад, C/C++) навіть дозволяють вставляти фрагменти асемблерного коду безпосередньо у тіло програми. Мови низького рівня орієнтовані на конкретний тип процесора і враховують його особливості, тому для перенесення асемблерної програми на іншу апаратну платформу її потрібно майже цілком переписати. Певні відмінності є і в синтаксисі програм під різні компілятори. Щоправда, центральні процесори для комп'ютерів фірм AMD та Intel практично сумісні і відрізняються лише деякими специфічними командами. А ось спеціалізовані процесори для інших пристроїв, наприклад, відеокарт, телефонів містять суттєві відмінності.

В даний час існують бібліотеки, які дозволяють писати на асемблері повноцінні програми з графічним інтерфейсом користувача[3].

Різноманітні байткоди, які виконуються віртуальними машинами (як то байткод мови програмування Java)також по суті є низькорівневими мовами, щоправда байткоди переважно не пишуться вручну, а транслюються з відповідної високорівневої мови. Згодом цей код інтерпретується віртуальною машиною. Команди байткода схожі на асемблерні. Перевагаою такого підходу є те, що програмісти можуть легко писати програми на високорівневій мові і після компіляції в байткод, віртуальна машина може швидше інтерпретувати байткод, який більш наближений до машинного коду ніж початковий код програми. Перевагою використання віртуальної машини і байткоду є деяке унезалежнення від апаратної частини. Недоліком байткоду є дещо нижча швидкодія програм, порівняно з програмами, з самого початку скомпільованими в машинний код.

Переваги

[ред. | ред. код]

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

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

Недоліки

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

Джерела

[ред. | ред. код]
  1. Пам'ять ЕОМ і представлення інформації[недоступне посилання з липня 2019]
  2. Трансляция кода. Архів оригіналу за 24 березня 2010. Процитовано 28 травня 2016.
  3. How to write hello world in assembler under Windows. Архів оригіналу за 28 березня 2016. Процитовано 29 травня 2016.
{{bottomLinkPreText}} {{bottomLinkText}}
Низькорівнева мова програмування
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?