Языки программирования широко классифицируются на основе уровня абстракции от аппаратного обеспечения. Уровень абстракции — это степень сложности, с которой система просматривается или программируется. Чем выше уровень, тем меньше деталей. Чем ниже уровень, тем больше деталей. Высшим уровнем абстракции является вся система.
На приведенной ниже диаграмме представлен уровень абстракции в различных знаниях в области программирования.
Двумя основными широкими категориями языков программирования являются языки высокого и низкого уровня. В приведенных ниже пунктах описываются качества языков высокого и низкого уровня.
Язык низкого уровня
Ø Они быстрее, чем язык высокого уровня.
Ø Языки низкого уровня эффективно используют память.
Ø Языки низкого уровня сложны для изучения.
Ø Программирование на низком уровне требует дополнительных знаний об архитектуре компьютера.
Ø Они зависят от машины и не переносимы.
Ø Они обеспечивают меньшую абстракцию от аппаратного обеспечения или вообще не обеспечивают ее.
Ø Они более подвержены ошибкам.
Ø Отладка и обслуживание затруднены
Ø Они обычно используются для разработки системного программного обеспечения (операционных систем) и встроенных приложений.
Язык высокого уровня
Ø Они сравнительно медленнее.
Ø Языки высокого уровня неэффективны с точки зрения памяти.
Ø Языки высокого уровня легко выучить.
Ø Программирование на высоком уровне не требует дополнительных знаний об архитектуре компьютера.
Ø Они независимы от машины и портативны.
Ø Они обеспечивают высокую абстракцию от аппаратного обеспечения.
Ø Они менее подвержены ошибкам.
Ø Отладка и обслуживание сравнительно проще.
Ø Они используются для разработки различных приложений, таких как — настольные приложения, веб-сайты, мобильное программное обеспечение и т. д.