Мова програмування другого покоління (англ. Second-generation programming language, 2GL) — це спосіб класифікації мов асемблера за поколіннями.[1][2][3] Вони відносяться до мов програмування низького рівня.
Термін було введено, щоб відрізнити машинно-незалежні та мови третього покоління (3GL) (наприклад, COBOL, C або JavaScript) і раніші мови програмування перших поколінь (машинний код)[2][4].
Мови програмування другого покоління мають такі властивості:
Мови другого покоління іноді використовуються для частин ядер або драйверів пристроїв, а іноді використовуються у відеоіграх, графічних програмах та інших інтенсивних програмах.[1]
У сучасних програмах мови асемблера другого покоління використовуються рідко.[5] Програмування на мовах другого покоління може принести переваги у швидкості, але деякі недоліки призвели до його зниження:
Переважна більшість програм написана мовою програмування третього покоління або мовою програмування четвертого покоління. Головна перевага асемблювання, швидкість, погіршилася через той факт, що добре написаний код C часто може бути таким же швидким або навіть швидшим, ніж рукописний асемблер.[2][6]