Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции (Ведищев) + шпоры к экзамену / лекции по программированию за 1 курс.doc
Скачиваний:
170
Добавлен:
20.06.2014
Размер:
805.38 Кб
Скачать

Императивные и декларативные языки.

Императивные (процедурные) языки. Класс языков программирования.

Программа, написанная на процедурном языке, явно указывает способ получения желаемого результата, не определяя при этом ожидаемых свойств результата. Результат неявно задается только способом получения его при помощи определенной процедуры. Процедура получения желаемого результата имеет вид последовательности операций, и поэтому для процедурных языков характерно указание логики управления в программе и порядка выполнения операторов. В этих языках обычно присутствуют операторы присваивания, которые разрушают информацию (присваемое значение заменяет предыдущее) и также зависит от порядка выполнения. Процедурные языки тесно связаны с фон-неймановской моделью вычисления (C, Pascal, Fortran).

Императивным противопоставляют декларативные языки (Prolog).

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

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

  1. Надежность по.

Характеристика способностей системы ПО выполнять возложенные на нее функции (при поступлении требований на их выполнение). Понятие надежности ПО существенно отличается от понятия доказательства правильности программы.

Правильность – некоторое статическое свойство, которым в соответствие со спецификациями должна обладать программа.

Надежность относится к динамическим требованиям, предъявляемым системе удовлетворять требованиям.

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

Обратно:

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

Обеспечение качества ПО.

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

Для этого выполняется проверка, выполнение необходимых функций, контроль за соблюдением стандартов в программировании, проверка полноты программной документации и ее соответствия стандартам, анализ качества инструкций и руководств для пользователей по работе с системой; может исследоваться надежность ПО и выполняться необходимые проверки для определения степени удобства системы и документации в процессе эксплуатации.

Стандарты программирования – система правил или соглашений, которые ограничивают форму представления программ, создаваемых конкретной организацией.

  1. Эффективность – с точки зрения качества ПО эффективной программа будет в соответствии с 2 взаимоисключающими критериями:

  • Время выполнения;

  • Объем использованной памяти;

(Даны переменные а и в . результат а=в, а в=а)

  1. Стиль программирования.

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

Написание операторов языка должно исключать их двойственное толкование и так далее.