Düşük seviye programlama dili

Bilgisayar Biliminde düşük seviyeli programlama komut kümesinde hiç soyutlama imkânı vermeyen ya da az bir soyutlama sağlayan programlama dili anlamına gelir. Buradaki "düşük" kelimesi programlama diliyle makine dili arasında bulunmayan ya da az bulunan bir soyutlama imkânını temsil eder. Bu yüzden düşük seviyeli programlama dilleri "donanıma yakın" programlama olarak da anılır.

Düşük seviyeli programalama dilleri herhangi bir derleyiciye ya da yorumlayıcıya ihtiyaç duymadan direkt olarak kullanılmak üzere yazıldıkları işlemciler tarafından çalıştırılabilirler. Bu yüzden işlemciden işlemciye farklılık gösterirler.

Karşılaştırma yapmak gerekirse, yüksek seviyeli bir programlama dili programın geliştirilmesinde kullanılması gereken bilgisayarın yapısına bağlı semantik uygulamaları ortadan kaldırır, böylelikle bir programın geliştirilme aşaması daha kolay ve anlaşılır hale gelir.

İkinci Nesil 
İkinci nesil programala dili, ya da 2GL, çevirici bir dildir. Bu programalama dili direkt olarak mikroişlemciyi hedeflemese de bu dilde kod yazan bir programcı mikroişlemcilerin bazı işlevlerini (işleçler ya da kayıt noktaları gibi) bilmelidir, işte bu yüzden ikinci seviye olarak kabul görmüştür. Böylelikle makine kodu ve çevirici kod birbiri içinde dönüştürülebilecektir.

Örnek: Aynı Fibonacci Dizisini hesaplama işlemi bu sefer MASM sözdizimiyle x86 çevirici dilinde yazılmıştır.

fib:
    mov edx, [esp+8]
    cmp edx, 0
    ja @f
    mov eax, 0
    ret
    
    @@:
    cmp edx, 2
    ja @f
    mov eax, 1
    ret
    
    @@:
    push ebx
    mov ebx, 1
    mov ecx, 1
    
    @@:
        lea eax, [ebx+ecx]
        cmp edx, 3
        jbe @f
        mov ebx, ecx
        mov ecx, eax
        dec edx
    jmp @b
    
    @@:
    pop ebx
    ret

Ayrıca bakınız 
 Yüksek seviyeli programlama dilleri
 Çok yüksek seviye programlama dilleri

Programlama dilleri