Классификация по принадлежности к семействам



Основная задача классификации языков по принадлежности к семейст­вам - проследить их родственные взаимосвязи (фактически, построить генеалогическое дерево) с целью выяснения их влияния друг на друга и, следовательно, на характеристики и свойства языков. Это нечеткая классифи­кация, которая может вызвать спорное отношение к ней. Выделим девять

основных семейств.

· Семейство универсальных языков;

· Семейство уникальных языков;

· Семейство языков параллельного программирования;

· С-семейство языков;

· Рasсаl-семейство языков;

· Аdа-семейство языков;

· Simulа-семейство языков;

· Lisр-семейство языков;

· Ргоlоg-семейство языков.

Классификация по ориентации на предметные области

Язык программирования может быть специализированным для некоторой предметной области. Выделим девять таких областей, хотя конечно их го­раздо больше.

· Языки форматирования текстов;

· Языки разметки;

· Языки скриптов;

· Промежуточные языки программирования;

· Языки программирования агентов;

· Языки создания графики;

· Языки описания аппаратуры;

· Языки описания виртуальной реальности;

· Языки конфигурирования.

 

Классификация по степени абстракции от аппаратуры

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

· Языки низкого уровня. Такие языки имеют простые машиноподобные ко­манды и осуществляют прямой доступ к памяти. Пример – ассемблер для любой архитектуры.

· Языки высокого уровня. Языки предоставляют возможность определять сложные структуры данных, доступ к памяти осуществляется через операции. Примерами языков этого уровня являются Pascal, С и Ada.

· Языки сверхвысокого уровня. Команды исполняются на полностью абст­рактной машине, полностью скрыт доступ к памяти. Пример таких языков - Prolog, SETL, APL, Miranda.

Остановимся подробнее на классификации по поддерживаемым методологиям.

Методология– совокупность методов, применяемых в жизненном цикле и объединенных общим философским подходом.

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

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

Основные ядра методологии:

· методология императивного программирования;

· методология объектно-ориентированного программирования;

· методология функционального программирования;

· методология логического программирования;

· методология программирования в ограничениях.

 

II. Классификация языков программирования по поддерживаемым методологиям

2.1. Методология императивного программирования

2.1.1. Методология императивного программирования

Методология императивного программирования- подход, характеризующийся принципом последовательного изменения состояния вычислителя пошаговым образом. При этом управление изменениями полностью определено и полностью контролируемо.

Происхождение

Императивное программирование – это исторически первая поддерживаемая аппаратно методология программирования. Она ориентирована на классическую фон Неймановскую модель, остававшуюся долгое время единственной аппаратной архитектурой, получившей широкое практическое применение.

Методы

Метод изменения состояний– заключается в последовательном изменении состояний. Метод поддерживается концепцией алгоритма.

Метод управления потоком исполнения- заключается в пошаговом контроле управления. Метод поддерживается концепцией потока исполнения.

Вычислительная модель

Императивное программирование основано на описании последовательного изменения состояний вычислителя. Если под вычислителем понимать со­временный компьютер, то его состоянием будут значения всех ячеек памя­ти, состояние процессора (в том числе - указатель текущей команды) и всех сопряженных устройств. Единственная структура данных – последова­тельность ячеек (пар "адрес –> значение") с линейно упорядоченными адре­сами.

Языки, поддерживающие данную вычислительную модель, являются ком­пактным средством описания функции переходов между состояниями вы­числителя.

Синтаксис и семантика

Основным синтаксическим понятием является оператор. Первая группа – атомарные операторы, у которых никакая их часть не является самостоятельным оператором (например, оператор присваивания, оператор безус­ловного перехода, вызова процедуры и т. п.). Вторая группа – структурные операторы, объединяющие другие операторы в новый, более крупный опе­ратор.

    Операторы исполняются в порядке, предписанном объемлющем их струк­турным оператором. Если это составной оператор, то входящие в него опе­раторы исполняются в том порядке, в котором записаны. Операторы, входящие в оператор выбора, могут исполняться или не исполняться в зависи­мости от значения логического условия. Исполнение атомарных операторов сводится к соответствующему единичному изменению состояния вычисли­теля.

Традиционное средство структурирования – подпрограмма (процедура или функция). Подпрограммы имеют параметры и локальные определения и могут быть вызваны рекурсивно. Функции возвращают значения как резуль­тат своей работы.


Дата добавления: 2018-05-12; просмотров: 497; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!