Програмски језици друге генерације (2ГЈ) јесу генерацијски начин категоризације асемблерских језика"Computer Hope, Generation languages" Термин је настао да обезбеди разлику између вишег нивоа треће генерације програмског језика (3ГЈ), као што су Кобол и ранијих језика машинског кода. Програмски језици друге генерације имају следеће карактеристике: Код може да се чита и да се пише од стране програмера. Да би био покренут на рачунару он мора да буде претворен у машински читљив облик, процес који се зове асемблирање. Језик је специфичан за одређену породицу процесора и средину.
Језици друге генерације се понекад користе у језгрима и драјверима уређаја (мада се C углавном користи за то у модерним језгрима), али чешће налазе примену у веома интензивној обради као што су игре, видео уређивање, графичка манипулација / приказивање.
Једна метода за стварање таквог кода је тако што се преводиоцу дозвољава генерисање машинско-оптимизираних верзија асемблерског језика одређене функције. Овај код се затим ручно подешава, стичући и насилни увид у машински оптимизирајући алгоритам и у интуитивне способности људског оптимизера.
Референце
*2