
- •5. Общая характеристика языков программирования.
- •Тема 2. Введение в язык Турбо-Паскаль.
- •2. Структура и основные конструкции.
- •3. Алфавит языка.
- •Тема 3. Объекты и средства программирования на языке.
- •3.2. Данные как объекты работы программы.
- •3.3. Константы и их определение.
- •3.4. Идентификаторы и переменные.
- •3.5.Выражения.
- •3.7.Начальные сведения о вводе-выводе данных.
- •Var I,j: integer;
- •Var obl: char;
- •Vt: longint;
Остаток по Теме 1
Представление алгоритма на языке программирования.
В этом случае учитываются строгие правила и особенности построения конструкций конкретного алгоритмического языка, на котором ведется программирование, а также допустимый набор функций и др.
Например, приведенный выше алгоритм на языке Турбо-Паскаль может быть реализован следующим образом:
PROGRAM SREDN;
LABEL M1;
VAR I: INTEGER; { индекс элемента }
A, N, S, X: REAL;
{ начало тела программы }
BEGIN
WRITE(`Введите количество чисел`);
М1: READ(N);
IF N<1 THEN BEGIN WRITELN(`Неверное задание N.`);
WRITELN(` П о в т о р и те !`);
GOTO M1
END;
S:=0.0; I:=1;
WHILE I<=N DO { начало цикла }
BEGIN READ(A);
S:=S+A;
I:=I+1
END; { конец цикла }
X:=S/N;
WRITELN(`X=`,X)
ЕND. { конец программы }
5. Общая характеристика языков программирования.
В основе языков программирования лежат парадигмы программирования.
Парадигма в программировании – это способ выработки концепции, основных подходов, правил того, как следует проводить обработку информации, осуществлять вычисления, и какие для этого действия компьютера, в каком порядке должны быть выполнены.
Известно несколько основных парадигм программирования, важнейшими из которых на данный момент времени являются:
- проблемно-ориентированные;
- процедурно-ориентированные;
- универсальные;
- объектно-ориентированные.
Для реализации процедур программирования согласно той или иной парадигмы разработаны соответствующие группы языков программирования.
Язык программирования (иначе – алгоритмический язык) – это
набор символов и система правил образования и использования
составленных из них специальных конструкций,
предназначенных для задания алгоритмов и создания программ,
воспринимаемых ЭВМ.
Структура языков программирования представлена на следующем рисунке:
ЯЗЫКИ ПРОГРАММИРОВАНИЯ
Машинные Символические
Машино-независимые (языки высокого уровня)
)
Машино-ориентированные
(Ассемблер)
Автокоды
Проблемно-
ориентированные
Процедурно-ориентированные
Универсальные
Объектно-
ориентированные
Рис.8. Структура языков программирования
Машинный язык использует в качестве операторов машинные команды, представленные цифровым кодом, который известен ЭВМ и задает для нее информацию об одной операции, включая вид операции и номера ячеек (адреса) памяти, выделенных для исходных, промежуточных и результатных данных. С помощью машинного языка реализуется т.н. «ручное программирование», свойственное ранним стадиям применения вычислительной техники и отличающееся высокой трудоемкостью, неудобством для человека и зависимостью от конкретной ЭВМ (см. пример выше).
Символические языки более удобны, поскольку применяют не цифровое, а символическое кодирование операций и объектов, с которыми работает программа. В эту группу языков входят автокоды, машинно-ориентированные и машинно-независимые языки.
Об автокодах мы уже говорили.
Машино-ориентированные языки (типа Ассемблер), как видно из названия, предназначены для использования в определенном семействе ЭВМ и учитывают их структуру команд, памяти и др. Процесс программирования существенно упрощен, т.к. используется символьное обозначение команд и ячеек памяти, привычные для человека обозначения, а также т.н. «макросредства».
Машино-независимые языки (или языки высокого уровня) позволяют создавать программы независимо от структуры конкретной ЭВМ (в определенном смысле). Их команды преобразуются в машинные с помощью вычислительной системы, точнее, с помощью компилятора – специальной программы перевода исходного текста разрабатываемой программы в ее машинную версию. В результате упрощается процесс программирования, повышается наглядность и компактность записи алгоритма, уменьшается количество ошибок. Кроме того, значительно снижается трудоемкость, появляется возможность отражения особенностей определенного класса задач в составе средств языка и др.
Вместе с тем, отмечаются недостатки: снижается скорость выполнения программ и в большем объеме расходуется память.
Проблемно-ориентированные языки используются в частной области обработки данных и характеризуются наличием непроцедурных средств, позволяющих определить что должно быть сделано алгоритмом, а не как (!). Это языки РПГ (для генерации отчетов), ДИСОД (для формирования отчетов), генераторы сортировок, GPSS, СИМУЛА, СИНСКРИТ (для моделирования различных процессов) и т.п. Цель – в перспективе достичь автоматизации программирования.
Процедурно-ориентированные языки имеют средства для представления алгоритма в виде процедурных (состоящих из ряда операций) шагов: ввода, вывода, вычисление выражений по формулам, управление выполнением отдельных фрагментов программ и т.п. Разработчик программы создает программу (код), воздействующую на пассивные данные и выполняющую все необходимые действия над ними для достижения нужного результата.
Эффективность этих языков достигается включением в их состав специальных средств, учитывающих особенности конкретных классов задач. Так для математических, научно-технических и инженерных задач были созданы языки ФОРТРАН, АЛГОЛ-60, БЕЙСИК; для экономических – КОБОЛ, АЛГЭК; для обработки символьной информации – ЛИСП и т.д.
Универсальные языки программирования одинаково успешно применяются для решения любых задач и имеют соответствующие возможности. Это языки АЛГОЛ-68, АДА, ПЛ/1 и ПАСКАЛЬ, СИ.
В начале 80-х годов прошлого столетия появились т.н. объектно-ориентированные языки. Первоначально они использовались как инструмент для исследовательской работы, но в настоящее время завоевывают себе все большую популярность. В них применен принципиально новый подход к программированию, имеющий своим приоритетом не процедуры (преобразования), а «объекты». Последние содержат не только обрабатываемую информацию со своей структурой, но и правила ее поведения, оформленные в виде выполняемых фрагментов. При этом первичными считаются объекты (данные), которые могут активно взаимодействовать друг с другом с помощью механизма передачи сообщений (механизма вызова методов). Функция программиста в этом случае заключается в разработке и реализации таких объектов, взаимодействие которых после старта программы приведет к достижению необходимого конечного результата.
Представителями таких языков являются: СИ++, JAVA, DELPHI, Object-ПАСКАЛЬ, Turbo-Vision.