Język niskiego poziomu – język programowania, w którym jednej operacji elementarnej odpowiada najczęściej jedna operacja elementarna rzeczywistego procesoraKott, Ryszard K., i Krzysztof Walczak. Programowanie w języku Fortran 77. Wydawnictwa Naukowo-Techniczne, 1991, str. 14. W języku niskiego poziomu używa się stosunkowo prostych wyrażeń symbolicznych, które odpowiadają zestawowi rozkazów maszynowych.
Miernikiem „poziomu” danego języka programowania jest jego powiązanie ze sprzętem komputerowym (ang. hardware). Przykładowo, w językach asemblerowych (które są językami niskiego poziomu) operuje się bezpośrednio na rejestrach procesora i pośrednio także na komórkach pamięci, brak w nich natomiast abstrakcji programistycznych takich jak pętle czy złożone struktury danych. Istnieje szereg języków, które, mimo że należą do klasy języków wysokopoziomych, posiadają taką budowę i składnię często pozwalającą przewidzieć, jaki będzie odpowiednik programu w asemblerze, a tym samym generować z nich efektywny kod maszynowy. Do takich języków należy m.in. język C. Inne języki wysokopoziomowe, takie jak np.