Классификация по принадлежности к семействам
Основная задача классификации языков по принадлежности к семействам - проследить их родственные взаимосвязи (фактически, построить генеалогическое дерево) с целью выяснения их влияния друг на друга и, следовательно, на характеристики и свойства языков. Это нечеткая классификация, которая может вызвать спорное отношение к ней. Выделим девять
основных семейств.
· Семейство универсальных языков;
· Семейство уникальных языков;
· Семейство языков параллельного программирования;
· С-семейство языков;
· Рasсаl-семейство языков;
· Аdа-семейство языков;
· Simulа-семейство языков;
· Lisр-семейство языков;
· Ргоlоg-семейство языков.
Классификация по ориентации на предметные области
Язык программирования может быть специализированным для некоторой предметной области. Выделим девять таких областей, хотя конечно их гораздо больше.
· Языки форматирования текстов;
· Языки разметки;
· Языки скриптов;
· Промежуточные языки программирования;
· Языки программирования агентов;
· Языки создания графики;
· Языки описания аппаратуры;
· Языки описания виртуальной реальности;
· Языки конфигурирования.
Классификация по степени абстракции от аппаратуры
По степени абстракции от машины можно выделить три группы языков.
· Языки низкого уровня. Такие языки имеют простые машиноподобные команды и осуществляют прямой доступ к памяти. Пример – ассемблер для любой архитектуры.
· Языки высокого уровня. Языки предоставляют возможность определять сложные структуры данных, доступ к памяти осуществляется через операции. Примерами языков этого уровня являются Pascal, С и Ada.
· Языки сверхвысокого уровня. Команды исполняются на полностью абстрактной машине, полностью скрыт доступ к памяти. Пример таких языков - Prolog, SETL, APL, Miranda.
Остановимся подробнее на классификации по поддерживаемым методологиям.
Методология– совокупность методов, применяемых в жизненном цикле и объединенных общим философским подходом.
На сегодняшний день существует не так много методологий, особенно полных, т. е. учитывающих все стадии жизненного цикла программного обеспечения. Именно методология определяет, какие языки и системы будут применяться для разработки программного обеспечения и какой технологический подход будет при этом использован.
Подход к методологиям заключается в том, что существует некоторое ядро методологии со своими методами, которое уточняется некоторыми дополнительными особенностями. Ядра методологий определяются способом описания алгоритмов.
Основные ядра методологии:
· методология императивного программирования;
· методология объектно-ориентированного программирования;
· методология функционального программирования;
· методология логического программирования;
· методология программирования в ограничениях.
II. Классификация языков программирования по поддерживаемым методологиям
2.1. Методология императивного программирования
2.1.1. Методология императивного программирования
Методология императивного программирования- подход, характеризующийся принципом последовательного изменения состояния вычислителя пошаговым образом. При этом управление изменениями полностью определено и полностью контролируемо.
Происхождение
Императивное программирование – это исторически первая поддерживаемая аппаратно методология программирования. Она ориентирована на классическую фон Неймановскую модель, остававшуюся долгое время единственной аппаратной архитектурой, получившей широкое практическое применение.
Методы
Метод изменения состояний– заключается в последовательном изменении состояний. Метод поддерживается концепцией алгоритма.
Метод управления потоком исполнения- заключается в пошаговом контроле управления. Метод поддерживается концепцией потока исполнения.
Вычислительная модель
Императивное программирование основано на описании последовательного изменения состояний вычислителя. Если под вычислителем понимать современный компьютер, то его состоянием будут значения всех ячеек памяти, состояние процессора (в том числе - указатель текущей команды) и всех сопряженных устройств. Единственная структура данных – последовательность ячеек (пар "адрес –> значение") с линейно упорядоченными адресами.
Языки, поддерживающие данную вычислительную модель, являются компактным средством описания функции переходов между состояниями вычислителя.
Синтаксис и семантика
Основным синтаксическим понятием является оператор. Первая группа – атомарные операторы, у которых никакая их часть не является самостоятельным оператором (например, оператор присваивания, оператор безусловного перехода, вызова процедуры и т. п.). Вторая группа – структурные операторы, объединяющие другие операторы в новый, более крупный оператор.
Операторы исполняются в порядке, предписанном объемлющем их структурным оператором. Если это составной оператор, то входящие в него операторы исполняются в том порядке, в котором записаны. Операторы, входящие в оператор выбора, могут исполняться или не исполняться в зависимости от значения логического условия. Исполнение атомарных операторов сводится к соответствующему единичному изменению состояния вычислителя.
Традиционное средство структурирования – подпрограмма (процедура или функция). Подпрограммы имеют параметры и локальные определения и могут быть вызваны рекурсивно. Функции возвращают значения как результат своей работы.
Дата добавления: 2018-05-12; просмотров: 497; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!
