Begrepet lavnivåspråk brukes i programmering som en motsetning til høynivåspråk. Et lavnivåspråk er vanligvis et programmeringsspråk som er ett maskinnært eller maskinvarenært språk, for eksempel assemblerspråk, som ligger nært maskinkoden til en bestemt maskinvare, men noen ganger også for eksempel C, som i bestemte sammenhenger er mindre abstrakt og mer primitivt enn andre høynivåspråk.

At det ligger ligger nært en bestemt maskinkode betyr at noen kommandoer i programmeringsspråket er de samme som brukes av prosessoren selv. Dette gjelder for eksempel registernavn og manipulasjoner av disse, og å gjøre bitvise operasjoner slik som logisk AND for å lese og skrive registerverdiene.

Bruk av et lavnivåspråk krever generelt mer tid og leder lettere til programmeringsfeil enn bruken av et høynivåspråk. Fordelen er at programmereren har god kontroll over hvordan programmet forholder seg, og en erfaren programmerer kan dermed utnytte den tilgjengelige maskinvaren bedre. I datamaskinenes barndom på 1950-1970-tallet var lavnivåspråk en vanlig måte å utvikle visse typer av programvare der kravene til effektivitet var høye, eksempelvis operativsystemer eller styreprogrammner i telefonsentraler. I dag reserveres lavnivåspråk for bestemte deler av operativsystemene.

For eksempler på lavnivåspråk, se forth, som noen ganger også kan betraktes som et høynivåspråk, og assembler.