Машинная независимость.
Использование естественных обозначений.
Эффективное представление этапов обработки данных средствами языка.
Готовые библиотеки стандартных подпрограмм для выполнения часто встречающихся действий.
Все языки программирования высокого уровня делятся на процедурные, логические и объектно-ориентированные. Несмотря на различия между языками, все они позволяют написать программу любого назначения.
Каждый язык программирования имеет свое название. История этих названий восходит к моменту создания языков. Правила программ в некоторых языках неоднократно менялись, но названия языков остались без изменения.
Поколения языков
1 этап.
Операционное программирование. (ЭВМ 1-го поколения с 1945-1959 год). ЭВМ того времени понимали только цифровые команды, и программы состояли из множества строк, состоящих из цифр, интерпретируемых центральным процессором. Например, команда 05 825 631 трактовалась как сложение двух чисел (код 05), записанных в ячейки с номерами 825 и 631. Производительность труда программистов того времени была очень невелика, так как вручную было необходимо распределить все переменные программы в оперативной памяти.
2 этап.
Мало отличается от первого. Он связан с ЭВМ 2-го поколения. Появились языки программирования типа Ассемблер и автокод. Теперь команда сложения записывалась с использованием служебных слов – ADD (сложить) PR1, ZET, где ADD – код команды, PR1, ZET – имена ячеек. Перевод программы (трансляция), записанных таким образом в цифровое представление, а только такое понимает ЭВМ, осуществляется с помощью специальных программ, называемых ассемблерами. Технология работы программиста: программа собирается из мелких деталей, отдельных операций и имеет достаточно простую структуру, решаемые задачи в основном расчетные.
3 этап.
Развиваются языки программирования высокого уровня. В них реализуются новые идеи: подпрограммы и раздельная компиляция (Фортран 2); блочная структура и типы данных (Алгол 60); описание данных и работа с файлами (Кобол); обработка списков и указателей (Лисп). В следующих версиях языков продолжается развитие: PL/1 (Фортран+Алгол+Кобол), Алгол 68 (приемник Алгол 60), Паскаль (развитие Алгол 60), Simula (классы абстрактные данные).
Возможности языков программирования обеспечивают поддержку нисходящей технологии конструирования программ. Суть нисходящего конструирования программ – разбиение большой задачи на подзадачи, которые могут рассматриваться отдельно.
Основные правила применения данной технологии:
формализованное и строгое описание программистом входов функций и выходов всех модулей программы и системы;
согласованная разработка структур данных и алгоритмов;
ограничение на размер модулей;
Восходящая технология конструирования программ – решение складывается «из отдельных кирпичиков», из известных решений подзадач. Таким образом, данной технологией оговаривается определенный принцип декомпозиции и иерархическая структура программы. Важнейшей составляющей этой технологии является структурное программирование (языки программирования Паскаль, Модула –2). Пионером структурного программирования был Э. Дейкстра, который в 1965 году предположил, что оператор GOTO может быть исключен из языков программирования.
Характерные черты структурного стиля программирования:
простота и ясность (программа легко читается и анализируется);
использование только базовых конструкций;
отсутствие сетевых структур в программе;
отсутствие многоцелевых функциональных блоков;
отсутствие неоправданно сложных арифметических и логических конструкций;
расположение в строке программы не более одного оператора языка программирования;
содержательность имен переменных.
При этом процесс нисходящей разработки программы может продолжаться до тех пор, пока не будет, достигнут уровень «атомарных» блоков, т.е. базовых конструкций.
К нисходящей технологии следует отнести и то, что называется модульным программированием. Достаточно независимые фрагменты задачи оформляются как модули. Создаются библиотеки модулей, определяется механизм включения модулей в разрабатываемую программу. Модуль должен иметь строго определенный интерфейс и скрытую часть, одну точку входа и одну точку выхода.Структурная технология предоставила в распоряжение разработчиков строгие, формализованные методы описания программ и принимаемых технических решений. При этом использовалась наглядная графическая техника (схемы, диаграммы). Программы имели последовательную структуру, идеи Э. Дейкстры были реализованы в полной мере, что определило новый этап в развитии технологии программирования.
4 этап.
Связан с применением объектно-ориентированных языков 4-го поколения. В основе объектно-ориентированного программирования (ООП) лежит идея объединения в одной структуре данных и действий, которые производятся с этими данными. (В терминологии ООП такие действия называются методами). При таком подходе организация данных и программная реализация действий над ними оказываются гораздо сильнее связаны, чем при традиционном структурном программировании.
ООП базируется на трех основных понятиях:
Инкапсуляция – комбинирование данных с процедурами и функциями, которые манипулируют этими данными. В результате получается новый тип данных – объект.
Наследование – это возможность использования уже определенных объектов для построения иерархии объектов производных от них. Каждый из «наследников» наследует описание данных «прародителя» и доступ к методам их обработки.
Полиморфизм – это возможность определения единого по имени действия (процедуры или функции), применимого одновременно ко всем объектам иерархии наследования, причем каждый объект иерархии может «заказывать» особенность реализации этого действия над «самим собой».
ООП может заметно упростить написание сложных программ, придать им гибкость. Одним из его главных преимуществ можно назвать возможность расширять область их применения, не переделывая программу, а лишь добавляя в нее новые уровни иерархии.
Первым языком с элементами ООП был язык Симула-67. В Турбо-Паскале, начиная с версии 5.5, появились средства ООП. Итогом развития Турбо-Паскаля в этом направлении стало создание фирмой Borland системы программирования Delphi (Делфи). Использование этой системы, в частности, даёт возможность легко и быстро программировать сложный графический интерфейс.
5 этап.
ЭВМ будущего 5-го поколения называют машинами «искусственного интеллекта». Прототипы языков для этих машин были созданы много раньше их физического появления. Это языки Лисп и Пролог. Эти языки относятся к языкам логического программирования.
Язык Пролог разработан в 70-ых годах во Франции. Его появление связано с первыми работами в области создания искусственного интеллекта (экспертных систем, программ-переводчиков, интеллектуальных игр и пр.). Базируется на логической модели знаний.
Основы ООП
Системы ООП дают возможность визуализировать процесс создания графического интерфейса разрабатываемого приложения, то есть позволяют создать объекты и задавать значения их свойств с помощью диалоговых окон системы программирования. Взаимодействия объектов между собой и их изменения описываются с помощью программного кода. Создание программного кода базируется на исполнении алгоритмических структур различных типов. Основной единицей в ООП является объект, который объединяет в себе как описывающие его данные, так и средства обработки этих
данных, т.е. программные объекты обладают свойствами, могут, использовать методы и реагирует на события.
Классы объектов
Классы объектов являются шаблонами, определяющими наборы свойств, методы и событий. По этим шаблонам создаются объекты. Каждый из классов обладает специфическим набором свойств, методов и событий.
Экземпляры классов
Объект, созданный по "шаблону" класса объектов, является экземпляром класса и наследует весь набор свойств, методов и событий данного класса. Каждый экземпляр класса имеет уникальное для данного класса имя. Экземпляры обладают одинаковым набором свойств, но значения свойств у них могут отличаться.
Свойства объектов
Семейство объектов представляет собой объект, содержащий несколько объектов, экземпляров одного класса.
Объекты
Свойства
Каждый объект обладает набором свойств. Значение свойств можно изменить в программном коде.
Объект. Свойство = Значение свойства
Методы
Для того чтобы объект выполнил какую-либо операцию, необходимо применить метод, которым он обладает. Методы имеют аргументы, которые позволяют задать параметры выполняемых действий.
Объект. Метод арг 1: = зн, арг 2: = знач.
События
Событие представляет собой действие, распознаваемое объектом. Событие может создаваться пользователем или быть результатом взаимодействия других программных объектов. В качестве реакции на событие вызывается определенная процедура.
Интегрированная среда Visual Basic
Система программирования Visual Basic состоит из текстового редактора для написания текста (кода) программ и конструктора форм. Программист пишет исходный код программы на одном из диалектов языка программирования Basic, выполняя разработку интерфейса программы с помощью конструктора форм. Для создания интерфейса Visual Basic предоставляет готовые объекты, обладающие определенными свойствами, которые можно изменять. Код программы и ее интерфейс объединяется в общий проект, который запускается на выполнение непосредственно из среды программирования Visual Basic или как исполняемый файл, компилируемый данной средой.
Проект, созданный с помощью Visual Basic состоит из нескольких файлов: