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