Мова програмування другого покоління

Мова програмування другого покоління (англ. Second-generation programming language, 2GL) — це спосіб класифікації мов асемблера за поколіннями.[1][2][3] Вони відносяться до мов програмування низького рівня.

Термін було введено, щоб відрізнити машинно-незалежні та мови третього покоління (3GL) (наприклад, COBOL, C або JavaScript) і раніші мови програмування перших поколінь (машинний код)[2][4].

Мови програмування другого покоління мають такі властивості:

  • Рядки в програмі відповідають безпосередньо командам процесора, по суті діючи як мнемонічний пристрій, що накладає мову програмування першого покоління.
  • Код може бути прочитаний і написаний програмістом. Щоб запустити на комп’ютері, його потрібно перетворити в машиночитану форму, цей процес називається ассамбленням.[4]
  • Мова є специфічною для конкретного сімейства процесорів і середовища.[2]

Мови другого покоління іноді використовуються для частин ядер або драйверів пристроїв, а іноді використовуються у відеоіграх, графічних програмах та інших інтенсивних програмах.[1]

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

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

Переважна більшість програм написана мовою програмування третього покоління або мовою програмування четвертого покоління. Головна перевага асемблювання, швидкість, погіршилася через той факт, що добре написаний код C часто може бути таким же швидким або навіть швидшим, ніж рукописний асемблер.[2][6]

Примітки

[ред. | ред. код]
  1. а б "Computer Hope, Generation languages"
  2. а б в г д е Brookshear, J. Glenn (2012). Computer science : an overview (вид. 11th). Addison-Wesley. с. 240—241. ISBN 978-0-13-256903-3.
  3. а б в Vass, Péter. Programming Language generations and Programming Paradigms (PDF).
  4. а б What Are Programming Language Generations?. wiseGEEK (амер.). Процитовано 11 червня 2019.
  5. Top Computer Languages 2019 - StatisticsTimes.com. statisticstimes.com. Архів оригіналу за 12 червня 2019. Процитовано 11 червня 2019.
  6. Walls, Colin. Why C is faster than assembly. Mentor, a Sieman's Business. Mentor Inc. Архів оригіналу за 29 січня 2020. Процитовано 11 червня 2019.