Algunos ejemplos de lenguajes de programación de bajo nivel son el lenguaje de máquina y el lenguaje de ensamblador. El lenguaje de máquina es una entrada de código binario directamente en la máquina y es la forma más antigua de lenguaje de programación. El lenguaje ensamblador está estrechamente relacionado con el lenguaje de máquina y se traduce directamente en binario por la computadora.
El lenguaje de máquina y el lenguaje de ensamblaje son específicos de cada arquitectura de procesador particular; El código que funciona en múltiples plataformas requiere un lenguaje de alto nivel. Los lenguajes de programación de alto nivel se parecen más al lenguaje humano que al código binario y están pensados para que los programadores humanos puedan leerlos.
Los lenguajes de programación de bajo nivel todavía se usan en los sistemas operativos modernos para controladores, firmware y interfaces de hardware, todos los cuales requieren acceso de bajo nivel al procesador. También se utilizan para el software de ingeniería inversa y para la programación de software malicioso que requiere acceso de bajo nivel a la máquina. Los lenguajes de programación de alto nivel han reemplazado a los lenguajes de bajo nivel para la mayoría de las otras aplicaciones modernas debido a su relativa facilidad de uso en comparación con los lenguajes de bajo nivel y la portabilidad en múltiples plataformas.
Los primeros lenguajes de alto nivel, como C, permitieron a los programadores incorporar código de lenguaje de bajo nivel directamente en los programas de mayor nivel. El uso más común de esta función en los sistemas modernos es el kernel de Linux, que integra el lenguaje ensamblador en su programación en C