Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
inf.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
491.92 Кб
Скачать

36. Классификация языков программирования

Языком программирования называют систему обозначений для описания данных и программ, а также их обработки на ЭВМ. Различают естественные и искусственные языки. Язык программирования относится к искусственным языкам, занимает промежуточное положение между естественными и формальными языками и не допускает неоднозначности и произвольных толкований.

У языков программирования, как и у естественных языков, имеется свой алфавит, синтаксис и своя семантика.

Алфавит – набор различных символов, букв, цифр, специальных знаков, разрешенный в данном языке . Так в машинных кодах алфавит состоит всего лишь из двух символов – «0» и «1».

Синтаксис – это набор правил, которые определяют основные внутренние структуры (конструкции) и последовательности символов, допустимых в данном языке программирования его алфавитом.

Семантика – совокупность правил истолкования конструкций языка, образованных в соответствии с синтаксисом.

Известно несколько подходов к классификации языков программирования. Мы воспользуемся подходом, связанным с поколениями ЭВМ.

Написание программ для ЭВМ первого поколения велось исключительно на машинном языке. Фрагмент программы сложения двух чисел 7 и 5 на машинном языке показан в таблице 11.1.

Таблица 11.1 – Фрагмент программы сложения двух чисел в машинных кодах

Адрес

Команда, данные

Содержание операции

1101 0001

0011 1111

Запись в регистр А

1101 0010

0000 0101

Число 5

1101 0011

0000 0110

Запись в регистр В

1101 0100

0000 0111

Число 7

1101 0101

1000 0000

Сложение чисел, находящиеся в регистрах А и В

1101 1101

0111 0110

Останов

Более высоким уровнем, по сравнению с машинными языками являются машинно-ориентированные языки символического кодирования. Основной принцип при создании языков символического кодирования состоит в замене машинных кодов на их буквенные обозначения, а также в автоматизации процесса распределения памяти диагностики ошибок. Наиболее ярким примером таких языков является язык Ассемблера. Тот же самый фрагмент программы (сложения двух чисел 5 и 7) на языке Ассемблера принимает вид, показанный в таблице 11.2 (для учебно-отладочного устройства «Электроника-580»).

Таблица 11.2 - Фрагмент программы сложения двух чисел на языке Ассемблера

Адрес

Мнемоническая запись команды, данных

Содержание операции

8200

MVI A

Запись в аккумулятор

8201

5

число 5

8202

MVI B

Запись в регистр В

8203

7

Число 7

8204

ADD B

Сложение чисел, находящиеся в аккумуляторе и регистре В

8205

HLT

Останов

Начальный адрес 8200 устанавливается автоматически при сбросе установки. Остальные адреса также устанавливаются автоматически счетчиком команд.

