- •1.Основные компоненты программного обеспечения и их связь с аппаратурой. Ретроспектива развития программирования.
- •2 Этапы решения задач на эвм
- •3 Основные типы данных и структуры данных в программировании
- •3.1.1 Арифметические типы
- •3.1.2 Логический тип
- •3.1.3 Символьный тип
- •4 Методы решения задач программирования
- •5 Разработка алгоритмов Пример 5.8
- •Пример 5.9
- •Пример 5.10
- •6 Кодирование алгоритмов на языке си
- •- Семантические;
- •Тело директивы
- •Имя аргумента
- •Оператор
- •6.4.1 Имена переменных Имена переменных могут состоять из букв (только из латинского алфавита), цифр и символа подчеркивания, приравненного к букве. Начинаться имя должно с буквы.
- •Пример 6.3:
- •6.4.2 Типы и размеры данных
- •6.4.3 Константы
- •Пример 6.4:
- •Пример 6.5:
- •Пример 6.6:
- •Пример 6.7:
- •Пример 6.8:
- •7 Декларации в си
- •8 Операторы в языке си
- •9 Управление в си
- •10 Указатели и массивы
- •Литерные указатели
- •11 Структуры в языке си
- •Структуры, вложенные друг в друга
- •Пример 11.10
- •12 Функции и структура программы
- •Аппарат формальних і фактичних аргументів Приклад 12.4
- •Опис прототипу функції
- •Приклад 12.5
- •13 Передача аргументов
1.Основные компоненты программного обеспечения и их связь с аппаратурой. Ретроспектива развития программирования.
1.1 Общая организация аппаратуры (HARDWARE) вычислительной системы
-
ОПЕРАТИВНАЯ ПАМЯТЬ
-
ПВВ
…
ПВВ
ЦП
…
ЦП
МЛ МД П МР
МЛ – магнитная лента
МД – магнитный диск
П – принтер (печать)
МР – монитор
Память – это устройство для запоминания или хранения информации.
Процессоры – это устройства для манипулирования информацией хранящейся в памяти.
ПВВ – процессоры ввода-вывода.
Информацию можно рассматривать как набор 0 и 1.
Каждый 1 или 0 представляет собой двоичную цифру, которая называется bit
(binary digit ). Биты обычно группируют в блоки. Минимальный блок – byte.
Byte=8 bit.
Архитектура фон Неймана:
1) Память линейна. Память трактуется как длинная цепочка байтов:
2) В памяти может хранится вся информация, необходимая для функционирования вычислительной системы. Расположение информации в памяти определяется ее адресом. Каждый адрес идентифицирует конкретный байт (возможно, слово или другой блок байтов). Бит не имеет адреса. Содержимое байта, слова или другого блока битов может быть интерпретировано одним из следующих способов:
команда
данные
Машинная команда в общем случае содержит 2 компоненты:
-
Код операции
Операнды
Код операции – кодировка действия команды.
Операнды – данные, необходимые данной команде.
Машинная программа есть последовательность команд, применяемая к данным.
Информация в памяти кодируется группами битов, которые могут быть трактованы как:
символы,
числа,
адреса,
команды.
Процессор представляет собой устройство, выполняющее последовательность операций, заданных командами, расположенными в памяти.
Процессор ввода-вывода обеспечивает передачу данных между оперативной памятью и внешними устройствами.
Центральный процессор манипулирует данными, хранящимися в памяти. Его действия:
1. Получает адрес текущей команды.
2. Извлекает из памяти эту команду.
3. Расшифровывает код операции этой команды.
4. Получает доступ к данным этой команды.
5. Выполняет команду (т.е. обрабатывает данные).
6. Сохраняет результат этой команды (там, где заказано).
7. Готовит адрес следующей команды.
Так как и команды, и данные хранятся в одной памяти, то изменять программным путем команды самой программы не следует.
Программа, которая модифицирует свой собственный код, называется нереентерабельной (неправильной).
1.2 Архитектура программного обеспечения
|
ПОЛЬЗОВАТЕЛЬ |
| |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Прикладное ПО |
Текстовые процессоры, утилиты и т.д. |
| ||||||||||||||
|
Компиляторы |
Ассемблеры |
| ||||||||||||||
|
Загрузчики |
Редакторы связей |
Отладчики |
| |||||||||||||
|
Операционные системы |
Файловые системы |
| ||||||||||||||
|
Управление памятью |
Управление устройствами |
| ||||||||||||||
АППАРАТУРА |
Непосредственно аппаратурой ЭВМ можно управлять только с помощью программ, поэтому существует программное обеспечение различных уровней в зависимости от степени его близости к аппаратуре.
Программное обеспечение – software.
Микропрограммное обеспечение (между ПО и аппаратурой) – firmware.
Системные программы разработаны для приспособления ЭВМ к нуждам пользователя.
Компилятор (англ. compiler – переводчик) переводит текст программы с языка, близкого к естественному, на язык близкий к машинному (компилятор понижает уровень языка).
Редактор связей устанавливает связи между всеми модулями программы, а в некоторых языках с необходимыми библиотеками.
Загрузчик подготавливает программу на машинном языке к выполнению. Для выполнения программы управление ей передается из операционной системы.
1.3 Ретроспектива развития ПО
SOFTWARE |
ВРЕМЯ |
HARDWARE |
Алгоритм НОД Евклида |
|
|
Аль-Хорезми разработал алгоритмы + , - , * , / |
9 век |
|
|
1645 1694 |
Блез Паскаль, Лейбниц : основы механических, счетных устройств |
Ада Лавлейс – 1-ый программист
|
1823 |
Принципы программного управления счетной машиной. Аналитическая счетная машина ( Бебидж ). |
Дж. Буль ”Основы математической логики” |
1847 |
|
Теория алгоритмов |
1940-е |
|
SOFTWARE |
ВРЕМЯ |
HARDWARE |
1
поколение ЭВМ
поколение |
1949 |
EDSAC: первая электрическая вычислительная машина (Англия) |
|
1954 |
МЭСМ: малая электронная счетная машина (СССР) |
2
поколение ЭВМ
- первый развитый алгоритмический язык ( Бэкус ) |
1956 |
|
Алгол-60 – первый стандартизированный алгоритмический язык программирования ( Европа )
|
1958 с 1960 (международный стандарт) |
|
Лисп – язык обработки списков, функциональный язык ( Маккарти, США) |
1961 |
|
PL/1 [Program Language] (ф.IBM) – язык оболочка. Объединил возможности 3 языков: Алгола, Кобола, Фортрана. |
1964 |
|
3
поколение ЭВМ |
1964 |
IBM-360 (серия ЕС – аналог в СССР) |
Симула-67 – первый объектно-ориентированный язык (Хоар ). |
1967 |
|
SOFTWARE |
ВРЕМЯ |
HARDWARE |
Алгол-68 (IFIP) – язык ядро. Возможности расширения языка: конструирования новых типов данных |
1968 |
|
До 1970-го года: основные модели баз данных: сетевая и иерархическая. В 1970 году была разработана реляционная модель данных. ( Кодд, филиал IBM) |
1970 |
|
4
поколение ЭВМ |
1970 |
РDР ( фирма DEC ) (серия СМ – аналог в СССР) |
Язык Pascal ( Н. Вирт ) |
1971 |
|
Пролог – язык логического программирования ( А. Колмероэ, Ковальский ) |
1971 |
|
Структурное программирование Дейкстра ( Нидерланды ) и Хоар ( Скандинавия ) |
1972 |
|
С (UNIX) ( ф. Bell AT&T, Керниган и Ритчи ) |
1973 |
|
|
1972 |
B1700 ( фирма Burroughs) – аппаратная реализация языков программирования. |
SOFTWARE |
ВРЕМЯ |
HARDWARE |
|
1974 |
МП – микропроцессор. |
Язык Ада ( Ишбиа, Франция ).
5
поколение ЭВМ |
1979 |
Проект ЭВМ 5-го поколения |
|
1980 |
IAPX-432 ( ф.Intel ) - в этом МП была аппаратно реализована Ада. |
Язык MODULA (Н. Вирт ) - введено понятие модуля. |
1982 |
|
|
|
САМСОН (Ленинград) – микропрограммнаяреализация группы алгоритмических языков (алголоподобных) |
Язык С++ (Б.Страуструп, США) - объектно-ориентированый язык |
? |
|