Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП.rtf
Скачиваний:
42
Добавлен:
03.08.2019
Размер:
707.21 Кб
Скачать

2 Системы программирования. Интерпретация и компиляция.

Имеются два основных подхода к реализации языков программирования: компиляция и интерпретация. Компилятор переводит программу на языке программирования в машинный код (последовательность команд и данных) конкретного компьютера, на котором будет выполняться программа.

Исполнение этого кода осуществляется под управлением операционной системы и никак не зависит от компилятора. Интерпретатор же является собственно той системой, которая исполняет программу на языке программирования.

Между этими двумя подходами имеется множество промежуточных вариантов: существуют компиляторы, которые компилируют в интерактивном режиме, во время ввода программы. Существуют интерпретаторы, которые компилируют программу в промежуточный код.

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

В самом языке программирования, вообще говоря, не заложен способ его реализации, однако одни языки почти всегда компилируются, например C++, другие, например Smalltalk, почти всегда интерпретируются, Java компилируется в байт-код и затем интерпретируется.

Сейчас практически любая реализация языка представлена как среда разработки, которая включает:

1) компилятор (или интерпретатор);

2) отладчик — специальную программу, которая облегчает процесс поиска ошибок; пользуясь ею, разработчик может выполнять программу “по шагам”, отслеживать изменение значений переменных в процессе выполнения и др.;

3) встроенный текстовый редактор;

4) специальные средства для просмотра структуры программы, классов, модулей и проч.;

5) библиотеку готовых модулей, классов, напри-Q для создания пользовательского интерфейса (окна, кнопки и т. д.).

В 80-е годы активно прорабатывалась идея визуального программирования, основной смысл которой состоит в том, чтобы процесс “сборки” программы осуществлялся на экране дисплея из программных конструкций — картинок. В результате появились среды разработки 4-го поколения (4GL), в которых разрабатываемый программный продукт строится из готовых крупных блоков при помощи мыши. Примерами таких сред являются: Delphi, Visual Age, Visual Java.

3 Технология алгоритмического программирования. Основные структуры и средства языка программирования (операторы, функции, процедуры).

Технология алгоритмического программирования базируется на методе последовательной детализации алгоритмов. Сначала формулируется основной алгоритм, который состоит из “крупных” блоков (команд), часть которых может быть непонятна исполнителю (не входит в его систему команд). В этом случае они записываются как вызовы вспомогательных алгоритмов. Затем происходит детализация, т. е. все вспомогательные алгоритмы подробно расписываются с использованием команд, понятных исполнителю.

Как основной алгоритм, так и вспомогательные алгоритмы могут включать основные алгоритмические структуры: линейную, разветвляющуюся и циклическую. В линейной алгоритмической структуре все команды выполняются в линейной последовательности, одна за другой.

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

В циклические алгоритмы входит последовательность команд, выполняемая многократно. Такая последовательность команд называется телом цикла.

Линейный

Ветвление

Цикл

Алгоритмы могут быть описаны различными способами:

  • записаны на естественном языке;

  • изображены в виде блок-схемы;

  • записаны на алгоритмическом языке;

  • закодированы на языке программирования.

Для кодирования алгоритма на языке программирования необходимо знать синтаксис языка, т. е. его основные операторы, типы переменных и др. В школе знакомятся в основном с языком программирования Бейсик.

Язык программирования Basic (Beginner's All-purpose Symbolic Instruction Code — многоцелевой язык для начинающих) был разработан в 1964 году. Языки программирования, в том числе и Basic, развиваются, обогащаются новыми возможностями, и в результате возникают различные версии языка (Бейсик-Агат, MSX-Basic, QBasic, VisualBasic).

Команды и различные типы алгоритмических структур реализуются на языке программирования с помощью операторов. Каждый оператор имеет свой формат.

Команда

Формат оператора

Ввод данных

INPUT <список переменных>

Команда

PRINT <список переменных>

Присваивание

LET <переменная> = <арифметическое выражение>

Команда ветвления

IF <условие> THEN <операторы> ELSE <операторы>

Команда цикла

FOR <переменная> FROM <арифметическое выражение> ТО <арифметическое выражение>

<операторы> NEXT <переменная>

В формат операторов, кроме ключевых слов, входят переменные и арифметические выражения. Переменные бывают различных типов, тип переменной определяет, какие значения может принимать эта переменная. В Бейсике переменные могут быть следующих типов: целые (А% = 5), вещественные (А = 3.14), символьные (А$ = "информатика") и массивы DIM А(М, N). Массивы представляют собой одномерные или двумерные таблицы.

Арифметические выражения могут включать в себя: числа, переменные, знаки арифметических выражений, стандартные функции и круглые скобки. Например, арифметическое выражение, которое позволяет определить величину гипотенузы прямоугольного треугольника, будет записываться следующим образом: SQR (А*А + В*В).

Стандартные функции позволяют вычислить значения математических функций, например стандартная функция SIN (X) позволяет вычислить значения математической функции sin х.

Вспомогательные алгоритмы реализуются на Бейсике с помощью подпрограмм. Для перехода на подпрограмму используется специальный оператор, его формат: GOSUB <номер строки>. Возврат из подпрограммы реализуется с помощью оператора RETURN.

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