Существует большое множество языков программирования и придумывают различные способы разделять их на разные группы.
-Машинно-зависимые: к ним относится ассемблер, это один из языков с помощью которого можно программировать микроконтроллеры и под каждый МК подбираются свои библиотеке и функции. Код на ассемблере будет зависеть от архитектуры контролера.
Машинно-независимые: это более высокоуровневые языки такие как Си, данные языки более медленные и занимают больше памяти. Но на данном этапе развития, Си вытесняет ассемблер так как его проще осваивать.