Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебно-практическое пособие ПРОГ.doc
Скачиваний:
37
Добавлен:
20.11.2019
Размер:
5.63 Mб
Скачать

1.2.Критерии качества программ

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

  • Корректность – программа должна работать правильно при любых исходных данных.

  • Эффективность – программа должна использовать, по возможности, минимальное количество ресурсов (память, время и др.).

  • Эргономичность – программа должна быть удобной для пользователя.

  • Читабельность – текст программы должен быть понятен для программиста.

  • Портируемость - программа после незначительных изменений способна работать на компьютерной платформе отличной от исходной платформы.

1.3.Низкоуровневые и высокоуровневые языки программирования

Низкоуровневый язык программирования (язык программирования низкого уровня) это язык программирования, близкий к программированию непосредственно в машинных кодах используемого реального или виртуального (например, Java, Microsoft .NET) процессора. Для обозначения машинных команд обычно применяется мнемоническое обозначение. Это позволяет запоминать команды не в виде последовательности двоичных нулей и единиц, а в виде осмысленных сокращений слов естественного языка.

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

Также к языкам низкого уровня условно можно причислить CIL, применяемый в платформе Microsoft .NET, Форт, Java байт-код.

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

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

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

Программы, написанные на языках высокого уровня, проще для понимания программистом, но менее эффективны, чем их аналоги, создаваемые при помощи низкоуровневых языков.

Примеры языков высокого уровня: C, C++, Java, Python, PHP, Perl, Basic, Delphi, Lisp.

1.4.Принципы структурного программирования

Структурное программирование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 70-х годах XX века Э.Дейкстрой, разработана и дополнена Н. Виртом.

В соответствии с данной методологией

  1. Любая программа представляет собой структуру, построенную из трёх типов базовых конструкций:

  • последовательное исполнение - однократное выполнение операций в том порядке, в котором они записаны в тексте программы;

  • ветвление - однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия;

  • цикл - многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие (условие продолжения цикла).

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

  2. Повторяющиеся фрагменты программы (либо не повторяющиеся, но представляющие собой логически целостные вычислительные блоки) могут оформляться в виде т. н. подпрограмм (процедур или функций). В этом случае в тексте основной программы, вместо помещённого в подпрограмму фрагмента, вставляется инструкция вызова подпрограммы. При выполнении такой инструкции выполняется вызванная подпрограмма, после чего исполнение программы продолжается с инструкции, следующей за командой вызова подпрограммы.

  3. Разработка программы ведётся пошагово, методом «сверху вниз». Сначала пишется текст основной программы, в котором, вместо каждого связного логического фрагмента текста, вставляется вызов подпрограммы, которая будет выполнять этот фрагмент. Вместо настоящих, работающих подпрограмм, в программу вставляются «заглушки», которые ничего не делают. Полученная программа проверяется и отлаживается. После того, как программист убедится, что подпрограммы вызываются в правильной последовательности (то есть общая структура программы верна), подпрограммы-заглушки последовательно заменяются на реально работающие, причём разработка каждой подпрограммы ведётся тем же методом, что и основной программы. Разработка заканчивается тогда, когда не останется ни одной «заглушки», которая не была бы удалена. Такая последовательность гарантирует, что на каждом этапе разработки программист одновременно имеет дело с обозримым и понятным ему множеством фрагментов, и может быть уверен, что общая структура всех более высоких уровней программы верна. При сопровождении и внесении изменений в программу выясняется, в какие именно процедуры нужно внести изменения, и они вносятся, не затрагивая части программы, непосредственно не связанные с ними. Это позволяет гарантировать, что при внесении изменений и исправлении ошибок не выйдет из строя какая-то часть программы, находящаяся в данный момент вне зоны внимания программиста.

Вопросы для повторения