Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Императивные и декларативные парадигмы программирования.
Существуют две парадигмы программирования: императивная и декларативная. Основной (традиционной) парадигмой программирования является императивное (процедурное) программирование. В рамках императивной парадигмы рассматривается класс языков программирования, в которых программа явно указывает способ получения результата, не определяя ожидаемых свойств результата. Процедура получения результата имеет вид последовательности операций. Отсюда следуют характерные черты императивной программы: • указание логики управления в программе; • определение порядка выполнения операций; • наличие операторов присваивания, выполняющих разрушающее присваивание. Императивная парадигма основана на «фон-неймановской» вычислительной модели, основными параметрами которой являются: • программа состоит из набора команд, которые выполняются последовательно; • поименованные области памяти (концепция переменных как областей памяти, к которым можно обращаться по имени). Концепция памяти как хранилища значений, содержимое которого может обновляться операторами программы, является фундаментальной в императивном программировании. Реализация программы сводится к последовательному выполнению операторов с целью преобразования исходного состояния памяти, то есть значений исходных данных, в заключительное, то есть в результаты. Таким образом, с точки зрения программиста имеются программа и память, причем первая последовательно обновляет содержимое последней. Императивные языки программирования характеризуются следующими особенностями: • необходимостью явного управления памятью, в частности описанием переменных; • малой пригодностью для символьных вычислений; • отсутствием строгой математической основы; • высокой эффективностью реализации на традиционных ЭВМ. Одним из важнейших классификационных признаков процедурного языка является его уровень. Уровень языка программирования определяется семантической (смысловой) емкостью его конструкций и степенью его ориентации на программиста. Язык программирования частично ликвидирует разрыв между методами решения различного рода задач человеком и вычислительной машиной. Чем более язык ориентирован на человека, тем выше его уровень. К императивным языкам программирования относятся ассемблеры и хорошо распространенные языки программирования высокого уровня, например такие, как Фортран, Паскаль, Си. Принципиально иную вычислительную модель предполагает декларативная парадигма программирования. При использовании декларативного языка в программе в явном виде указывается, какими свойствами должен обладать результат, но не определяется порядок его получения. В идеальном случае декларативная программа будет состоять из предложений, описывающих необходимый результат. Характерно, что в этом случае порядок предложений, определяющих конкретные свойства результата, не имеет значения. В декларативной парадигме отсутствует концепция переменной, как поименованной области памяти, и явное управление. Декларативные языки не привязаны жестко к традиционной фон-неймановской модели вычислений. В большинстве случаев алгоритм достижения необходимого результата может иметь высокую степень параллелизма. Декларативная парадигма программирования реализуется с помощью одного из двух стилей программирования: функционального или логического программирования.
|