- •Общие сведения об эвм.
- •Структура и принципы построения эвм
- •Структура и признаки построения малых эвм.
- •Представление информации в систему счисления.
- •Позиционная система счисления
- •Выбор систем счисления.
- •Перевод целых чисел из одной сс в другую.
- •Перевод дробных чисел из одной сс в другую.
- •Формы представления чисел в эвм.
- •Представление числа в форме с фиксированной точкой.
- •Представление чисел в форме с плавающей точкой.
- •Составляющие пк.
- •Контроллеры и шины эвм.
- •Материнская плата.
- •Программное обеспечение пк.
- •Системные программы.
- •Программы – оболочки.
- •Вспомогательные программы.
- •Программы офисного назначения.
- •Редактор документов.
- •Табличные процессоры.
- •Алгоритм и их свойства.
- •Изображение алгоритма в виде блок-схемы.
- •Понятие об алгоритмическом языке.
- •Понятие о подходе к разработке алгоритма.
- •Основные проблемы, связанные с программированием диалоговых систем.
- •Степень защищенности данных и роль конечного пользователя в ис.
- •Факторы, влияющие на поведение пользователя в ис.
- •Основные требования к современным ис.
- •Эффективность программ
- •Профили и анализ программ
- •Оптимизирующие компиляторы
- •Метод структурного программирования (мсп).
- •Этап планирования.
- •Функции, которые выполняет модуль.
- •2) Операционный подход
- •Планирование тестов.
- •Структурное программирование.
- •У аправляющие структуры.
- •Пошаговая детализация.
- •Сегментирование.
- •Методы тестирования и отладки программ.
- •Проблема живучести программы
- •Методы тестирования
- •Этапы современного тестирования
- •Тестирование программ математических вычислений.
- •Этапы испытания программных систем.
- •Рекомендации по организации этапов тестирования.
- •Компаратор файлов.
- •Этапы решения задач с применением эвм.
- •Математическая постановка задач.
- •Выбор и разработка метода решения.
- •Разработка алгоритма.
- •Написание программ и ввод в эвм.
- •Отладка программ.
- •Программный модуль. Этапы обработки программы на эвм.
- •Постфиксная форма.
- •Загрузчики.
- •Редактор связи.
- •Отладчики.
- •Языки программирования.
- •Fortran
- •Язык fort (с точки зрения обычного программирования)
Оптимизирующие компиляторы
Эффективность важна на 2-х стадиях разработки программы
компиляция
выполнение
Если компилятор работает быстро, то он обычно сост-т программу, к-ая вып-ся медленно. Компиляторы, создающие эффективную объектную программу, обычно бывают большими по объему и работают медленно. В связи с этим фирмы-разработчики ЯП в наст время исп-т по 2 компиляторадля кажд входного языка. Т.к.1-ый компиляторработает быстро, но создает не эффективную программу, этот компилятор исп-ся для отладки программ.2-ой компиляторработает медленно, но создает эффективную объектную программу, он исп-ся для создания объектных модулей.
Нек-ые совр компиляторы позв-т польз-лю выбрать ресурс, к-ый в свою очередь нужно оптимизировать. Польз-ль может потребовать, чтобы был минимизирован объем памяти, либо время вып-ия. В этом случае и чаще всего оптимизация одного ресурса вып-ся за счет другого. Что касается скорости компилятора, то нек-ые программные ухищрения могут сократить время компилирования, но они либо тривиальны, либо сильно зависят от компилятора.
Существует 2 типа компиляции:
машинно-зависимая
машинно-независимая
Машинно-зависимая– способ компиляции, результат к-ой зависит от испол машины.
Машинно-независимая– способ компиляции, кот-й выполняется на уровне входного языка, компилятор может оптимизировать программу, но обычно польз-ль может это сделать в самой среде программ-ия. Качество оптимиз-ой программы за счет изменения ее логики.
Шаги оптимизации:
оптимизируйте только в случае необх-сти, т.к. выполняя оптимизацию, можно ухудшить удобочитаемость.
Если оптимизация необходима, попытайтесь вначале исп-ть оптимизирующий компилятор.
Определяйте критич области в программе, подлежащие оптимизации.
Применяйте локальную оптимизацию к критич областям в программе.
Советы программисту:
Если программа неисправна, не имеет значение ее эффективность.
Определять требования эффективности на стадии проектирования.
Удобочитаемость программы более важна, чем эффективность.
Применяйте оптимизир. компиляторы
Профилируйте программу
Там, где это необходимо, избегайте смешанных типов данных.
Группируйте записи в эффект блоки для ввода/вывода.
Используйте загрузочные модули.
Метод структурного программирования (мсп).
Важны форма и дисциплина в программ-ии.
Цели СП:
Избавиться от плохой структуры программы
Создание программы, к-ую можно было бы понимать, сопровождать и проецировать без участия автора.
На сегодняшний день стоимость сопровождения и модификации программы в 3-5 раз выше, чем стоимость создания. Основоположником СП явл-ся Дейкебра.
Структурный подход к программированию состоит из 3 частей:
Нисходящая разработка
Структурное программирование
Сквозной структурный подход
Нисходящая разработка–процесс, состоящий из 3 шагов:
Планирование
Проектирование
Реализация
Каждый из этих шагов – это определенный шаг жизненного цикла системы.
Этап планирования.
До начала программирования модулей необходимо сравнить различные послед-сти прогр-ия и тестирования модулей. Сначала запрограммировать все уровни одного модуля иерархии, затем перейти к следующему уровню.
Наилучшая последовательность разработки модулей появл-ся путем комбинации 2-х подходов:
Иерархического
Операционного
1) Иерархический– реализация этого прогр-ия и тестирования модулей, опред-ся их расположением в схеме, иерархией программной системы.
Сначала программируются все модули одного уровня (верхнего), а затем нижнего.
Модуль– последовательность логически связанных проектов, оформленных как отдельная часть программы.
Свойство модулей:
Модуль возникает в рез-те сепаратных (совместных) компиляций
На внутренность модуля можно ссылаться с помощью имени, называемом именем модуля.
Модуль должен возвращать управление того, кто его непосредственно вызывает.
Модуль может обращаться к другим модулям.
Модуль должен иметь 1 вход и 1 выход, что гарантирует замкнутость модуля и упрощает сопровождение программы.
Модуль обладает единственной ф-цией – это вполне опред преобраз исх данных в рез-т в процессе выполнения данного модуля, иными словами, модуль программы системы – это элемент программы, вып-щей самост задачу.