Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курс лекций информатика

.pdf
Скачиваний:
68
Добавлен:
22.02.2015
Размер:
3.14 Mб
Скачать

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

иразбираться в них.

Встандартную поставку антивирусного комплекта АО «ДиалогНаука» входят три программных продукта:

еженедельно обновляемый полифаг Aidstest;

ревизор диска ADinf;

лечащий блок ADinf Cure Module, отслеживающая и уничтожающая сложношифруемые и полиморфные вирусы.

Врасширенный вариант поставки комплекта входит аппаратный комплекс Sheriff, гарантированно предотвращающий на аппаратном уровне проникновение вирусов в систему.

Вкомплект программ «Санкт-Петербургской антивирусной лаборатории И.Данилова (ООО "СалД")» входят:

полифаг Dr.Web;

резидентный сторож SpIDer Guard;

программа антивирусной проверки всех входящих сообщений, принимаемых по E-mail через почтовый протокол POP3 -

SpIDer Mail;

планировщик Dr. Web.

Программа-полифаг обнаруживает и удаляет фиксированный набор известных вирусов в памяти, файлах и системных областях дисков компьютера. Кроме того, Doctor Web может проводить эвристический анализ файлов в целях выявления неизвестных вирусов, в том числе сложношифруемых и полиморфных вирусов. Успех такого анализа — в среднем 82%. Программа может распаковывать и проверять исполняемые файлы, обработанные архиваторами LZEXE, PKLite и Diet.

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

252

SpIDer Mail производит антивирусную проверку всех входящих сообщений, принимаемых по E-mail через почтовый протокол POP3 на локальный компьютер из интернет/интранет. Основным преимуществом такого метода антивирусной проверки является независимость от типа используемого почтового клиента.

Планировщик Dr.Web позволяет производить запуск антивирусных программ и проверку устройств хранения информации, а также осуществлять обновление вирусных баз и компонентов программы по графику, задаваемому пользователем.

8.9.Контрольные вопросы:

1.Укажите назначение программ архивации данных.

2.Какие методы сжатия информации используются в программах?

3.Охарактеризуйте пакет программ Norton Utilities.

4.Назначение файловых менеджеров.

5.Что такое компьютерный вирус?

6.Дайте классификацию компьютерных вирусов.

7.Какие используются методы обнаружения компьютерных вирусов?

8.Дайте классификацию антивирусных программ.

253

Глава 9. Инструментальное программное обеспечение

9.1.Трансляторы и их виды

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

Интерпретатор берет очередной оператор языка из текста программы, анализирует его структуру и затем сразу исполняет (обычно после анализа оператор транслируется в некоторое промежуточное представление или даже машинный код для более эффективного дальнейшего исполнения). Только после того как текущий оператор успешно выполнен, интерпретатор перейдет к следующему. При этом, если один и тот же оператор должен выполняться в программе многократно, интерпретатор всякий раз будет выполнять его так, как будто встретил впервые. Вследствие этого, программы, в которых требуется осуществить большой объем повторяющихся вычислений, могут работать медленно. Кроме того, для выполнения такой программы на другом компьютере там также должен быть установлен интерпретатор — ведь без него текст программы является просто набором символов.

Компиляторы полностью обрабатывают весь текст программы. Они просматривают его в поисках синтаксических ошибок (иногда несколько раз), выполняют определенный смысловой анализ и затем автоматически

254

переводят (транслируют) на машинный язык — генерируют машинный код.

Схема процесса компиляции программы

Исходный

 

 

 

Объектный

 

 

 

Загрузочный

 

 

Редактор

текст

 

 

 

код

 

 

модуль

 

Компилятор

 

 

 

 

 

 

связей

 

программы

 

 

программы

 

 

программы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис.42

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

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

В реальных системах программирования перемешаны технологии и компиляции и интерпретации.

255

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

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

9.2.1. Средства создания программ

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

текстовый редактор;

транслятор;

библиотеки программ;

редактор связей.

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

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

256

На этом этапе уже возможно получение готовой программы, но чаще всего в ней не хватает некоторых компонентов, поэтому компилятор обычно выдает промежуточный объектный код (двоичный файл, стандартное расширение .OBJ).

При создании программ часто пользуются готовыми подпрограммами, реализующими стандартные функции (например, вычисляющих математические функции sin или ln). Такие функции содержатся в библиотеках, которые поставляются вместе с компилятором.

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

исполнимый код.

Если по каким-то причинам один из объектных модулей или нужная библиотека не обнаружены (например, неправильно указан каталог с библиотекой), то сборщик сообщает об ошибке и готовой программы не получается. Исполнимый код — это законченная программа, которую можно запустить на любом компьютере, где установлена операционная система, для которой эта программа создавалась. Как правило, итоговый файл имеет расширение .EXЕ или .СОМ.

