Язык программирования – формализованный язык для описания алгоритма решения задачи на компьютере.
Языки программирования, если в качестве признака классификациивзять синтаксис образования его конструкций, можно условно разделить на классы:
•машинные языки – языки программирования, воспринимаемые аппаратной частью компьютера (машинные коды);
•машинно-ориентированные языки – языки программирования, которые отражают структуру конкретного типа компьютера (ассемблеры);
•алгоритмические языки – не зависящие от архитектурыкомпьютера языки программирования для отражения структуры алгоритма (Паскаль,Фортран, Бейсик и др.);
•процедурно-ориентированные языки – языки программирования, где имеется возможность описания программы как совокупности процедур(подпрограмм);
•проблемно-ориентированные языки – языки программирования, предназначенные для решения задач определенного класса (Лисп, РПГ, Симула и др.);
•интегрированные системы программирования.
Другой классификацией языков программирования является их деление на языки, ориентированные на реализацию основ структурного программирования, и объектно-ориентированные языки, поддерживающие понятие объектов и их свойств и методов обработки.
Системы программирования включают:
-компилятор;
-интегрированную среду разработчика программ;
-отладчик;
-средства оптимизации кода программ;
-набор библиотек (возможно с исходными текстами программ);
-редактор связей;
-сервисные средства (утилиты) для работы с библиотеками, текстовыми и двоичными файлами;
-справочные системы;
-документатор исходного кода программы;
-систему поддержки и управления проектом программного комплекса.
Объективно-ориентированный подход к проектированию программных продуктов основан на:
выделении классов объектов;
установлении характерных свойств объектов и методов их обработки;
создании иерархии классов, наследовании свойств объектов и методов их обработки.
Каждый объект объединяет как данные, так и программу обработки этих данных и относится к определенному классу. С помощью класса один и тот же программный код можно использовать для относящихся к нему различных объектов.
Объектный подход при разработке алгоритмов и программ предполагает:
объектно-ориентированный анализ предметной области;
объектно-ориентированное проектирование;
Объектно-ориентированный анализ – анализ предметной области и выделение объектов, определение свойств и методов обработки объектов, установление их взаимосвязей.
Объектно-ориентированное проектирование соединяет процесс объектной декомпозиции и представления с использованием моделей данных проектируемой системы на логическом и физическом уровнях, в статике и динамике.
Для проектирования программных продуктов разработаны объектно-ориентированные технологии, которые включают в себя специализированные языки программирования и инструментальные средства разработки пользовательского интерфейса.
Традиционные подходы к разработке программных продуктов всегда подчеркивали различия между данными и процессами их обработки. Так, технологии, ориентированные на информационное моделирование, сначала специфицируют данные, а затем описывают процессы, использующие эти данные. Технологии структурного подхода ориентированы, в первую очередь, на процессы обработки данных с последующим установлением необходимых для этого данных и организации информационных потоков между связанными процессами.
Объектно-ориентированная технология разработки программных продуктов объединяет данные и процессы в логические сущности – объекты, которые имеют способность наследовать характеристики (методы и данные) одного или более объектов, обеспечивая тем самым повторное использование программного кода. Это приводит к значительному уменьшению затрат на создание программных продуктов, повышает эффективность жизненного цикла программных продуктов (сокращается длительность фазы разработки). При выполнении программы объекту посылается сообщение, которое инициирует обработку данных объекта.
Объектно-ориентированное программирование- это новый способ подхода к программированию. Такое программирование, взяв лучшие черты структурного программирования, дополняет его новыми идеями, которые переводят в новое качество подход к созданию программ.
Наиболее важное понятие языков объектно-ориентированного программирования – это понятие объекта. Объект – это логическая единица, которая содержит данные и правила обработки этих данных. Внутри объекта данные и функции могут быть частными, защищенными, общими. Объектно-ориентированные языки обладают четырьмя важнейшими характеристиками: инкапсуляцией, наследованием, полиморфизмом, абстракцией типов.
Понятие инкапсуляции означает, что в качестве единицы целого рассматривается объединение некоторый группы данных и некоторой группы функций. Свойства объектов хранятся в структурах данных, напоминающих структуры языка С, а поведение объектов реализуется в виде функций, называемых функциями-членами объектов. В объекте реализована защита данных: если данные или функции-члены объявлены приватными или защищенными, то к ним нет доступа извне. Зато данные и функции, объявленные общими, доступны любому внешнему объекту.
Объектно-ориентированное программирование поддерживает полиморфизм, означающий, что одно и то же имя может использоваться для логически связанных, но разных целей, т.е. имя определяет класс действий, которые в зависимости от типа данных могу существенно отличаться.
Наследование позволяет одним объектам приобретать атрибуты и свойства др. объектов. Наследование позволяет строить иерархию объектов, переходя от более общего к частному, уточняя и конкретизируя объект.