Düşük Seviyeli Programlama Dili (low-level language), bir bilgisayarın donanım bileşenleri ve kısıtlamaları ile ilgilenen programlama dilleridir. Yüksek seviyeli programlama dillerinin aksine bu diller insanlar tarafından kolayca okunabilir değillerdir. Düşük seviyeli programlama dilleri daha çok Assembly ve makine kodlarından oluşmaktadır. Yüksek seviyeli diller bir işletim sistemi üzerindeki yazılımlar için kullanılırken, düşük seviyeli diller bir bilgisayarın işlem semantiklerini yönetmeye yardımcı olur. Düşük seviyeli bir dil aynı zamanda bir bilgisayarın ana dili olarak da bilinir.
Düşük seviyeli programlama dilleri, doğrudan bir bilgisayarın tüm donanım ve yönergelerini ayarlayan mimariyi çalıştırmak ve işlemek üzere tasarlanmıştır. Bu nedenle bu dillerin diğerlerine kıyasla bilgisayarlara daha yakın olduğu düşünülmektedir. Başka bir deyişle düşük seviyeli dillerinin birincil amacı; asal işlevleri, bilgi işlem donanımını ve bileşenlerini çalıştırmak, yönetmek ve işlemektir. Düşük seviyeli bir dilde yazılmış programlar ve uygulamalar, bilgisayar donanımı üzerinde herhangi bir yorum veya tercüme yapılmaksızın doğrudan yürütülebilirler. Yüksek seviyeli programlama dilleriyle düşük seviyeli dillerin en büyük farklılıklarından biri de burada açığa çıkıyor.
Düşük seviyeli diller kullanışlıdır çünkü yazılan kodlar çok hızlı ve çok az bellek alanı ile hazırlanabilirler ve çalıştırılabilirler. Arada bir yorumlayıcı veya derleyicinin olmaması düşük seviyeli dillerin performans açısından maksimum kapasiteyi sunması anlamına gelir. Bununla birlikte düşük seviyeli dilleri kullanmak makine dili hakkında derin bir bilgiye gereksinim duydukları için kullanılmaları ve öğrenilmeleri daha zordur. Daha zor öğreniliyor olması nedeniyle düşük seviyeli programlama dilleri yaygın değildir.