На следующем уровне развития языков находятся процедурно-ориентированные языки (языки высокого уровня. Разработка этих языков непосредственно связана с созданием ЭВМ второго поколения.

Одним из первых таких языков стал язык Фортран (FORmula TRANslatorпереводчик формул). Язык создан в 1956 г и в дальнейшем претерпел несколько модификаций (версий) – Базовый Фортран, Фортран IV, Фортран-77. Основное назначение – решение научных и инженерных задач.

В 1960 году Международная конференция а Париже приняла алгоритмический язык Алгол -60 (ALGOritmic Language). Алгол -60 привлек к себе внимание в силу ряда новых обобщающих идей:

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

- возможность динамического распределения памяти;

- развитый аппарат вызова процедур.

В 1968 году была разработана его новая существенно усовершенствованная версия Алгол -68 – международный универсальный алгоритмический язык.

Одновременно с Алголом в 1959 – 1960 г.г. разработан язык программирования Кобол (COBOL) – специально ориентированный на разработку бизнес - приложений. Автором языка является Грейс Хоппер.

В эти же годы в Массачусетском технологическом институте разработан язык программирования Лисп (LISP), ориентированный на разработку символьной информации. Языки Лисп и Пролог были разработаны для решения задач, относящихся к искусственному интеллекту. Эти языки позволяют обрабатывать символьную (текстовую) информацию, решать логические и математические задачи. На базе языка Лисп разработана известная математическая система Derive.

Язык Пролог является непроцедурным языком логического программирования. Он выбран основным языком при разработке ЭВМ пятого поколения, которые должны обладать искусственным интеллектом.

Дж. Кемени и Т. Курц. Разработанный ими в 1964 году алгоритмический язык BASIC (русская транскрипция – Бейсик) с большим успехом решил поставленную задачу.

Название BASIC является аббревиатурой английской фразы «Beginners All – purpose Symbolic Instruction Code» - многоцелевой язык символических команд для начинающих. Во многом язык в своей разработке обязан языку Фортран.

Важной чертой языка BASIC является не только его простота и доступность, но и предоставляемая им возможность решать задачи с терминалов в режиме разделения времени (в режиме диалога с ЭВМ). В настоящее время имеется множество различных модификаций этого языка. Одна из них - QuickBASIC (QBASIC) поставляется с операционной системой Windows.

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

Третье поколение ЭВМ поставило на повестку дня вопросы поиска нового подхода к созданию универсального алгоритмического языка. Одной из первых попыток такого рода явилось создание фирмой IBM в 1963-1966 г.г. многоцелевого универсального языка PL/1 – Programming Language (отечественная транскрипция ПЛ/1). В основу этого языка были положены языки Фортран, Алгол и Кобол. Язык обладает широким набором средств для эффективного описания вычислительных процессов, задач обработки данных, обработки символьной информации, процессов моделирования, решения логических задач, исследования логических схем, решения задач в реальном масштабе времени и даже для разработки систем математического обеспечения

В 1968-1971 годах Никласом Виртом, профессором Цюрихского Федерального института информационных технологий (Швейцария) был разработан универсальный язык программирования Паскаль (PASCAL), в основе которого лежат основные достоинства языков Алгол-60 и ПЛ/1.

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

На основе Паскаля в конце 70-х годов ХХ века по заказу Министерства обороны США во Франции был разработан язык программирования Ада. Это хорошо структурированный язык, однако, слишком громоздкий и многословный. Язык Ада используется при разработке программного обеспечения компьютерных систем, встроенных в самонаводящиеся ракеты, космические аппараты, самолеты и другие подобные объекты. Такие системы работают в реальном масштабе времени, где накладываются чрезвычайно жесткие требования на быстродействие.

Язык Ада поддерживает параллельное выполнение задач в многомашинных и многопроцессорных вычислительных системах. В этом случае программа распараллеливается и отдельные ее операции и составные части выполняются одновременно на нескольких процессорах (нескольких ЭВМ).

Наряду с Адой, имеется язык Linda, специально разработанный для параллельной обработки данных. При использовании этого языка вычислительный процесс делится на группу процессов, среди которых выделяется один – главный. Все процессы выполняются одновременно на разных процессорах и синхронизируются относительно друг друга.

К языкам параллельного программирования относятся также языки Erlang, Modula, Occam.

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

PROGRAM ADD(INPUT,OUTPUT);

VAR A,B,C:INTEGER;

BEGIN

A:=5;

B:=7;

C =A+ B;

WRITE (C);

END.

37. Объектно–ориентированная технология программирования/ Системы объектно-ориентированного визуального программирования ООП позволяет декомпозировать задачу на самостоятельные части. Каждая составляющая программы является самостоятельным объектом, содержащим свои собственные коды и данные, относящиеся к нему.

Приложения на языках ООП строятся из объектов.

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

Структурно объекты состоят из двух частей: методов и переменных.

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

Методы представляют собой набор процедур и функций, определяющих алгоритм работы объекта.

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

Объектно–ориентированное программирование характеризуется тремя признаками:

- инкапсуляция;

- наследование;

- полиформизм.

Инкапсуляция означает, что объекты скрывают детали своей работы. Она позволяет разработчику объекта изменять внутренние принципы его функционирования, не оказывая никакого влияния на пользователя объекта.

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

Полиформизм означает, многие объекты могут иметь одноименные методы, которые могут выполнять разные действия для разных объектов. Например, оператор «+» для числовых величин означает выполнение операции сложения, а для текстовых – операции склеивания.

Первым объектно-ориентированным языком программирования был, разработанный в Норвежском вычислительном центре в в 1967 -1968 г.г, язык Simula -67 (Симула) . В основе языка лежит язык программирования Алгол -60. В языке Simula -67 впервые введено понятие «объект». Объекты вводятся путем описания класса, задающего правила действия объектов и состав данных, носителями которых являются объекты.

В настоящее время разработано и используется несколько языков ООП: Турбо-Паскаль, Object Pascal, Дельфи, C++, С# (Си шарп), Java (Джава), JavaScript и др.

Системы объектно-ориентированного визуального программирования

Современные языки объектно-ориентированного программирования. как правило, применяются в составе систем объектно-ориентированного визуального программирования.

Система программирования – это комплекс программных средств, предназначенный для разработки новых программ на конкретном языке программирования.

В состав системы программирования входят:

- компилятор или интерпретатор;

- «дружественная» интегрированная среда разработки;

- средства создания и редактирования текстов программ;

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

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

- встроенный ассемблер;

- встроенная справочная служба и т.д.

Наиболее популярными системами программирования являются: Turbo Pascal, Borland Delphi, C++Builder, MS Visual Basic, MS Visual Basic for Applications, причем две последние системы в основном отличаются друг от друга составом программных библиотек.

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

Таким образом, основной единицей в ООП является программный объект, который объединяет в себе как описывающие его данные (свойства – Properties), так и средства обработки этих данных – методы (Methods). Если говорить образно, то объекты – это «существительные», свойства объектов – это «прилагательные», а методы объекта – это «глаголы».

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

Каждый объект обладает определенным набором свойств (Properties). Первоначальные значения свойств могут быть установлены с использованием диалогового окна системы программирования.

Для того, чтобы объект выполнил какую-либо операцию, необходимо к нему применить соответствующий метод (Method), из набора тех методов (Methods), которыми он обладает.

События (Events) представляют собой действия, распознаваемые объектом. Событие может создаваться пользователем (например, щелчок мышью, нажатие клавиши) или может быть результатом воздействия других программных объектов. Примерами событий являются: Open (Открытие), New (создание), Close (Закрытие) , Cut (Вырезка), Copy (Копирование), Paste (Вставка), Delete (Удаление).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]