Класифікація мов програмування за рівнями

Обробка програми машиною

Щоб виконати складну інструкцію, комп’ютер насамперед повинен знизити її абстрактність і перекласти на зрозумілу для себе мову. Спосіб, яким це робиться, називається моделлю виконання. Виділяють дві основні моделі і одну гібридну:

  • Компіляція – одноразовий переклад всієї програми в машинний код.
  • Інтерпретація – послідовне виконання кожного виразу.
  • Транскомпиляция – переклад на мову більш низького рівня, наприклад C або асемблер, і його подальша компіляція.

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

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

Основні недоліки інтерпретаційної моделі:

  • постійне знаходження транслятора в пам’яті ЕОМ;
  • повторна обробка повторюваних команд.

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

Цікаве:  Способи представлення інформації в ЕОМ

Компілятор ж працює тільки один раз, відразу перетворюючи всю інструкцію в зрозумілу для комп’ютера вид – машинний код або якийсь проміжний байт-код, а потім залишає пам’ять ЕОМ. Тут виконання відокремлене від процесу трансляції, що є більш ефективною моделлю.

Основні недоліки компиляционной моделі:

  • велика складність.

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

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

Класифікація мов програмування високого рівня по моделі виконання:

  • Інтерпретовані – Python, Haskell, PHP, JavaScript.
  • Компилируемые відразу в машинний код: C, C++, Fortran, ASM.
  • Компилируемые в байт-код: Python, Java.
  • Транскомпилируемые: Haskell, Fortran, C, C++.