Il y a un certain désaccord quant à la définition exacte d'un langage de programmation de bas niveau, mais toutes les définitions partager certaines choses en commun concernant les caractéristiques d'un tel langage informatique. Ces caractéristiques incluent: similitude avec le code binaire, nécessaire connaissance du rôle de l'unité centrale de traitement (CPU) et la capacité du programmeur de contrôler le matériel via le langage. Certaines personnes considèrent que tout langage informatique un bas niveau s'il n'est pas proche d'une langue que les gens parlent. D'autres considèrent que toute langue qui nécessite le programmeur de comprendre les rouages complexes et très complexes de la CPU un bas niveau. Il faut se rappeler qu'un langage de programmation vraiment bas niveau correspond généralement toutes ces descriptions.
Le code binaire, aussi appelé code machine, est la seule langue que le CPU ou le "cerveau" d'un ordinateur, comprend et «parle». Code Machine, l'œil d'une personne, ressemble à beaucoup de séquences des chiffres 1 et 0, ils représentent un état d'être sur ou d'être éteint, un peu comme une lumière qui est soit allumé ou éteint. Le code d'un langage de programmation de haut niveau serait très différent du code machine en ce qu'elle contient des symboles et des mots réels qui sont utilisés dans une langue, généralement l'anglais, que les gens parlent. Cela ne signifie pas, cependant, que quelqu'un qui n'est pas un programmeur informatique comprendrait le code dans un langage de haut niveau, pas plus qu'ils ne le feraient un bas niveau.
Parmi les grands avantages d'un langage de programmation de bas niveau est la capacité et la liberté d'exercer un contrôle précis sur des choses telles que l'utilisation de la mémoire et de temps de traitement. Cela signifie que les programmes écrits dans un langage de bas niveau devraient faire usage très efficace des ressources du système, qui peut être fortement souhaitée lors du codage pour les systèmes avec des ressources très limitées. Un tel avantage ne vient pas sans un prix. Les développeurs et les ingénieurs qui codent dans un langage de programmation de bas niveau doivent avoir une bonne compréhension des fonctions de la CPU afin de rédiger des instructions qui affectent la mémoire et le temps de traitement.
Le codage dans un langage de programmation de bas niveau est extrêmement longue et fastidieuse. Cela augmente naturellement le coût impliqué d'avoir un programme développé dans un tel langage, parce que l'équivalent d'aussi peu que deux lignes de code dans un langage de haut niveau peut nécessiter jusqu'à 20 lignes dans un langage de programmation de bas niveau. Cette évolution lente rend langages de bas niveau principalement adaptés pour les très petits programmes. Ils ne sont pratiquement jamais utilisés pour l'élaboration de programmes plus larges.