- •Информатика
- •1. Моделирование
- •1.1. Формы представления моделей формализация
- •1.2. Системный подход к моделированию
- •1.3. Типы информационных моделей
- •1.4. Этапы разработки и исследования модели на компьютере
- •Системное программное обеспечение
- •Средства программирования (инструментарий технологии программирования)
- •Краткая характеристика языков программирования.
- •Ассемблерные языки программирования
- •Алгоритмические языки
- •Программные продукты для создания приложений
- •Объектно-ориентированный подход к программированию
- •Алгоритмизация
- •1. Разветвляющийся алгоритм.
- •2. Циклические алгоритмы.
- •Структура и конструкция программы
- •Перевод правильных десятичных дробей
- •Арифметические действия с двоичными числами
- •Представление двоичных чисел в прямом, обратном и дополнительных кодах.
- •Сложение двоичных чисел в компьютере. Модифицированный код.
- •Вывод с использованием функции printf и fprintf
Краткая характеристика языков программирования.
При классификации языков программирования выделялись:
1. Машинные языки;
2. Машинно-ориентированные языки (Assembler);
3. Алгоритмические языки;
4. Процедурно- и проблемно-ориентированные языки;
5. Интегрированная система программирования.
Самый нижний уровень из вышеперечисленных языков – машинный язык.
При составлении программ на машинном языке необходимо решить:
1. Распределение памяти для данных, обрабатываемых программой – сформировать таблицу символов (ТС). Например: сформировать таблицу в начале памяти.
-
Имя параметра
Адрес в ОЗУ
A
00000
00000
B
00001
00001
C
00002
00002
…
…
2. Распределить память для команд программы, начиная с адреса, который будет соответствовать вводу слова в ОЗУ с устройством ввода, по адресу 00000 (А) с кодом операции (КОП) 07. Машинные команды можно свести в таблицу кодов операций.
3. Составить программу, для чего записать коды машинных команд с указанием их размещения в ОЗУ, то есть программу можно представить в виде таблицы.
Адрес команды |
КОП |
Адрес операнда |
Действия команды |
01000 |
07 |
00000 |
Ввод по адресу А |
При этом в ОЗУ между ячейками размещения данных и команд будут свободные ячейки, так как команды, начиная с 01000, будут записываться в память. Для оптимального использования ОЗУ эти ячейки необходимо заполнить. При отладке или корректировке размеры памяти меняются, поэтому приведенные шаги с 1 по 3 необходимо повторять.
Недостатки программно-машинного кода:
1. Неэффективное использование памяти.
2. Действия шагов 1 и 2 формальные не творческие, вызывают много ошибок при программировании. Их можно автоматизировать.
3. Реальные системные команды компьютера громоздкие (сотни различных команд), трудно воспринимаются, запись кодов – трудоемкий процесс.
Достоинства программно-машинного кода:
1. Высокое быстродействие.
2. Минимальные затраты памяти.
Поскольку машинные языки обладают недостатком высокую трудоемкость, используются языки более высокого уровня, в частности Assembler, для перехода от машинных команд. Отмеченные недостатки устраняются.
Ассемблерные языки программирования
Ассемблерные языки имеют особенности:
1. Вместо двоичных, восьмеричных, шестнадцатеричных кодов адресов используются их наглядная символьная запись. Перевод из символьной записи в двоичный код выполняется автоматически.
2. Размещение в ОЗУ данных и команд выполняется автоматически (транслятором – компилятором). Шаги 1 и 2 при этом выполняются без пустых ячеек – память используется оптимально.
3. Сохраняется оптимальность по быстродействию и памяти, то есть потери не превышают 5-10%.
Поэтому для системного программирования ассемблерные языки – основные.
Перекодировка ассемблерной команды выполняется транслятором за два подхода в следующей последовательности:
1й проход: составляется таблица символов;
2й проход: с использованием таблиц кодов и операций выполняется перекодировка команд в двоичные коды.
Макроассемблерные языки обладают возможностью ассемблерных языков с мощным аппаратом макровызовов и определений. Поэтому широко используются в системном программировании.
При их использовании потери быстродействия составляют 10-15%.
