Язык программирования низкого уровня или низкоуровневый язык программирования — это язык программирования, близкий к программированию непосредственно в машинных кодах используемого реального или виртуального (Java, Microsoft .NET) процессора. Для обозначения машинных команд обычно применяется мнемоническое обозначение. Это позволяет запоминать команды не в виде последовательности двоичных нулей и единиц, а в виде осмысленных сокращений английских слов человеческого языка.
Кроме машинных команд языки программирования низкого уровня могут предоставлять дополнительные возможности, такие как макроопределения (макросы).
Самый известный пример низкоуровневого языка —
язык ассемблера, хотя правильнее говорить о группе языков ассемблера. Для одного и того же процессора может существовать несколько видов языка ассемблера. Они совпадают в машинных командах, но различаются набором дополнительных функций (директив и макросов).
Также к языкам низкого уровня можно отнести CIL, применяемый в платформе Microsoft .NET, Форт, Байт-код
Java.