Asembleris
Asembleris – programa, transliuojanti asemblerio kalba rašytą programos tekstą į objektinį (mašinos) kodą. Nors asemblerio kalba tėra mnemoninis procesoriaus instrukcijų vaizdavimas, ji dažnai suteikia ir patogių papildomų galimybių. Pavyzdžiui, asembleris suteikia galimybę pavadinti atminties vietas (adresus) simboliniais vardais, supaprastindamas programavimą, nes programuojant paprastomis mnemonikomis, kiekvieną kartą keičiant programos tekstą, tektų perskaičiuoti atminties adresus. Asemblerių rašymas dažnai yra žymiai paprastesnis, nei aukšto lygio kalbų kompiliatorių rašymas. Pirmieji asembleriai atsirado šeštajame dešimtmetyje. Skirtingai, nei įprastos programavimo kalbos, asembleriai neabstrahuoja procesoriaus ar kompiuterio architektūros, todėl, pvz., vienam procesoriui skirta programa, parašyta asembleriu, negali būti lengvai pritaikyta kitam procesoriui (ar net kompiuteriui, turinčiam tą patį procesorių, bet kitokią architektūrą). Kita vertus, šis architektūros atitikimas leidžia žymiai geriau panaudoti kompiuterio ar procesoriaus galimybes, sukurti kompaktiškesnes ir greitesnes programas. Modernūs aukštesnio lygio asembleriai naudoja papildomas aukštesnio lygio kalbų abstrakcijas, kaip sudėtingesnės valdymo struktūros, funkcijų rašymas ir kvietimas, aukšto lygio abstraktūs duomenų tipai ir pan. Du labiausiai išvystyti asemblerių atvejai – tai makroasembleriai, turintys makrokalbą, leidžiančią iš apibrėžti dažniau naudojamus kodo fragmentus ar net sintaksės taisykles bei struktūriniai asembleriai, suteikiantys įprastiems asembleriams struktūrinio programavimo (procedūros, ciklai, duomenų tipai ir kiti abstraktai) galimybes. Nemažai aukštesnio nei asembleris lygio kalbų kompiliatorių pirmiausia generuoja asemberio kodą, pavyzdžiui, GNU C kompiliatoriaus sugeneruotą asemblerio kodą (AT&T sintaksė) galima peržiūrėti komanda gcc -S failas -o temp && cat temp