Языки программирования широко классифицируются на основе уровня абстракции от аппаратного обеспечения. Уровень абстракции — это степень сложности, с которой система просматривается или программируется. Чем выше уровень, тем меньше деталей. Чем ниже уровень, тем больше деталей. Высшим уровнем абстракции является вся система.

На приведенной ниже диаграмме представлен уровень абстракции в различных знаниях в области программирования.

Двумя основными широкими категориями языков программирования являются языки высокого и низкого уровня. В приведенных ниже пунктах описываются качества языков высокого и низкого уровня.

Язык низкого уровня

Ø Они быстрее, чем язык высокого уровня.

Ø Языки низкого уровня эффективно используют память.

Ø Языки низкого уровня сложны для изучения.

Ø Программирование на низком уровне требует дополнительных знаний об архитектуре компьютера.

Ø Они зависят от машины и не переносимы.

Ø Они обеспечивают меньшую абстракцию от аппаратного обеспечения или вообще не обеспечивают ее.

Ø Они более подвержены ошибкам.

Ø Отладка и обслуживание затруднены

Ø Они обычно используются для разработки системного программного обеспечения (операционных систем) и встроенных приложений.

Язык высокого уровня

Ø Они сравнительно медленнее.

Ø Языки высокого уровня неэффективны с точки зрения памяти.

Ø Языки высокого уровня легко выучить.

Ø Программирование на высоком уровне не требует дополнительных знаний об архитектуре компьютера.

Ø Они независимы от машины и портативны.

Ø Они обеспечивают высокую абстракцию от аппаратного обеспечения.

Ø Они менее подвержены ошибкам.

Ø Отладка и обслуживание сравнительно проще.

Ø Они используются для разработки различных приложений, таких как — настольные приложения, веб-сайты, мобильное программное обеспечение и т. д.