Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_по информатике.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
5.76 Mб
Скачать

§19. Системы программирования

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

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

  • трансляторы с языков высокого уровня;

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

  • макроассемблеры (машинно-ориентированные языки);

  • отладчики машинных программ.

Системы программирования, как правило, включают в себя:

    1. текстовый редактор (Edit), осуществляющий функции записи и редактирования исходного текста программы;

    2. загрузчик программ (Load), позволяющий выбрать из директории нужный текстовый файл программ;

    3. запускатель программ (Run), осуществляющий процесс выполнения программы;

    4. компилятор (Compile), предназначенный для компиляции или интерпретации исходного текста программы в машинный код с диагностикой синтаксических и семантических (логических) ошибок;

Компилятор – это программа, которая принимает исходную программу, написанную на каком-либо языке программирования, и порождает на своем выходе программу, понятную компьютеру (программу в машинном коде)

5. отладчик (Debug), выполняющий сервисные функции по отладке и тестированию программы;

Интересна история появления фундаментального термина «отладка», который также ввела Г. Хоппер и ее группа. Однажды жарким летним днем 1945 г. неожиданно произошла остановка компьютера Марк-I (создатель Говард Айкен), на котором работала Хоппер. Обнаружилась неисправ­ность одного реле, контакты которого были заблокированы мотыльком, залетев­шим неизвестно каким образом в помещение вычислительного центра. Вспомина­ет Г. Хоппер: «Когда к нам зашел офицер, чтобы узнать, чем мы занимаемся, мы ответили, что очищаем компьютер от насекомых (debuging)». С тех пор термин «debuging» (отладка) используется в технических процессах тестирования неис­правностей в компьютере, а также в системах программирования

6. диспетчер файлов (File), предоставляющий возможности выполнять операции с файлами: сохранение поиск, удаление...

Широкое распространение среди разработчиков программ в свое время получили системы программирования «Турбо» (Turbo) фирмы Borland, ядром которых являются трансляторы с языков программирования Паскаль, Бейсик, Си, Пролог.

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

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

Рассмотрим один из вариантов трансляции программы с языка программирования Паскаль. Исходный текст программы нахождения корня квадратного:

Program znachenie_funkcii;

var x, y:real;

begin

write('vvedite x=');

read(x);

y:=sqrt(x);

write('znachenie funkcii ravno', y);

end.

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

Следующий шаг трансляции – компоновка – заключается в подключении к исходному объектному модулю объектных модулей соответствующих подпрограмм. Другими словами, на место процедуры write помещается подпрограмма, осуществляющая процедуру вывода данных на экран дисплея. Таким образом, после компоновки возникает абсолютный модуль, намного превышающий по объему размер исходного текста программы. Он и является исполняемым компьютером после его запуска.

Языки программирования – это формальные языки, специально созданные для общения человека с компьютером. Каждый язык программирования, равно как и «естественный» язык (русский, английский) имеет алфавит, словарный запас, свою грамматику и синтаксис.

Алфавит – фиксированный для данного языка набор основных символов, допускаемых для составления текста программы на этом языке. Алфавиты большинства языков программирования близки друг к другу и основываются на буквах латинского алфавита, арабских цифрах и общепринятых специальных символах, таких как знаки препинания, математических операций, сравнений и обозначений. Большинство популярных языков программирования в своем алфавите содержат следующие элементы:

буквы: AaBbCcDdEeFf и т. д.

Цифры: 0 1 2 3 4 5 6 7 8 9

знаки арифметических операций: * / + -

разделители: . , ; : ( ) [ ] { }

служебные слова: begin, end, if, then, else, for, next и т. д.

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

Пример:

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

Например, в Паскале текст

+ - *

может встречаться либо внутри текстовой константы (т. е. в апострофах), либо внутри комментариев

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

Пример:

Исходная программа перед выполнение обязательно проверяется не нарушены семантические правила: например, ищутся ошибки такого рода: считается сколько раз употребляются слова begin и end. Если их число не совпадает, то выдается ошибка. Или например семантический анализ подразумевает такую проверку: объявлена ли переменная (для языка где это требуется).

Т. е. семантика – смысловая сторона языка

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

Операторы делятся на:

  • основные (базисные) – к ним относятся «оператор присвоения», «условный» и «безусловный переход»

  • неосновные (производные) - «составной оператор», «оператор выбора», «оператор цикла»

Операторы выполняются в порядке их следования в тексте программы и отделяются друг от друга разделителями, чаще всего – точкой с запятой.

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

Кроме того, величины классифицируются на простые и структурированные. Простая величина в каждый момент может иметь не более одного значения. Ей соответствует одна ячейка памяти. Структурированная величина, имея одно имя, может иметь сразу несколько значений. Эти значения представляют собой элементы (компоненты) величины. Самый известный пример – массив, у которого элементы различаются по индексам (номерам): например, массив A[i], в котором все элементы имеют одно имя A, но различаются по индексу i: А[1], А[2], А[3] и т. д.

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