257

9.2.2. Интегрированные системы программирования

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

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

Для всех универсальных языков программирования сегодня имеется немало систем программирования, выпускаемых различными фирмами и ориентированных на различные модели ПК и операционные системы. Наибольшее распространение получили такие системы, которые легки в использовании, позволяют получать эффективные программы, имеют богатые библиотеки подпрограмм и мощные возможности для отладки. В качестве примеров таких систем можно назвать Turbo Pascal, Turbo C++, Microsoft C, Microsoft Basic.

9.2.3.Среды быстрого проектирования

Впоследние несколько лет в программировании (особенно в программировании для операционной системы Windows) наметился так

258

называемый визуальный подход. До этого серьезным препятствием для разработки графических приложений была сложность создания различных элементов управления и контроль за их работой. Достаточно взглянуть на окно любой Windows-программы. В нем имеется множество стандартных элементов управления (кнопки, пункты меню, списки, переключатели и т. д.). Очень трудоемко вручную описывать процесс создания этих элементов в соответствии с требованиями Windows, на глазок определять координаты, отслеживать их состояние с помощью специальных команд. Например, для простой программы, складывающей два числа, потребуется один оператор (одна строка исходного текста) для выполнения нужного вычисления и сотни строк кода для подготовки приложения к работе в Windows, создания кнопки и пары полей ввода.

Этот процесс автоматизирован в средах быстрого проектирования

(Rapid Application Development, RAD-среды). Все необходимые элементы оформления и управления создаются и обслуживаются не путем ручного программирования, а с помощью готовых визуальных компонентов, которые с помощью мыши «перетаскиваются» в проектируемое окно. Их свойства и поведение затем настраиваются с помощью простых редакторов, визуально показывающих характеристики соответствующих элементов. При этом вспомогательный исходный текст программы, ответственный за создание и работу этих элементов, генерируется RADсредой автоматически, что позволяет сосредоточиться только на логике решаемой задачи. В результате программирование во многом заменяется на проектирование — подобный подход называется еще визуальным программированием.

Компоненты достаточно легко создавать самостоятельно, поэтому в мире сегодня распространяются тысячи бесплатных и платных компонентов для наиболее известных RAD-сред. Из них формируются библиотеки компонентов — объектные репозитории. Компоненты выступают в роли «строительных кирпичиков», позволяющих собирать готовое приложение с богатыми возможностями, написав всего десяток

259

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

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

Basic: Microsoft Visual Basic;

Pascal: Borland Delphi;

C++: Borland C++Bulider;

Java: Symantec Café.

К системам проектирования, использующим визуальные средства разработки, можно отнести такие системы как AutoCAD, системы лабораторных исследований LabView, MATLAB, математический пакет Maple. Все они являются лидерами в своей области.

Для разработки серверных и распределенных приложений можно использовать систему программирования Microsoft Visual C++, продукты фирмы Inprise под маркой Borland, практически любые средства программирования на Java.

9.2.4.CASE-средства программирования

Современные CASE-средства охватывают обширную область поддержки многочисленных технологий проектирования программ: от простых средств анализа и документирования до полномасштабных средств автоматизации, покрывающих весь жизненный цикл ПО.

Наиболее трудоемкими этапами разработки ИС являются этапы анализа и проектирования, в процессе которых CASE-средства обеспечивают качество принимаемых технических решений и подготовку проектной документации. При этом большую роль играют методы визуального представления информации. Это предполагает построение структурных или иных диаграмм в реальном масштабе времени, использование многообразной цветовой палитры, сквозную проверку синтаксических правил. Графические средства моделирования предметной

260

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

В разряд CASE-средств попадают как относительно дешевые системы для персональных компьютеров с весьма ограниченными возможностями, так и дорогостоящие системы для неоднородных вычислительных платформ и операционных сред. Так, современный рынок программных средств насчитывает около 300 различных CASE-средств, наиболее мощные из которых так или иначе используются практически всеми ведущими фирмами.

Обычно к CASE-средствам относят любое программное средство, автоматизирующее ту или иную совокупность процессов жизненного цикла ПО и обладающее следующими основными характерными особенностями:

мощные графические средства для описания и документирования ИС, обеспечивающие удобный интерфейс с разработчиком и развивающие его творческие возможности;

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

использование специальным образом организованного

хранилища проектных метаданных (репозитория). Интегрированное CASE-средство (или комплекс средств,

поддерживающих полный жизненный цикл ПО) содержит следующие компоненты;

репозиторий, являющийся основой CASE-средства. Он должен обеспечивать хранение версий проекта и его отдельных компонентов, синхронизацию поступления информации от различных разработчиков при групповой разработке, контроль метаданных на полноту и непротиворечивость;

261