Вопрос 2.
Понятие программы.
Бессмысленно обсуждать достоинства компьютера без рассмотрения написанных для него программ, ведь именно от них зависит насколько ценна и полезна для нас машина и насколько оправданы затраты на ее приобретение и обслуживание. Неудивительно, что создание программ стало вполне самостоятельной (и весьма прибыльной) отраслью.
Программы пишутся для того, чтобы, используя возможности компьютера, можно было бы анализируя, распределяя и вычисляя вводимые в компьютер данные, вызывать некоторые действия. Фактически, программы являются описанием способов обработки, переданных им для этого данных. Можно представить дело и так, что программа оказывает пользователю ряд услуг или, как говорят, предоставляет пользователю ряд функций по обработке информации.
Абсолютно любая программа состоит из двух разделов. Первый раздел содержит внутренние данные (ресурсы) программы, второй - код, т. е. машинные команды, инструкции.
Реализация программы - это глубина воплощения в программе некоторой идеи. От качества реализации зависит, насколько хорошо будет использоваться приобретенное пользователем дорогостоящее компьютерное оборудование.
Во время исполнения программа занимает определенный объем оперативной памяти. Некоторые из программ могут не работать, если в компьютере установлено недостаточное для них количество оперативной памяти. Под свои нужды программа может брать память дополнительно, хотя и в ограниченных пределах. Процесс перемещения тела и данных программы из внутренней памяти в оперативную называется загрузкой программы. «Запущенную» на выполнение программу иногда называют задачей.
Программы имеют начало и конец, и выполняются шаг за шагом (точнее, инструкция за инструкцией), соответственно, от начала, и если их выполнение не прерывно аварийно, до конца. Если у программы нет логического конца, она может выполняться, теоретически, бесконечно долго.
Автор согласен с теми, кто считает основным свойством любой программы то, что она работает. И если уж программа хороша, то она очень и очень хороша, но уж если плоха, то просто ужасна.
Часто пользователь задается вопросом: что важнее - электроника компьютера или программы для него. На этот вопрос однозначно ответить трудно. Понятно, что без программ становятся бесполезными даже самые современные дорогостоящие электронные узлы. Из-за плохих программ они тоже мало эффективны. Но даже самая совершенная, отличная программа вряд ли окажется полезной, если будет выполняться компьютером со слабой аппаратной частью. В этом случае говорят о такой характеристике программы, как выполнимость, т. е. ее способности работать на заданном компьютере. Исследованием всех этих вопросов занимаются системные аналитики. Они изучают особенности труда людей разных профессий, ищут возможности для повышения производительности их труда за счет автоматизации, за счет передачи части выполняемых человеком операций компьютеру. При этом системный аналитик для каждого конкретного случая решает, какие программы и какое компьютерное оборудование подойдет для этого наилучшим образом.
Программный принцип работы компьютера.
В XIX веке английским математиком и инженером Чарльзом Бэббиджем был разработан проект вычислительной машины, которая предназначалась для автоматического проведения длинных цепочек вычислений. Конструкция его аналитической машины включала 50 тысяч деталей: зубчатых колес, рычагов и пружин, взаимодействовавших определенным образом. Совершенствуя и уточняя конструкцию машины, Бэббидж первым смог выделить необходимые для ее работы части:
· устройство для хранения чисел, как исходных, так и получающихся в результате вычисления;
· специальный вычислительный блок -- процессор;
· устройство для ввода и вывода информации.
В качестве средства хранения информации в аналитической машине использовалась перфокарта -- картонная прямоугольная пластина с рядами пробитых в ней дырочек. Каждый ряд состоял из двух частей, разделенных столбцом, содержащим отверстия во всех рядах. Первая часть представляла собой запись числа, вторая -- код команды, указывающей, что делать с числом.
В созданной Бэббиджем аналитической машине присутствовала хранимая в памяти машины программа ее работы. Меняя программу (перфокарту), можно было изменять порядок вычислений, то есть переходить от одной задачи к другой.
Главной особенностью конструкции этой машины является программный
принцип работы. Принцип программы, хранимой в памяти компьютера, считается
важнейшей идеей современной компьютерной архитектуры. Суть идеи заключается в
том, что
1) программа вычислений вводится в память ЭВМ и хранится в ней наравне с исходными
числами;
2) команды, составляющие программу, представлены в числовом коде по форме ничем
не отличающемся от чисел.
Программное обеспечение персонального компьютера.
Данные
и программы. Числовая, текстовая, графическая и звуковая информация может быть
представлена и обработана на компьютере в форме данных.
Чтобы процессор «знал», что ему делать с данными, как их обрабатывать, он
должен получить определенную команду (инструкцию). Например, «сложить два
числа» или «заменить один символ на другой».
Обычно для решения какой-либо задачи процессору требуется не единичная команда,
а их последовательность. Последовательность команд, которую выполняет компьютер
в процессе обработки данных, называется программой.
Программное обеспечение. В течение нескольких десятилетий создавались
программы, нужные для обработки различных данных. Совокупность требуемых
программ составляет программное обеспечение компьютера.
Операционная система является базовой и необходимой составляющей программного
обеспечения компьютера, без нее компьютер не может работать в принципе.
Для выполнения на компьютере конкретных работ (создания текстов и рисунков,
обработки числовых данных и т. д.) требуется прикладное программное
обеспечение. Прикладное программное обеспечение можно разделить на две группы
программ: системы программирования и приложения.
Системы программирования являются для программистов-профессионалов
инструментами разработки программ на различных языках программирования (Basic,
Pascal, С и др.). В настоящее время появились системы визуального
программирования (Visual Basic, Borland Delphi и др.), которые позволяют даже
начинающему пользователю компьютера создавать несложные программы. Приложения
предоставляют пользователю возможность обрабатывать текстовую, графическую,
числовую, аудио- и видеоинформацию, а также работать в компьютерных сетях, не
владея программированием.
Практически каждый пользователь компьютера нуждается в приложениях общего
назначения, к числу которых относятся: текстовые и графические редакторы,
электронные таблицы, системы управления базами данных, а также приложения для
создания мультимедиа-презентаций.
В связи со стремительным развитием глобальных и локальных компьютерных сетей
все большее значение приобретают различные коммуникационные программы.
Из-за широкого распространения компьютерных вирусов можно отнести к отдельной
группе антивирусные программы.
Для профессиональных целей квалифицированными пользователями компьютера используются
приложения специального назначения. К ним относятся системы компьютерной графики,
системы автоматизированного проектирования (САПР), бухгалтерские программы, компьютерные
словари и системы автоматического перевода и др.
Все большее число пользователей применяет обучающие программы для
самообразования или в учебном процессе. Прежде всего, это программы обучения
иностранным языкам, программы-репетиторы и тесты по различным предметам и т. д.
Большую пользу приносят различные мультимедиа-приложения (энциклопедии,
справочники и т. д.) на лазерных дисках, содержащие огромный объем информации и
средства быстрого ее поиска.
Достаточно большое число пользователей начинают знакомство с компьютером с
компьютерных игр, которые бывают самых различных типов: логические,
стратегические, спортивные и т. д.
Представление о системном и прикладном обеспечении и его применение для решения задач предметной области специалиста.
Базовый уровень
Базовый уровень является низшим уровнем программного обеспечения. Отвечает за взаимодействие с базовыми аппаратными средствами. Базовое программное обеспечение содержится в составе базового аппаратного обеспечения и сохраняется в специальных микросхемах постоянного запоминающего устройства (ПЗУ), образуя базовую систему ввода-вывода BIOS. Программы и данные записываются в ПЗУ на этапе производства и не могут быть изменены во время эксплуатации.
Системный уровень
Системный уровень - является переходным. Программы этого уровня обеспечивают взаимодействие других программ компьютера с программами базового уровня и непосредственно с аппаратным обеспечением. От программ этого уровня зависят эксплуатационные показатели всей вычислительной системы. При подсоединении к компьютеру нового оборудования, на системном уровне должна быть установлена программа, обеспечивающая для остальных программ взаимосвязь с устройством. Конкретные программы, предназначенные для взаимодействия с конкретными устройствами, называют драйверами.
Другой класс программ системного уровня отвечает за взаимодействие с пользователем. Благодаря ему, можно вводить данные в вычислительную систему, руководить ее работой и получать результат в удобной форме. Это средства обеспечения пользовательского интерфейса, от них зависит удобство и производительность работы с компьютером.
Совокупность программного обеспечения системного уровня образует ядро операционной системы компьютера. Наличие ядра операционной системы - это первое условие для возможности практической работы пользователя с вычислительной системой. Ядро операционной системы выполняет такие функции: управление памятью, процессами ввода-вывода, файловой системой, организация взаимодействия и диспетчеризация процессов, учет использования ресурсов, обработка команд и т.д.
Служебный уровень
Программы этого уровня взаимодействуют как с программами базового уровня, так и с программами системного уровня. Назначение служебных программ (утилит) состоит в автоматизации работ по проверке и настройки компьютерной системы, а также для улучшения функций системных программ. Некоторые служебные программы (программы обслуживания) сразу входят в состав операционной системы, дополняя ее ядро, но большинство являются внешними программами и расширяют функции операционной системы. То есть, в разработке служебных программ отслеживаются два направления: интеграция с операционной системой и автономное функционирование.
Классификация служебных программных средств
1. Диспетчеры файлов (файловые менеджеры). С их помощью выполняется большинство операций по обслуживанию файловой структуры: копирование, перемещение, переименование файлов, создание каталогов (папок), уничтожение объектов, поиск файлов и навигация в файловой структуре. Базовые программные средства содержатся в составе программ системного уровня и устанавливаются вместе с операционной системой
2. Средства сжатия данных (архиваторы). Предназначены для создания архивов. Архивные файлы имеют повышенную плотность записи информации и соответственно, эффективнее используют носители информации.
3. Средства диагностики. Предназначены для автоматизации процессов диагностики программного и аппаратного обеспечения. Их используют для исправления ошибок и для оптимизации работы компьютерной системы.
4. Программы инсталляции (установки). Предназначены для контроля за добавлением в текущую программную конфигурацию нового программного обеспечения. Они следят за состоянием и изменением окружающей программной среды, отслеживают и протоколируют образование новых связей, утерянных во время уничтожения определенных программ. Простые средства управления установлением и уничтожением программ содержатся в составе операционной системы, но могут использоваться и дополнительные служебные программы.
5. Средства коммуникации. Разрешают устанавливать соединение с удаленными компьютерами, передают сообщения электронной почты, пересылают факсимильные сообщения и т.п..
6. Средства просмотра и воспроизведения. Преимущественно, для работы с файлами, их необходимо загрузить в "родную" прикладную программу и внести необходимые исправления. Но, если редактирование не нужно, существуют универсальные средства для просмотра (в случае текста) или воспроизведения (в случае звука или видео) данных.
7. Средства компьютерной безопасности. К ним относятся средства пассивной и активной защиты данных от повреждения, несанкционированного доступа, просмотра и изменения данных. Средства пассивной защиты - это служебные программы, предназначенные для резервного копирования. Средства активной защиты применяют антивирусное программное обеспечение. Для защиты данных от несанкционированного доступа, их просмотра и изменения используют специальные системы, базирующиеся на криптографии.
Прикладной уровень
Программное обеспечение этого уровня представляет собой комплекс прикладных программ, с помощью которых выполняются конкретные задачи (производственных, творческих, развлекательных и учебных). Между прикладным и системным программным обеспечением существует тесная взаимосвязь. Универсальность вычислительной системы, доступность прикладных программ и широта функциональных возможностей компьютера непосредственно зависят от типа имеющейся операционной системы, системных средств, помещенных в ее ядро и взаимодействии комплекса человек-программа-оборудование.
Классификация прикладного программного обеспечения
1. Текстовые редакторы. Основные функции - это ввод и редактирование текстовых данных. Для операций ввода, вывода и хранения данных текстовые редакторы используют системное программное обеспечение. С этого класса прикладных программ начинают знакомство с программным обеспечением и на нем приобретают первые привычки работы с компьютером.
2. Текстовые процессоры. Разрешают форматировать, то есть оформлять текст. Основными средствами текстовых процессоров являются средства обеспечения взаимодействия текста, графики, таблиц и других объектов, составляющих готовый документ, а также средства автоматизации процессов редактирования и форматирования. Современный стиль работы с документами имеет два подхода: работа с бумажными документами и работа с электронными документами. Приемы и методы форматирования таких документов различаются между собой, но текстовые процессоры способны эффективно обрабатывать оба вида документов.
3. Графические редакторы. Широкий класс программ, предназначенных для создания и обработки графических изображений. Различают три категории:
· растровые редакторы;
· векторные редакторы;
· 3-D редакторы (трехмерная графика).
В растровых редакторах графический объект представлен в виде комбинации точек (растров), которые имеют свою яркость и цвет. Такой подход эффективный, когда графическое изображение имеет много цветов и информация про цвет элементов намного важнее, чем информация про их форму. Это характерно для фотографических и полиграфических изображений. Применяют для обработки изображений, создания фотоэффектов и художественных композиций.
Векторные редакторы отличаются способом представления данных изображения. Объектом является не точка, а линия. Каждая линия рассматривается, как математическая кривая ІІІ порядка и представлена формулой. Такое представление компактнее, чем растровое, данные занимают меньше места, но построение объекта сопровождается пересчетом параметров кривой в координаты экранного изображения, и соответственно, требует более мощных вычислительных систем. Широко применяются в рекламе, оформлении обложек полиграфических изданий.
Редакторы трехмерной графики используют для создания объемных композиций. Имеют две особенности: разрешают руководить свойствами поверхности в зависимости от свойств освещения, а также разрешают создавать объемную анимацию.
4. Системы управления базами данных (СУБД). Базой данных называют большие массивы данных, организованные в табличные структуры. Основные функции СУБД:
· создание пустой структуры базы данных;
· наличие средств ее заполнения или импорта данных из таблиц другой базы;
· возможность доступа к данных, наличие средств поиска и фильтраци.
В связи с распространением сетевых технологий, от современных СУБД требуется возможность работы с отдаленными и распределенными ресурсами, которые находятся на серверах Интернета.
5. Электронные таблицы. Предоставляют комплексные средства для хранения разных типов данных и их обработки. Основной акцент смещен на преобразование данных, предоставлен широкий спектр методов для работы с числовыми данными. Основная особенность электронных таблиц состоит в автоматическом изменении содержимого всех ячеек при изменении отношений, заданных математическими или логическими формулами.
Широкое применение находят в бухгалтерском учете, анализе финансовых и торговых рынков, средствах обработки результатов экспериментов, то есть в автоматизации регулярно повторяемых вычислений больших объемов числовых данных.
6. Системы автоматизированного проектирования (CAD-системы). Предназначены для автоматизации проектно-конструкторских работ. Применяются в машиностроении, приборостроении, архитектуре. Кроме графических работ, разрешают проводить простые расчеты и выбор готовых конструктивных элементов из существующей базы данных.
Особенность CAD-систем состоит в автоматическом обеспечении на всех этапах проектирования технических условий, норм и правил. САПР являются необходимым компонентом для гибких производственных систем (ГВС) и автоматизированных систем управления технологическими процессами (АСУ ТП).
7. Настольные издательские системы. Автоматизируют процесс верстки полиграфических изданий. Издательские системы отличаются расширенными средствами управления взаимодействия текста с параметрами страницы и графическими объектами, но имеют более слабые возможности по автоматизации ввода и редактирования текста. Их целесообразно применять к документам, которые предварительно обработаны в текстовых процессорах и графических редакторах.
8. Редакторы HTML (Web-редакторы). Особый класс редакторов, объединяющих в себе возможности текстовых и графических редакторов. Предназначены для создания и редактирования Web-страниц Интернета. Программы этого класса можно использовать при подготовке электронных документов и мультимедийних изданий.
9. Браузеры (средства просмотра Web-документов). Программные средства предназначены для просмотра электронных документов, созданных в формате HTML. Восроизводят, кроме текста и графики, музыку, человеческий язык, радиопередачи, видеоконференции и разрешают работать с электронной почтой.
10. Системы автоматизированного перевода. Различают электронные словари и программы перевода языка.
Электронные словари - это средства для перевода отдельных слов в документе. Используются профессиональными переводчиками, которые самостоятельно переводят текст.
Программы автоматического перевода используют текст на одном языке и выдают текст на другом, то есть автоматизируют перевод. При автоматизированном переводе невозможно получить качественный исходный текст, поскольку все сводится к переводу отдельных лексических единиц. Но, для технического текста, этот барьер снижен.
Программы автоматического перевода целесообразно использовать:
· при абсолютном незнании иностранного языка;
· при необходимости быстрого ознакомления с документом;
· для перевода на иностранный язык;
· для создания черновика, который потом будет подправлен полноценным переводом.
11. Интегрированные системы делопроизводства. Средства для автоматизации рабочего места руководителя. В частности, это функции создания, редактирования и форматирования документов, централизация функций электронной почты, факсимильной и телефонной связи, диспетчеризация и мониторинг документооборота предприятия, координация работы подразделов, оптимизация административно-хозяйственной деятельности и поставка оперативной и справочной информации.
12. Бухгалтерские системы. Имеют функции текстовых, табличных редакторов и СУБД. Предназначены для автоматизации подготовки начальных бухгалтерских документов предприятия и их учета, регулярных отчетов по итогам производственной, хозяйственной и финансовой деятельности в форме, приемлемой для налоговых органов, внебюджетных фондов и органов статистического учета.
13. Финансовые аналитические системы. Используют в банковских и биржевых структурах. Разрешают контролировать и прогнозировать ситуацию на финансовых, торговых рынках и рынках сырья, выполнять анализ текущих событий, готовить отчеты.
14. Экспертные системы. Предназначены для анализа данных, содержащихся в базах знаний и выдачи результатов, при запросе пользователя. Такие системы используются, когда для принятия решения нужны широкие специальные знания. Используются в медицине, фармакологии, химии, юриспруденции. С использованием экспертных систем связана область науки, которая носит название инженерии знаний.
Инженеры знаний - это специалисты, являющиеся промежуточным звеном между разработчиками экспертных систем (программистами) и ведущими специалистами в конкретных областях науки и техники (экспертами).
15. Геоинформационные системы (ГИС). Предназначены для автоматизации картографических и геодезических работ на основе информации, полученной топографическим или аэрографическими методами.
16. Системы видеомонтажа. Предназначены для цифровой обработки видеоматериалов, монтажа, создания видеоэффектов, исправления дефектов, добавления звука, титров и субтитров. Отдельные категории представляют учебные, справочные и развлекательные системы и программы. Характерной особенностью являются повышенные требования к мультимедийной составляющей.
17. Инструментальные языки и системы программирования. Эти средства служат для разработки новых программ. Компьютер "понимает" и может выполнять программы в машинном коде. Каждая команда при этом имеет вид последовательности нулей и единиц. Писать программы на машинном языке крайне неудобно. Поэтому программы разрабатываются на языке, понятном человеку (инструментальный язык или алгоритмический язык программирования), после чего, специальной программой, которая называется транслятором, текст программы переводится (транслируется) на машинный код.
Интерпретаторы и компиляторы.
Исследователи,
изучающие вопросы появления разума на нашей планете, полагают, что решающую роль
в его развитии сыграло появление языка, который позволил не только выражать и
сохранять знания, но и обмениваться ими.
С созданием компьютеров, возникла потребность в общении с подобными
устройствами, поскольку оказалось необходимым передавать им приказы, задания и
описания работы, которую они должны выполнять. Для этой цели начали
разрабатывать специальные языки, которые стали называть искусственными в
отличие от естественных языков общения людей. Искусственные языки должны быть,
с одной стороны, удобными и понятными для человека, а с другой - должны
восприниматься устройствами. Совмещение этих требований в одном языке оказалось
трудной задачей, поэтому появились средства для преобразования текстов с языка,
понятного человеку, на язык устройства. Такие средства назвали трансляторами.
1.1.1. Трансляторы , интерпретаторы и компиляторы
Транслятор может быть интерпретирующего или компилирующего типа. В первом случае его называют интерпретатором входного языка, а во втором - компилятором.
Интерпретатор последовательно читает предложения входного языка, анализирует их и сразу же выполняет, а компилятор не выполняет предложения языка, а строит программу, которая может в дальнейшем быть запущена для получения результата.
На вход компилятора подается текст, написанный на входном языке - языке, понятном человеку, а результатом работы компилятора является текст на языке, понятном устройству.
1.1.2. Стадии работы компилятора
Работа компилятора состоит из нескольких стадий, которые могут выполняться последовательно, либо совмещаться по времени. Эти стадии могут быть представлены в виде схемы.
![]() |
Первая стадия работы компилятора называется лексическим анализом, а программа, её реализующая, - лексическим анализатором (ЛА). На вход лексического анализатора подаётся последовательность символов входного языка. ЛА выделяет в этой последовательности простейшие конструкции языка, которые называют лексическими единицами. Примерами лексических единиц являются идентификаторы, числа, символы операций, служебные слова и т.д. ЛА преобразует исходный текст, заменяя лексические единицы их внутренним представлением - лексемами. Лексема может включать информацию о классе лексической единицы и её значении. Кроме того, для некоторых классов лексических единиц ЛА строит таблицы, например, таблицу идентификаторов, констант, которые используются на последующих стадиях компиляции.
Вторую стадию работы компилятора называют синтаксическим анализом, а соответствующую программу - синтаксическим анализатором (СА). На вход СА подается последовательность лексем, которая преобразуется в промежуточный код, представляющий собой последовательность символов действия или атомов. Каждый атом включает описание операции, которую нужно выполнить, с указанием используемых операндов. При этом последовательность расположения атомов, в отличие от лексем, соответствует порядку выполнения операций, необходимому для получения результата.
На третьей стадии работы компилятора осуществляется построение выходного текста. Программа, реализующая эту стадию, называется генератором выходного текста (Г). Генератор каждому символу действия, поступающему на его вход, ставит в соответствие одну или несколько команд выходного языка. В качестве выходного языка могут быть использованы команды устройства, команды ассемблера, либо операторы какого-либо другого языка.
Рассмотренная схема компилятора является упрощенной, поскольку реальные компиляторы, как правило, включают стадии оптимизации.
Построение компилятора
Для построения компилятора необходимо однозначное и точное задание входного и выходного языков. Такое задание предполагает определение правил построения допустимых конструкций (выражений) языка. Множество таких правил называют синтаксисом языка. Кроме того, задание должно включать описание назначения и смысла каждой конструкции языка. Такое описание называют семантикой языка.
Для построения точных и недвусмысленных описаний применяют метод абстракций, который предполагает выделение наиболее существенных свойств рассматриваемого объекта и опускание свойств, менее значимых для рассматриваемого случая. Например, при построении модели входных языков можно рассматривать входной текст как последовательность символов, построенную по определенным правилам, отвлекаясь от характера начертания символов и их расположения на листе. Математические модели, использующие представление текстов в виде цепочек символов, называют формальными языками и грамматиками.
ИНТЕРПРЕТАТОРЫ ТРАНСЛИРУЮТ ТЕКСТ ПРОГРАММЫ И СРАЗУ ЖЕ ВЫПОЛНЯЮТ ПРЕДПИСАННЫЕ В НЕМ ДЕЙСТВИЯ, НЕ СОЗДАВАЯ .ЕХЕ-ФАЙЛ. КОМПИЛЯТОРЫ ТРАНСЛИРУЮТ ТЕКСТ ПРОГРАММЫ И СОЗДАЮТ ГОТОВУЮ К ИСПОЛНЕНИЮ ПРОГРАММУ В ВИДЕ .ЕХЕ-ФАЙЛА, КОТОРЫЙ МОЖНО БУДЕТ ПОСЛЕ ЗАПУСТИТЬ НА ИСПОЛНЕНИЕ.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.