Компьютерные программы Ранее приводились раздельные схематические классификации, приведем общую табличную. Программное обеспечение Базовые Сервисные Системные Программы Операционные системы (ОС) Операционные оболочки Драйверы устройств Система программ, распределяющих ресурсы и организующих работу других программ Программы, облегчающие общение пользователя с командами операционной системы Программы диагностики работоспособности компьютера Антивирусные программы Программы обслуживания дисков Программы архивирования данных Текстовые процессоры Проверяют работу основных элементов компьютера Средства создания презентаций Программы обнаружения компьютерных вирусов и средства «лечения» | Проверка целостности файловой системы, поиск испорченных блоков на диске, дефрагментация |Упаковка файлов или группы файлов для уменьшения места, занимаемого ими на диске Позволяют создавать, редактировать и оформлять текстовые документы Позволяют выполнять многочисленные операции над данными в табличной форме Позволяют создавать и демонстрировать наборы слайдов (возможно со звуковым сопровождением) Средства распознавания символов Позволяют автоматизировать ввод в компьютер типографских и машинописных текстов Средства машинного перевода Позволяют автоматически переводить тексты с иностранных языков и на иностранные языки Средства компьютерной графики и анимации Позволяют создавать неподвижные и движущиеся изображения Программные средства мультимедиа Позволяют просмотр, прослушивание, а также объединение тексты, графику, звук и движущиеся изображения (в т.ч. видеофильмы) Позволяют проектировать на компьютере электронные схемы, машины, механизмы Позволяют применять компьютер на разных стадиях производственного процесса (ИС) программы Табличные процессоры Прикладные Пояснения САПР — системы автоматизированного проектирования Средства автоматизации производства Настольные издательские системы Коммуникационные пакеты Информационные системы Позволяют выполнять компьютерную верстку для подготовки изданий к тиражированию Предназначены для общения с удаленными абонентами и информационными ресурсами сети Используются для отработки больших массивов данных (ввод, поиск, размещение и выдача информации) Обучающие Помогают изучать информатику, иностранные программы языки, историю, химию, физику, математику и мн. Игры (имитационные, ролевые, др. Используются для организации досуга, обучения, логические, стратегические, решения производственных, военных и научных приключенческие) задач Инструментальные Трансляторы Переводят программы с языков программирования в машинные коды Отладчики Позволяют отслеживать выполнение создаваемых программ для поиска и исправления ошибок Интегрированные среды разработки приложений Объединяют разные средства разработки программ: редактор, транслятор, отладчик Средства создания информационных систем Объединяют средства разработки программ и технологии работы с базами данных Операционные системы Известно, что компьютер состоит из набора различных устройств, которые должны взаимодействовать между собой и выполнять «интеллектуальную» работу. Чтобы основной процессор компьютера мог управлять всеми устройствами, была создана система программ, благодаря которым компьютер «оживает» и работает. Эти программы назвали операционной системой. В настоящее время существует много операционных систем. Но самыми популярными для IBM-совместимых компьютеров являются системы — MS DOS и MS Windows. Оболочки операционных систем Чтобы работать с операционной системой, необходимо помнить большое количество команд и правил их записи. Для пользователя-непрофессионала это большая проблема. Чтобы облегчить работу с операционной системой MS DOS, были созданы программыоболочки. Одна из них — The Norton Commander. Сегодня можно сказать, что это самая популярная оболочка в мире. Драйверы устройств и обслуживающие программы Чтобы расширить возможности операционных систем по управлению различными устройствами, для каждого устройства пишется отдельная программа, которую называют драйвером. Так, программа, управляющая работой мышки и позволяющая менять скорость движения мышки, вид курсора и др., называется драйвером мышки; программа, управляющая работой сканера, называется драйвером сканера, и т. д. Особо надо отметить драйверы клавиатур. В связи с тем, что клавиатуры выпускаются для латинского алфавита, для использования других алфавитов, в частности кириллицы, достаточно пользоваться дополнительными драйверами. В старых версиях операционных систем драйверы шли в отдельной поставке. В нынешних операционных системах имеются много встроенных драйверов, идущих в общей поставке с самой операционной системой. Очень важной группой программ являются обслуживающие программы, с помощью которых тестируют компьютерные системы, исправляют обнаруженные дефекты или оптимизируют работу некоторых устройств компьютера. Компьютерные вирусы Компьютерный вирус — это специально написанная небольшая по размерам программа, которая может «приписывать» себя к другим программам (т. е. «заражать» их), а также выполнять различные нежелательные действия на компьютере. Программа, внутри которой находится вирус, называется «зараженной». Когда такая программа начинает работу, то сначала управление получает вирус. Вирус находит и «заражает» другие программы, а также выполняет какие-нибудь вредные действия (например, портит файлы или таблицу размещения файлов на диске, «засоряет» оперативную память и т. д.). Компьютерные вирусы, как и биологические вирусы, i непосредственно опасны только для своей системы. Опосредованное воздействие на иные системы еще не изучено. Биологические вирусы поражают биологические организмы. Компьютерные вирусы наносят вред в основном компьютерной информации (компоненту , Soft). Через Soft возможно вредоносное воздействие компьютерных вирусов на аппаратную часть (Hard). Компьютерные и биологические вирусы имеют принципиально разную природу происхождения. Тем не менее можно выделить ряд схожих свойств, характерных для обеих групп вирусов. Обе группы вирусов (биологические и компьютерные), как правило, не проявляют себя сразу после заражения носителя. Существует некоторый период скрытого нахождения вирусов в зараженном организме или компьютере. Этот период называется латентным периодом. Латентный период продолжается до достижения эпидемиологического порога. Эпидемиологический порог — это такой уровень популяции размножающегося вируса, после которого начинают появляться видимые проявления болезни для биологического организма или нарушения в работе компьютера. Еще одним характерным свойством обеих групп вирусов является их внедрение в паразитируемый организм или компьютер с последующим воссозданием (размножением) вирусов уже самим пораженным организмом или компьютером. К числу отличий относится тот факт, что в некоторых случаях биологический организм может самостоятельно излечиться от вирусов, а компьютер можно «вылечить» пока только с помощью вмешательства извне. Однако похоже, что уровень развития компьютерных систем приближается к такой высоте, когда это различие может исчезнуть. Для защиты от вирусов можно использовать: общие средства защиты информации, которые полезны также как страховка от физической порчи дисков, неправильно работающих программ или ошибочных действий пользователей; профилактические меры, позволяющие уменьшить вероятность заражения вирусом; специализированные программы для защиты от вирусов. Общие средства защиты информации полезны не только для защиты от вируса. Имеются две основные 1 разновидности этих средств: копирование информации — создание копий файлов и системных областей дисков; разграничение доступа предотвращает несанкционированное использование информации, в частности защиту от изменений программ и данных вирусами, неправильно работающими программами и ошибочными действиями пользователей. Несмотря на то, что общие средства защиты информации очень важны для защиты от вирусов, все же их одних недостаточно. Необходимо и применение специализированных программ для защиты от вирусов. Эти программы можно разделить на несколько видов: Программы-детекторы позволяют обнаруживать файлы, зараженные одним из нескольких известных вирусов. Программы-доктора, или фаги, «лечат» зараженные программы или диски, «выкусывая» из зараженных программ тело вируса, т. е. восстанавливая программу в том состоянии, в котором она находилась до заражения вирусом. Программы-ревизоры сначала запоминают сведения о состоянии программ и системных областей дисков, а затем сравнивают их состояние с исходным. При выявлении несоответствий об этом сообщается пользователю. Доктора-ревизоры — это гибриды ревизоров и докторов, т. е. программы, которые не только обнаруживают изменения в файлах и системных областях дисков, но и могут в случае изменений автоматически вернуть их в исходное состояние. Программы-фильтры располагаются резидентно в оперативной памяти компьютера и перехватывают те обращения к операционной системе, которые используются вирусами для размножения и нанесения вреда, и сообщают о них пользователю. Пользователь может разрешить или запретить выполнение соответствующей операции. Программы-вакцины, или иммунизаторы, модифицируют программы и диски таким образом, что это не отражается на работе программ, но тот вирус, от которого производится вакцинация, считает эти программы или диски уже зараженными. Эти программы крайне неэффективны. Текстовые редакторы Одними из первых программ, созданных для компьютера, были программы обработки текстов или, как их стали называть, текстовые редакторы. Первоначально компьютеры с текстовыми редакторами должны были выполнять обычную работу печатной машинки. Соответственно первые программы-редакторы имели функции печати символов, их редактирования, т. е. стирания, вставки и распечатки полученного текста на принтере. Но, в отличие от печатной машинки, готовый текст можно было записывать и использовать много раз. Но простое копирование функций печатной машинки не могло удовлетворить пользователей компьютеров. Развитие функций текстовых редакторов шло очень быстро. К тому же параллельно началась разработка полиграфических издательских компьютерных программ. Идеи и находки разработчиков текстовых редакторов и издательских программ взаимно дополняли и подпитывали друг друга, в результате наряду с появлением мощных полиграфических издательских программ появились текстовые редакторы, которые по своим возможностям лишь немногим уступают издательским системам. Современные текстовые редакторы могут выполнять следующие функции: запоминание и вставка символов или фрагментов текста; использование большого количества шрифтов различного размера; автоматический перенос слов, не помещающихся в строке (некоторые программы при этом могут расставлять знаки переноса по правилам орфографии); проверка и исправление орфографии и синтаксиса; замена повторяющихся слов синонимами; вставка иллюстраций, включая фотографии; автоматическая замена символа, слова или фрагмента во всем тексте; поиск символа, слова или фрагмента в документе; вставка таблиц и диаграмм; автоматическая расстановка номеров страниц; автоматическое создание сносок, алфавитного указателя и оглавления; форматирование текста в виде газетных колонок; установка размера печатной страницы и отступов. Кроме этих основных функций, в различных редакторах могут быть и другие возможности, в частности, в большинство текстовых редакторов встроен язык программирования, позволяющий автоматизировать работу (Visual Basic). Все современные текстовые редакторы, работающие в графических операционных средах (например в Windows), выполнены по принципу WYSIWYG — What You See Is What You Get, что означает: «Что вы видите на экране, то будете иметь на листе». То есть на экране пользователь имеет документ в его реальном виде, что облегчает его компоновку и редактирование. Это особенно важно, когда используется сложная структура документа, где используются различные шрифты, иллюстрации или другие вставки. Наиболее популярным текстовым редактором является Microsoft Word. Электронные таблицы Электронные таблицы — это класс программ, которые позволяют избавиться от рутинной работы в бухгалтерском учете, обработке результатов научных экспериментов, а также для автоматизации других работ, требующих больших расчетов. Электронные таблицы способны самостоятельно производить расчеты, сортировать данные, проводить выборки (разумеется, по заранее заданным или выбранным формулам). Современные электронные таблицы позволяют представить результат вычислений при помощи различных диаграмм, графиков, использовать иллюстрации и другие возможности оформления результирующего документа. Системы баз данных Программы баз данных (DataBase) или СУБД (Системы Управления Базами Данных) предназначены для хранить в компьютере картотеки. И первые программы баз данных были электронной версией простой картотеки. Правда, в отличие от обычной картотеки, электронная имела возможность быстрого поиска необходимого объекта картотеки. Постепенно программы баз данных обрастали все более развитыми функциями, которые помогали не только быстро находить данные, но и сортировать и группировать их по различным признакам, делать выборки различных групп данных. Системы баз данных позволяют быстро и точно, на основе имеющихся данных, создавать сводные документы или ведомости. Так, если в школе имеется база данных итоговой успеваемости учеников по четвертям и учебным годам, то при помощи систем баз данных можно, например, быстро создать ведомость успеваемости какого-то ученика за все годы обучения в школе. Графические редакторы Графическая, как и любая другая, информация хранится и обрабатывается в компьютере в цифровой форме, т. е. в виде последовательностей нулей и единиц. Все компьютерные изображения разделяют на два типа: растровые и векторные. Растровое изображение хранится с помощью точек различного цвета (пикселей), которые образуют строки и столбцы. Каждый пиксель имеет определенное положение и цвет. Пиксель — минимальный участок изображения, которому независимым образом можно задать его цвет. Векторное изображение формируется из объектов (точка, линия, окружность, прямоугольник и т. д.), которые хранятся в памяти компьютера в виде графических примитивов и описывающих их математических формул. Растровые графические изображения многоцветных фотографий и иллюстраций получают с помощью сканера или цифрового фотоаппарата (видеокамеры). Такие изображения обычно имеют большой размер и большую глубину цвета (24 или 36 бит на точку). В результате файлы, хранящие растровые изображения, имеют большой информационный объем. Векторные графические изображения являются оптимальным средством для хранения высокоточных графических объектов (чертежи, схемы и т. д.), для которых имеет значение сохранение четких и ясных контуров при любом масштабе. С векторной графикой пользователь сталкивается, когда работает с системами компьютерного черчения, САПР, программ обработки трехмерной графики. Достоинством векторной графики является то, что файлы, хранящие векторные графические изображения, имеют сравнительно небольшой объем. Способ хранения информации в файле (растровый или векторный), а также форма хранения информации (используемый алгоритм сжатия) определяют формат графического файла. Некоторые виды форматов графических файлов Формат Пояснения графического Bit MaPфайла image (BMP) Универсальный формат растровых графических файлов, используется в операционной системе Windows. Этот формат поддерживается многими графическими редакторами, и в том числе редактором Paint Tagged Image File Format (TIFF) Graphics Interchange Format (GIF) Portable Network Graphic (PNG) Формат растровых графических файлов, поддерживается всеми основными графическими редакторами и компьютерными платформами Формат растровых графических файлов, поддерживается приложениями для различных операционных систем Формат растровых графических файлов, аналогичный формату GIF. Рекомендуется для размещения графических изображений на Webстраницах в Internet Joint Photographic Expert Group (JPG) Windows MetaFile (WMF) Формат растровых графических файлов Encapsulated PostScript (EPS) CorelDRaw files (CDR) Формат векторных графических файлов, поддерживается программами для различных операционных систем Оригинальный формат векторных графических файлов, используемый в системе обработки векторной графики Corel Draw Универсальный формат векторных графических файлов для Windowsприложений. Используется для хранения коллекции графических изображений Microsoft Clip Gallery Для обработки изображений на компьютере используются специальные программы — графические редакторы. Графические редакторы также можно разделить на две категории: растровые и векторные. Графический редактор — это программа создания, редактирования и просмотра графических изображений. Языки программирования Языки программирования — это особые программы, которые являются инструментальной средой для создания других компьютерных программ. Множество вспомогательных операций, необходимых для создания программы, поручили самому же компьютеру. Так появились языки программирования. Программа на языке программирования записывается с помощью более-менее понятных человеку слов и символов. При этом получается так, что чем ближе язык программирования к машинному коду, тем удобнее программа для процессора — она и выполняется быстрее, и места в памяти меньше занимает. А чем ближе язык к человеческому, тем удобнее он людям, но тем меньше в нем команд для управления регистрами процессора. Языки, близкие к процессору, называют языками низкого уровня, а языки, удобные для людей, — языками высокого уровня. Программу на языке программирования записывают в обычном текстовом редакторе и получают текстовый файл. Такой программный код, записанный на языке программирования высокого уровня, называют исходным модулем (кодом, текстом). Исходный текст программы состоит из специальных команд (операторов языка программирования). Процессор их исполнить не может, и исходный код преобразуют в инструкции процессора. Это преобразование берут на себя трансляторы. Есть два вида трансляторов: компиляторы и интерпретаторы. Компилятор преобразует исходный код в машинный. В результате получается так называемый объектный модуль. Он записан в машинном коде, но работать он тоже пока не может: к нему надо подключить стандартные процедуры, которые использовал программист. Эти процедуры выбираются из библиотек, прилагающихся к языку программирования. Операцию выбора процедур из библиотек и подключения их к объектному коду выполняет специальная программа — редактор связей. Только после этого получается работающая программа — ее называют рабочим кодом или исполняемым кодом. Кроме компиляторов используются также интерпретаторы. Это такие трансляторы, которые обрабатывают текст не заранее, а непосредственно во время работы программы. Интерпретатор — это программа-посредник, читающая команды из исходного файла и переводящая их на язык процессора «на ходу» (прямо во время работы программы). Трансляторы — это программы-переводчики, выполняющие перевод с языка, на котором написана программа, на язык машинного кода. Их работа очень похожа на работу обычного переводчика, выполняющего перевод с одного языка на другой. Компилятор несколько раз просмотрит текст программы, найдет общие повторяющиеся места и так переведет текст программы на язык машинного кода, что длина объектного модуля будет минимальной, а скорость его работы — максимальной. Такие «интеллектуальные» компиляторы называют оптимизирующими компиляторами. Большинство компиляторов современных языков программирования являются оптимизирующими. Работа интерпретатора похожа на работу синхронного переводчика. Прочитав одну инструкцию из программы, интерпретатор переводит ее на язык машинного кода и переходит к следующей. Ему много раз приходится повторять одно и то же, и результат его работы далек от оптимального. Языки программирования, для которых существуют программы-компиляторы, называются компилируемыми языками. К ним относятся большинство современных языков: Паскаль, C++, Delphi, Fortran и многие, многие другие. В программу, написанную на интерпретируемом языке, можно внести изменения в любой момент, даже во время ее работы, а в машинный код откомпилированной программы, не имея исходного текста, внести изменения крайне трудно — это законченный продукт. Интерпретируемые языки часто используют в качестве учебных. Для освоения компилирующих языков нужны недели и месяцы подготовки, а писать простые программы на интерпретируемом языке можно уже на первый-второй день после начала занятий. Простейшим интерпретируемым языком программирования считается язык BASIC, с основами которого мы познакомимся далее. В настоящее время языки программирования делят на процедурные (большинство «классических» языков программирования, например FORTRAN, PASCAL, BASIC, С), логические (ЛИСП, ПРОЛОГ и др.) и объектно-ориентированные (C++, Java и др.). Несмотря на серьезные различия между языками программирования все они имеют аналогичные средства реализации основных операций. Более того, при создании любой программы можно использовать язык программирования любого типа, хотя трудоемкость работы при использовании разных языков будет разной.