
- •§1. Носители информации
- •§2. Основные понятия информатики
- •§3. Моделирование и формализация
- •§4. Основные принципы формализации
- •§5. Меры информации
- •§6. Объем информации V (объемный подход).
- •§7. Количество информации / (энтропийный/вероятностный подход)
- •Какова же связь энтропии с информацией?
- •§7. Кодирование и шифрование информации
- •7.1. Кодирование графической информации
- •Цветовые модели rgb и cmyk
- •Другие цветовые модели
- •7.2. Кодирование звука
- •Цифро-аналоговое и аналого-цифровое преобразование звуковой информации
- •§7. Общие понятия о позиционных и непозиционных системах счисления
- •Непозиционные системы счисления
- •1) Число 1988.
- •Позиционные системы счисления
- •Первые позиционные системы счисления
- •Двенадцатеричная система счисления
- •Шестидесятеричная система счисления
- •Какие позиционные системы счисления используются сейчас?
- •Десятичная система счисления
- •Двоичная система счисления
- •Алфавит десятичной, двоичной, восьмеричной и шестнадцатеричной систем счисления
- •Правила перевода
- •Восьмеричная и шестнадцатеричная системы счисления
- •Взаимное преобразование двоичных, восьмеричных и шестнадцатеричных чисел
- •§9. История развития вычислительной техники
- •§10. Архитектура эвм
- •Эвм, построенные по принципу Фон Неймана
- •Аналитическая машина Беббиджа
- •Основополагающие принципы логического устройства эвм (Фон Нейман)
- •§11. Внешние устройства эвм
- •§12. Внутренние устройства эвм
- •§13. Программное обеспечение эвм
- •13.1. Операционные системы
- •13.2. Понятие файловой системы
- •13.3. Операционная система ms dos для ibm-совместимых персональных компьютеров
- •§14. Инструментальные программные средства общего назначения
- •§15. Инструментальные программные средства специального назначения
- •§16. Программные средства профессионального уровня
- •§17. Назначение и место систем Maple
- •Maple в Интернете
- •Понятие о функциях и операторах.
- •§18. Алгоритмы и способы их описания Понятие алгоритма
- •Способы описания алгоритмов
- •Структурные схемы алгоритмов
- •18.1. Этапы подготовки и решения задач на эвм
- •§19. Системы программирования
- •§20. История языков программирования
- •§21. Паскаль как язык структурно-ориентированного программирования
- •21.1. Процедуры и функции в Pascal
- •21.2. Внешние библиотеки в Pascal
- •21.3. Модули
- •21.4. Работа с файлами
§19. Системы программирования
Системы программирования – это комплекс инструментальных средств, предназначенный для работы с программами на одном из языков программирования.
В настоящее время разработка любого системного и прикладного программного обеспечения осуществляется с помощью систем программирования, в состав которых входят:
трансляторы с языков высокого уровня;
средства редактирования, компоновки и загрузки программ;
макроассемблеры (машинно-ориентированные языки);
отладчики машинных программ.
Системы программирования, как правило, включают в себя:
текстовый редактор (Edit), осуществляющий функции записи и редактирования исходного текста программы;
загрузчик программ (Load), позволяющий выбрать из директории нужный текстовый файл программ;
запускатель программ (Run), осуществляющий процесс выполнения программы;
компилятор (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] и т. д.