ЯСК
Ассемблер

Машинно- Процедурно- Сверх Проблемно Объектно
ориентированные ориентированные универсальные ориентированные ориентированные
Си Бейсик Ада РПГ Ада 93 (95)
Паскаль GPSS Java
Фортран АПЛ Delphi
Кобол Лисп Visual Basic
ПЛ/1 Си++
Рисунок 1 – Схема классификации языков программирования
С учётом зависимости от ЭВМ языки программирования подразделяются на машинно-зависимые и машинно-независимые.
Структура и средства машинно-зависимых языков отражают (учитывают) специфику функционирования определённого класса ЭВМ. При программировании задач с помощью таких языков требуется знание не только сущности реализуемого алгоритма решения задачи, но и технических особенностей конкретной ЭВМ и специфики способов написания для неё программ.
К машинно-зависимым языкам относятся машинные языки, т.е. языки непосредственно используемые для управления работой отдельных устройств ЭВМ. Машинный язык представляет собой систему инструкций и данных, которые не требуют трансляции, могут непосредственно интерпретироваться и исполняться аппаратными средствами ЭВМ. Программирование на этих языках осуществлялось на ЭВМ первого и частично второго поколения.
К машинно-зависимым языкам программирования также относятся машинно-ориентированные языки, основные конструктивные средства которых позволяют учитывать особенности архитектуры и принципов работы определённой ЭВМ или ряда ЭВМ, но в отличие от машинных языков требуют предварительной трансляции на машинный язык программ, составленных с их помощью.
К данному виду языков программирования относятся: автокоды, языки символического кодирования и ассемблеры. Программирование на машинно-ориентированных языках (ассемблерах) характерно и для современных ПК, т.к. в языке ассемблера допускается использование средств, присущих языкам высокого уровня (макрорасширений, выражений, и т.п.).
Язык ассемблера используется в системном программировании:
- программирование микропроцессоров;
- разработка операционных систем или их компонентов;
- разработка драйверов.
Машинно-независимые языки (или языки высокого уровня) не требуют от пользователя полного знания специфики ЭВМ, на которой реализуется программа решения задачи. Инструментальные средства этих языков программирования позволяют записывать программу в виде, допускающем её реализацию на ЭВМ с различными типами машинных операций, привязка к которым возлагается на соответствующий транслятор.
Решение задач на этих языках описывается в наглядном виде.
Обособленное, промежуточное положение между машинно-независимыми машинно-зависимыми языками занимает язык Си, создание которого явилось результатом попытки объединения достоинств, присущих языкам обоих классов.
Язык Си и его модификация в настоящее время используется для создания системных и прикладных программных продуктов, в которых решающее значение отводится быстродействию и минимизации объёмов памяти. На языке Си полностью написано ядро операционной системы UNIX, вследствие чего её легко можно было изменять и модернизировать.
Машинно-независимые языки классифицируются на процедурно-ориентированные и проблемно-ориентированные.
Процедурно-ориентированные (универсальные) языки эффективны при описании алгоритмов решения задач. Из языков этого класса наиболее известны: Фортран, Кобол, ПЛ/1, Бейсик, Паскаль, Ада.
Проблемно-ориентированные предназначены для описания процессов обработки информации в более узкой, специфической области. Наиболее известными языками этой группы являются: РПГ, Лисп, АПЛ, GPSS.
Объектно-ориентированные – языки, ориентированные на разработку программных приложений для широкого круга разнообразных по сфере приложения задач, имеющих общность в реализуемых компонентах. Объектно-ориентированный подход в программировании позволяет применять одни и те же (типовые) архитектурные и концептуальные решения для быстрого создания эффективных программных приложений.