Комплекс программ предназначенный для автоматизации программирования это
Понятие, назначение и составные элементы систем программирования.
Неотъемлемая часть современных ЭВМ – системы программного обеспечения, являющиеся логическим продолжением логических средств ЭВМ, расширяющим возможности аппаратуры и сферу их использования. Система программного обеспечения, являясь посредником между человеком и техническими устройствами машины, автоматизирует выполнение тех или иных функций в зависимости от профиля специалистов и режимов их взаимодействия с ЭВМ. Основное назначение программного обеспечения – повышение эффективности труда пользователя, а также увеличение пропускной способности ЭВМ посредством сокращения времени и затрат на подготовку и выполнение программ. Программное обеспечение ЭВМ можно подразделить на общее и специальное программное обеспечение.
Общее программное обеспечение реализует функции, связанные с работой ЭВМ, и включает в себя системы программирования, операционные системы, комплекс программ технического обслуживания.
Специальное программное обеспечение включает в себя пакеты прикладных программ, которые проблемно ориентированы на решение вполне определенного класса задач.
Системой программирования называется комплекс программ, предназначенный для автоматизации программирования задач на ЭВМ. Система программирования освобождает проблемного пользователя или прикладного программиста от необходимости написания программ решения своих задач на неудобном для него языке машинных команд и предоставляют им возможность использовать специальные языки более высокого уровня. Для каждого из таких языков, называемых входными или исходными, система программирования имеет программу, осуществляющую автоматический перевод (трансляцию) текстов программы с входного языка на язык машины. Обычно система программирования содержит описания применяемых языков программирования, программы-трансляторы с этих языков, а также развитую библиотеку стандартных подпрограмм. Важно различать язык программирования и реализацию языка.
Язык – это набор правил, определяющих систему записей, составляющих программу, синтаксис и семантику используемых грамматических конструкций.
Реализация языка – это системная программа, которая переводит (преобразует) записи на языке высокого уровня в последовательность машинных команд.
Имеется два основных вида средств реализации языка: компиляторы и интерпретаторы.
Компилятор транслирует весь текст программы, написанной на языке высокого уровня, в ходе непрерывного процесса. При этом создается полная программа в машинных кодах, которую затем ЭВМ выполняет без участия компилятора.
Интерпретатор последовательно анализирует по одному оператору программы, превращая при этом каждую синтаксическую конструкцию, записанную на языке высокого уровня, в машинные коды и выполняя их одна за другой. Интерпретатор должен постоянно присутствовать в зоне основной памяти вместе с интерпретируемой программой, что требует значительных объемов памяти.
Следует заметить, что любой язык программирования может быть как интерпретируемым, так и компилируемым, но в большинстве случаев у каждого языка есть свой предпочтительный способ реализации. Языки Фортран, Паскаль в основном компилируют; язык Ассемблер почти всегда интерпретирует; языки Бейсик и Лисп широко используют оба способа.
Основным преимуществом компиляции является скорость выполнения готовой программы. Интерпретируемая программа неизбежно выполняется медленнее, чем компилируемая, поскольку интерпретатор должен строить соответствующую последовательность команд в момент, когда инструкция предписывает выполнение.
В то же время интерпретируемый язык часто более удобен для программиста, особенно начинающего. Он позволяет проконтролировать результат каждой операции. Особенно хорошо такой язык подходит для диалогового стиля разработки программ, когда отдельные части программы можно написать, проверить и выполнить в ходе создания программы, не отключая интерпретатора.
По набору входных языков различают системы программирования одно- и многоязыковые. Отличительная черта многоязыковых систем состоит в том, что отдельные части программы можно составлять на разных языках и помощью специальных обрабатывающих программ объединять их в готовую для исполнения на ЭВМ программу.
Для построения языков программирования используется совокупность общепринятых символов и правил, позволяющих описывать алгоритмы решаемых задач и однозначно истолковывать смысл созданного написания. Основной тенденцией в развитии языков программирования является повышение их семантического уровня с целью облегчения процесса разработки программ и увеличения производительности труда их составителей.
По структуре, уровню формализации входного языка и целевому назначению различают системы программирования машинно-ориентированные и машинно-независимые.
Машинно-ориентированные системы программирования имеют входной язык, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машинно-ориентированные системы позволяют использовать все возможности и особенности машинно-зависимых языков:
· высокое качество создаваемых программ;
· возможность использования конкретных аппаратных ресурсов;
· предсказуемость объектного кода и заказов памяти;
· для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;
· трудоемкость процесса составления программ (особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок;
· низкая скорость программирования;
· невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.
Машинно-ориентированные системы по степени автоматического программирования подразделяются на классы:
1. Машинный язык. В таких системах программирования отдельный компьютер имеет свой определенный Машинный Язык (далее МЯ), ему предписывают выполнение указываемых операций над определяемыми ими операндами, поэтому МЯ является командным. Однако, некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый МЯ для ЭВМ разной мощности. В команде любого из них сообщается информация о местонахождении операндов и типе выполняемой операции. В новых моделях ЭВМ намечается тенденция к повышению внутренних языков машинно-аппаратным путем реализовывать более сложные команды, приближающиеся по своим функциональным действиям к операторам алгоритмических языков программирования.
2. Система Символического Кодирования. В данных системах используются Языки Символического Кодирования (далее ЯСК), которые так же, как и МЯ, являются командными. Однако коды операций и адреса в машинных командах, представляющие собой последовательность двоичных (во внутреннем коде) или восьмеричных (часто используемых при написании программ) цифр, в ЯСК заменены символами (идентификаторами), форма написания которых помогает программисту легче запоминать смысловое содержание операции. Это обеспечивает существенное уменьшение числа ошибок при составлении программ. Использование символических адресов – первый шаг к созданию ЯСК. Команды ЭВМ вместо истинных (физических) адресов содержат символические адреса. По результатам составленной программы определяется требуемое количество ячеек для хранения исходных промежуточных и результирующих значений. Назначение адресов, выполняемое отдельно от составления программы в символических адресах, может проводиться менее квалифицированным программистом или специальной программой, что в значительной степени облегчает труд программиста.
3. Автокоды. Существуют системы программирования, использующие языки, которые включают в себя все возможности ЯСК, посредством расширенного введения макрокоманд – они называются Автокоды. В различных программах встречаются некоторые достаточно часто использующиеся командные последовательности, которые соответствуют определенным процедурам преобразования информации. Эффективная реализация таких процедур обеспечивается оформлением их в виде специальных макрокоманд и включением последних в язык программирования, доступный программисту. Макрокоманды переводятся в машинные команды двумя путями – расстановкой и генерированием. В постановочной системе содержатся «остовы» – серии команд, реализующие требуемую функцию, обозначенную макрокомандой. Макрокоманды обеспечивают передачу фактических параметров, которые в процессе трансляции вставляются в «остов» программы, превращая её в реальную машинную программу. В системе с генерацией имеются специальные программы, анализирующие макрокоманду, которые определяют, какую функцию необходимо выполнить и формируют необходимую последовательность команд, реализующих данную функцию. Обе указанных системы используют трансляторы с ЯСК и набор макрокоманд, которые также являются операторами автокода. Развитые автокоды получили название Ассемблеры. Сервисные программы и пр., как правило, составлены на языках типа Ассемблер.
4. Макрос. В таких системах язык, являющийся средством для замены последовательности символов описывающих выполнение требуемых действий ЭВМ на более сжатую форму – называется Макрос (средство замены). В основном, Макрос предназначен для того, чтобы сократить запись исходной программы. Компонент программного обеспечения, обеспечивающий функционирование макросов, называется макропроцессором. На макропроцессор поступает макросопределяющий и исходный текст. Реакция макропроцессора на вызов – выдача выходного текста. Макрос одинаково может работать, как с программами, так и с данными.
Машинно-независимые системы программирования – это средство описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от них знания особенностей организации функционирования ЭВМ. В таких системах программы, составляемые языках, имеющих название высокоуровневых языков программирования, представляют собой последовательности операторов, структурированные согласно правилам рассматривания языка (задачи, сегменты, блоки и т.д.). Операторы языка описывают действия, которые должна выполнять система после трансляции программы на МЯ. Таким образом, командные последовательности (процедуры, подпрограммы), часто используемые в машинных программах, представлены в высокоуровневых языках отдельными операторами. Программист получил возможность не расписывать в деталях вычислительный процесс на уровне машинных команд, а сосредоточиться на основных особенностях алгоритма.
Среди машинно-независимых систем программирования следует выделить:
2. Проблемно-ориентированные системы в качестве входного языка используют язык программирования с проблемной ориентацией. С расширением областей применения вычислительной техники возникла необходимость формализовать представление постановки и решение новых классов задач. Необходимо было создать такие языки программирования, которые, используя в данной области обозначения и терминологию, позволили бы описывать требуемые алгоритмы решения для поставленных задач. Эти языки, ориентированные на решение определенных проблем, должны обеспечить программиста средствами, позволяющими коротко и четко формулировать задачу и получать результаты в требуемой форме. Программы, составленные на основе этих языков программирования, записаны в терминах решаемой задачи и реализуются выполнением соответствующих процедур.
3. Диалоговые языки. Появление новых технических возможностей поставило задачу перед системными программистами – создать программные средства, обеспечивающие оперативное взаимодействие человека с ЭВМ их назвали диалоговыми языками. Создавались специальные управляющие языки для обеспечения оперативного воздействия на прохождение задач, которые составлялись на любых раннее неразработанных (не диалоговых) языках. Разрабатывались также языки, которые кроме целей управления обеспечивали бы описание алгоритмов решения задач. Необходимость обеспечения оперативного взаимодействия с пользователем потребовала сохранения в памяти ЭВМ копии исходной программы даже после получения объектной программы в машинных кодах. При внесении изменений в программу система программирования с помощью специальных таблиц устанавливает взаимосвязь структур исходной и объектной программ. Это позволяет осуществить требуемые редакционные изменения в объектной программе.
4. Непроцедурные языки. Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами. Позволяя четко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны выполнятся, прежде чем переходить к какому-либо действию. Одна таблица решений, описывающая некоторую ситуацию, содержит все возможные блок-схемы реализаций алгоритмов решения. Табличные методы легко осваиваются специалистами любых профессий. Программы, составленные на табличном языке, удобно описывают сложные ситуации, возникающие при системном анализе.
В самом общем случае для создания программы на выбранном языке программирования нужно иметь следующие компоненты.
1. Текстовый редактор. Специализированные текстовые редакторы, ориентированные на конкретный язык программирования, необходимы для получения файла с исходным текстом программы, который содержит набор стандартных символов для записи алгоритма.
2. Исходный текст с помощью программы-компилятора переводится в машинный код. Исходный текст программы состоит, как правило, из нескольких модулей (файлов с исходными текстами). Каждый модуль компилируется в отдельный файл с объектным кодом, которые затем требуется объединить в одно целое. Кроме того, системы программирования, как правило, включают в себя библиотеки стандартных подпрограмм. Стандартные подпрограммы имеют единую форму обращения, что создает возможности автоматического включения таких подпрограмм в вызывающую программу и настройки их параметров.
3. Объектный код модулей и подключенные к нему стандартные функции обрабатывает специальная программа – редактор связей. Данная программа объединяет объектные коды с учетом требований операционной системы и формирует на выходе работоспособное приложение – исполнимый код для конкретной платформы. Исполнимый код это законченная программа, которую можно запустить на любом компьютер, где установлена операционная система, для которой эта программа создавалась.
4. В современных системах программирования имеется еще один компонент – отладчик, который позволяет анализировать работу программы во время ее исполнения. С его помощью можно последовательно выполнять отдельные операторы исходного текста последовательно, наблюдая при этом, как меняются значения различных переменных.
5. В последние несколько лет в программировании (особенно для операционной среды Windows) наметился так называемый визуальный подход. Этот процесс автоматизирован в средах быстрого проектирования. При этом используются готовые визуальные компоненты, свойства и поведение которых настраиваются с помощью специальных редакторов. Таким образом, происходит переход от языков программирования системного уровня к языкам сценариев.
Эти языки создавались для различных целей, что обусловило ряд фундаментальных различий между ним. Системные разрабатывались для построения структур данных и алгоритмов “с нуля”, начиная от таких примитивных элементов, как слово памяти компьютера. В отличие от этого, языки описания сценариев создавались для связывания готовых программ. Их применение подразумевает наличие достаточного ассортимента мощных компонентов, которые требуется только объединить друг с другом. Языки системного уровня используют строгий контроль типов данных, что помогает разработчикам приложении справляться со сложными задачами. Языки описания сценариев не используют понятие типа, что упрощает установление связей между компонентами, а также ускоряет разработку прикладных систем.
Языки описания сценариев основаны на несколько другом наборе компромиссов, чем языки системного уровня. В них скорость исполнения и строгость контроля типов ставятся в шкале приоритетов на более низкое место, но зато выше цениться производительность труда программиста и повторное использование. Это соотношение ценностей оказывается все более обоснованным по мере того, как компьютеры становятся быстродействующими и менее дорогими, чего нельзя сказать о программистах. Языки системного программирования хорошо подходят для создания компонентов, где основная сложность заключена в реализации алгоритмов и структур данных, тогда как языки описания сценариев лучше приспособлены для построения приложении из готовых компонентов, где сложность состоит в налаживании межкомпонентных связей. Задачи последнего рода получают все большее распространение, так что роль языков описания сценариев будет возрастать.
1. В.Ю. Демьяненко. Программные средства создания и ведения баз данных. –М.: Финансы и статистика, 1984.
2. В.А. Мясников, С.А. Майоров, Г.И. Новиков. ЭВМ для всех. –М.: Знание, 1985.
3. А.Г. Гейн. Основы информатики и вычислительной техники. –М.: Просвещение, 1997.
4. В.Ф. Ляхович. Основы информатики. –Ростов-на-Дону: Феникс, 1996.
5. Вычислительная техника и программирование / Под ред. А.В. Петрова –М.: Высш. шк., 1990.
Системой программирования называется комплекс программ, предназначенный для автоматизации программирования задач на ЭВМ . Система программирования освобождает проблемного пользователя или прикладного программиста от необходимости написания программ решения своих задач на неудобном для него языке машинных команд, и предоставляют им возможность использовать специальные языки более высокого уровня. Для каждого из таких языков, называемых входными или исходными, система программирования имеет программу, осуществляющую автоматический перевод (трансляцию) текстов программы с входного языка на язык машины. Обычно система программирования содержит описания применяемых языков программирования, программы-трансляторы с этих языков, а также развитую библиотеку стандартных подпрограмм. Важно различать язык программирования и реализацию языка.
Язык программирования– это набор правил, определяющих систему записей, составляющих программу, синтаксис и семантику используемых грамматических конструкций.
Реализация языка – это системная программа, которая переводит (преобразует) записи на языке высокого уровня в последовательность машинных команд.
Имеется два основных вида средств реализации языка: компиляторы и интерпретаторы.
Компилятор транслирует весь текст программы, написанной на языке высокого уровня, в ходе непрерывного процесса. При этом создается полная программа в машинных кодах, которую затем ЭВМ выполняет без участия компилятора.
Интерпретатор последовательно анализирует по одному оператору программы, превращая при этом каждую синтаксическую конструкцию, записанную на языке высокого уровня, в машинные коды и выполняя их одна за другой. Интерпретатор должен постоянно присутствовать в зоне основной памяти вместе с интерпретируемой программой, что требует значительных объемов памяти.
Машинно-ориентированные системы программирования имеют входной язык, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машинно-ориентированные системы позволяют использовать все возможности и особенности машинно-зависимых языков:
Программное обеспечение – комплекс программных и документальных средств, для создания и эксплуатации компьютерных систем.
В зависимости от функций и назначения ПО подразделяется на: Базовое (системное) ПО, Системы программирования, Прикладное программное обеспечение (или инструментальные программы).
Базовое ПО – совокупность программ обеспечивающих нормальную работу ПК. Предназначено для эксплуатации и технического обслуживания. ПК, управления и организации вычислительного процесса при работе прикладных программ.
Операционные системы – программные средства, предназначенные для согласования работы и наиболее эффективного использования всех средств ПК в процессе решения задачи. Обеспечивает управление процессом обработки информации и взаимодействия между аппаратными средствами и пользователем.
1.1 Однозадачные ОС – предназначены для работы одного пользователя с одной конкретной задачей ( МS-DOS).
1.2 Многозадачные ОС – обеспечивают коллективное использование ПК в мультипрограммном режиме разделения времени. В памяти ПК находится несколько программ- задач, - и процессор распределяет ресурсы ПК между задачами ( UNIX, OS/2 фирмы IBM, Windows 95,98, NT фирмы Microsoft).
1.3 Сетевые операционные системы – предназначены для обеспечения доступа пользователя ко всем ресурсам вычислительной сети (Novel Net Ware, Windows NT, UNIX).
Основные функции ОС:
1) Создание и ведение библиотеки данных и программ ( файловой системы)
2) Связь ПК с внешними устройствами.
3) Организация общения пользователя с ПК
Основные тенденции развития ОС:
- Снижение цен на ОС
- Обеспечение работы много процессорных ПК
- Обеспечение совместимости программ для различных типов (поколений) ПК
- Обеспечение выполнения параллельных программ
- Создание ОС, в которых отдельные функции реализуются на разных ПК, образующих распределенную сеть.
Сервисные программы – программные средства, предоставляющие пользователю дополнительные услуги в работе с ПК и расширяющие возможности ОС
По функциональным возможностям подразделяются на:
1) Улучшающие пользовательский интерфейс
2) Защищающие данные от несанкционированного доступа
3) Восстанавливающие данные
4) Ускоряющие обмен данными между диском и ОЗУ
5) Обеспечивающие нормальную работу внешних устройств
6) Архивации – разархивации
7) Антивирусные средства
2.1 Оболочки – являются надстройками над ОС.
Предоставляют пользователю качественно новый интерфейс и освобождают его от детального знания операций и команд ОС. Выполняют роль посредника между ОС и пользователем.
2.2 Утилиты – предоставляют дополнительные услуги по обслуживанию дисков и файловой системы (Norton Utilities).
2.3 Драйверы внешних устройств – программы, обеспечивающие работу внешних устройств и расширяющие их возможности.
2.4 Программы антивирусной защиты - обеспечивают диагностику (обнаружение) и лечение вирусов.
Программы технического обслуживания – предназначены для диагностики и обнаружения ошибок в процессе работы ПК или оптимизации некоторых устройств
3.1 Тестовые программы – средства диагностики и тестового контроля правильности работы ПК
3.2 Специальные программы контроля – осуществляющие автоматическую проверку работоспособности системы перед очередным сеансом
Системы программирования – комплекс средств, включающих в себя входной язык программирования, транслятор, машинный язык, библиотеки стандартных программ, средства отладки оттранслированных программ и компоновки их в единое целое.
1. Язык программирования – это совокупность операций записанных с соблюдением синтаксических и логических правил. Подразделяются на:
1) Машинно-ориентированные языки (ассемблер)
2) Алгоритмические языки (Basic C++, Fortran, Pascal)
Трансляторы языка программирования – программы переводящие текст с языка программирования на машинный язык (двоичные коды).
По способу перевода подразделяются на:
1) Интерпретаторы – каждый оператор входного языка программирования транслируется в одну или несколько машинных команд, которые тут же выполняются без сохранения на диске. При интерпретации программа на машинном языке не сохраняется и при запуске исходной программы ее нужно (пошагово) транслировать заново.
Ассемблер - мнемоническая (условная) запись машинных команд. Позволяет получить высокоэффективные программы на машинном языке.
Библиотека стандартных программ – программа в которой приведены значения различных математических функций ( sin x, ln x и т.д.)
Компановщик – программа, объединяющая введенную программу ( или ее модули) с библиотекой программ.
Отладчик – программа, позволяющая обнаружить синтаксические и логические ошибки в программе (Debug).
Прикладное программное обеспечение – предназначено для разработки и выполнения конкретных задач (приложений) пользователя. Работает под управлением базового ПО.
В состав Прикладного ПО входят:
1 Пакеты прикладных программ (ППП) различного назначения.
2 Оригинальные рабочие программы пользователя.
Пакеты прикладных программ – комплекс программ, предназначенный для решения задач определенного класса. Практически полностью освобождает пользователя от необходимости знать, как выполняет ПК те или иные функции и процедуры по обработке информации.
1. Общего назначения ППП– универсальные программные продукты предназначены для автоматизации разработки и эксплуатации функциональных задач.
1.1 Редакторы:
1) Текстовые – для обработки текстовой информации
2) Графические – для обработки графических документов включая диаграммы, иллюстрации, чертежи, таблицы.
3) Издательские системы – соединяют в себе возможности текстовых и графических редакторов (форматирование полос с графическим материалом и последующим выводом на печать).
1.2 Электронные таблицы – позволяют избавиться от рутинной работы при обработке табличных данных.
1.3 СУБД – используется для создания внутримашинного информационного обеспечения.
Кроме языка программирования содержат средства организации данных в виде структур требуемых пользователем.
База данных - это совокупность специально организованных наборов данных хранящихся на диске.
Базы данных являются ядром автоматизированных информационных систем АИС. А все начиналось с создания программы для хранения в ЭВМ простой картотеки.
По способу организации данных БД подразделяются на: сетевые, иерархические, распределенные, реляционные СУБД.
1.4 Интегрированные пакеты включают в себя: текстовой процессор, электронную таблицу, графический редактор, СУБД и коммуникационный модуль. Они предоставляют неоспоримые преимущества в интерфейсе, но повышают требования к ОЗУ.
1.5 Экспертные системы – системы обработки знаний в узко специализированной области.
Основу ЭС составляет база знаний в которой заключается информация о данной предметной области. Основная идея заключается в переходе от формализованных алгоритмов предписывающих, как решать задачу к логическому программированию с указанием, что нужно решать на базе знаний наколенных специалистами. Существует две формы представления знаний в ЭС: факты и правила.
2. Метод-ориентированные ППП – в их основе реализован какой либо экономико-математический метод.
§ Математического программирования (линейного, динамического и т.д.)
§ Теории массового обслуживания
§ Математической статистики сетевого планирования и управления
3. Проблемно-ориентированные ППП – наиболее широкий класс пакетов предназначены для решения какой-либо задачи в конкретной области. Из всего многообразия выделяется несколько групп:
1) комплексные для предприятий – автоматизированные системы для управления предприятием (АСУП) на базе интегрированных информационных систем, ориентированных не на майн фрейм, а на архитектуру клиент сервер, строятся на основе многозадачных, многопользовательских ОС и реляционных баз данных и имеют графический интерфейс.
2) Комплексные для непромышленной сферы – автоматизирующие банковскую финансовую и правовую сферу (банки, биржы, торговля)
3) Отдельных предметных областей
§ Бухгалтерскго учета –1С Бугалтерия, Инфобухгалтер, Бэст, Парус.
§ Финансового менеджмента – появились в связи с необходимостью финансового планирования и анализа деятельности фирмы ( например для оценки эффективности инвестиций). Альтфинансы, Финансовый анализ.
§ Правовые справочные системы – представляют собой инструмент для работы с огромным объемом законодательной информации. (Консультант плюс, Гарант).
.Оригинальные рабочие программы – есть задачи, которые нельзя решить имеющимися ППП. В этом случае с помощью алгоритмических языков разрабатываются оригинальные программы, учитывающие требования и условия задачи (АРМы).
Понятие операционной системы
Операционная система- это основной программный инструмент, "вдыхающий жизнь" в компьютер. Операционная система осуществляет координацию всех внутренних процессов машины - контролирует операции обмена с дисками, организует вывод информации на экран, "понимает" клавиатуру и т.п. Подобно дирижеру, она организует гармоничное взаимодействие сложнейшей аппаратуры с ее прикладным программным обеспечением, обеспечивая тем самым выполнение поставленной задачи. Прикладные программы, написанные для одной операционной системы, не могут работать под управлением другой, если в ней не обеспечена возможность конвертации (преобразования) программ. Поэтому для каждой из операционных систем создается свой набор прикладных программ (приложений).
Назначение ОС состоит в том, чтобы скрыть от пользователя сложные и ненужные ему подробности работы отдельных устройств персонального компьютера. Дело в том, что действия по управлению ресурсами компьютера, которые необходимо выполнить пользователю и прикладным программам – это операции очень низкого уровня и на самом деле состоят из нескольких сотен и даже тысяч элементарных операций. Например, для выполнения такого несложного действия, как копирование файла с одной дискеты на другую, необходимо выполнить тысячи различных операций.
Операционная система – совокупность программных средств, обеспечивающих управление ресурсами персонального компьютера и прикладными программами, а также их взаимодействие между собой и пользователем.
Ресурсом является любой компонент ПК и предоставляемые им возможности: центральный процессор, оперативная память, внешнее устройство и т.д.
Операционная система выполняет следующие функции:
· управление работой каждого блока персонального компьютера и их взаимодействием
· запуск и управление выполнением программ
· организацию хранения информации во внешней памяти
· взаимодействие пользователя с компьютером, т.е. поддержку интерфейса пользователя
Для работы с операционной системой необходимо овладеть языком этой среды – совокупностью команд или перечнем возможных процедур управления компьютером.
Интерфейс – совокупность средств и правил, которые обеспечивают взаимодействие устройств, программ и человека.
Известно множество разновидностей интерфейсов: интерфейс пользователя, графический интерфейс, интерфейс ввода-вывода, интеллектуальный интерфейс, программный интерфейс др.
Пользовательский интерфейс – это программные и аппаратные средства, обеспечивающие взаимодействие пользователя с персональным компьютером. Он может быть командным или объектно – ориентированным.
Командный интерфейс предполагает ввод пользователем команд с клавиатуры дпя управления ресурсами компьютера.
Объектно – ориентированный интерфейс - это управление ресурсами компьютера посредством операций над объектами (файлами, каталогами, дисководами, программами, документами и т.д.
В персональных компьютерах используются различные операционные системы. Наиболее распространены операционные системы фирмы Microsoft - MS-DOS и Windows 95/98, а также операционная система фирмы IBM - OS/2.
Пакет прикладных программ – это комплекс программ, предназначенный для решения определённого класса задач по некоторой тематике.
ППП общего назначения - универсальные программные продукты, предназначенные для автоматизации разработки и эксплуатации функциональных задач пользователя.
К этому классу ППП относятся:
редакторы: текстовые (Word, WordPad) и графические (CorelDraw,PhotoShop);
электронные таблицы (Excel, Lotus 1-2-3);
системы управления базами данных (Access, Oracle);
средства подготовки презентаций (PowerPoint);
системы автоматизации проектирования (AutoCad);
оболочки экспертных систем и систем искусственного интеллекта и др.
Специальное ПО включает на методо-ориентированные ППП и проблемно-ориентированные ППП.
Методо-ориентированные ППП характеризуются тем, что в их алгоритмической основе реализован какой-либо экономико-математический метод, используемый для решения задач. К пакетам этой категории относятся программные средства, реализующие методы математического программирования (линейного, динамического, статистического и т. д.) , cетевого планирования и управления, теории массового обслуживания; математической статистики и др.
Данный класс включает программные продукты, обеспечивающие, независимо от предметной области и функции информационных систем, математические, статические и другие методы решения задач. Наиболее распространены методы математического программирования, решение дифференциальных уравнений, имитационного моделирования, исследования операций.
Методы статистической обработки и анализа данных (описательная статистика, регрессионный анализ, прогнозирование значений технико-экономических показателей и т. п. ) имеют широкое применение. Так, современные табличные процессоры значительно расширили набор встроенных функций, реализующих статистическую обработку и информационные технологии статистического анализа. Вместе с тем необходимость в использовании специализированных программных средств статистической обработки, обеспечивающих высокую точность и многообразие статистических методов, также растёт. На базе методов сетевого планирования с экономическими показателями проекта, формированием отчётов различного вида оформилось новое направление программных средств – управление проектами, пользователями этих программ являются менеджеры проектов.
Пакет прикладных программ – это комплекс программ, предназначенный для решения определённого класса задач по некоторой тематике.
ППП общего назначения - универсальные программные продукты, предназначенные для автоматизации разработки и эксплуатации функциональных задач пользователя.
К этому классу ППП относятся:
редакторы: текстовые (Word, WordPad) и графические (CorelDraw,PhotoShop);
электронные таблицы (Excel, Lotus 1-2-3);
системы управления базами данных (Access, Oracle);
средства подготовки презентаций (PowerPoint);
системы автоматизации проектирования (AutoCad);
оболочки экспертных систем и систем искусственного интеллекта и др.
Специальное ПО включает на методо-ориентированные ППП и проблемно-ориентированные ППП.
Методо-ориентированные ППП характеризуются тем, что в их алгоритмической основе реализован какой-либо экономико-математический метод, используемый для решения задач. К пакетам этой категории относятся программные средства, реализующие методы математического программирования (линейного, динамического, статистического и т. д.) , cетевого планирования и управления, теории массового обслуживания; математической статистики и др.
Для удобной разработки программ существуют специальные средства их создания, — системы (среды) программирования, которые обеспечивают весь цикл работы с программой — от ее разработки до выполнения и получения необходимых результатов.
Система программирования — это комплекс программных средств, предназначенных для автоматизации процесса подготовки и выполнения программ пользователя.
Назначение и состав систем программирования
Рассмотрим основные составляющие системы программирования:
- Редактор текста
- Язык программирования
- Библиотека подпрограмм
- Редактор связей (компоновщик)
- Транслятор
- Отладчик
Для сознательного понимания назначения составляющих системы программирования опишем этапы процесса разработки программы, связанные с использованием компьютера.
Редактор исходного кода
Вводим текст разработанной программы, которую называют исходным кодом, в компьютер и храним в памяти. Для этого система программирования имеет редактор текста, который обеспечивает ввод и редактирование исходного кода.
Компиляция и интерпретация
После введения программы и исправления ошибок, которые могли произойти во время ввода, осуществляется преобразование программы с языка программирования высокого уровня в двоичный код.
Такое преобразование осуществляется с помощью транслятора программ.
Различают два типа трансляторов: компиляторы и интерпретаторы.
В процессе интерпретации исходных текстов программ каждая команда (инструкция) последовательно превращается в двоичный код и сразу выполняется — на экране высвечивается результат ее выполнения. После завершения одной команды выполняется следующая и так далее до последней команды. Но результат преобразования не сохраняется, и каждый запуск программы начинается сначала.
В процессе компиляции осуществляется преобразование всего текста программного кода в двоичный код. Полученную после компиляции программу называют объектным модулем. Такая программа еще не готова к выполнению.
Исходный код обычно содержит ссылки на другие модули (подпрограммы), которые содержатся в библиотеке подпрограмм (например, модуль вычисления квадратного корня). Таким образом, к программному модуля нужно добавить коды необходимых подпрограмм, чтобы подготовить программу для исполнения.
Компилируемая программы выполняются быстрее интерпретируемых. Режим интерпретации нуждается в дополнительной основной памяти, поскольку интерпретатор должен все время храниться вместе с кодом. Но интерпретация в работе удобнее. Особенно для программистов, которые только начинают работать с системами программирования, так контролируется результат каждой команды.
Компоновка
После компиляции компоновщик (редактор связей) «склеивает» отдельные двоичные модули в единую программу, которая называется исполняемой программой. Этот процесс представлены на схеме:
Исходный код программы -> компилятор -> объектный модуль -> библиотека подпрограмм -> редактор связей -> выполняемая программа
Для дальнейшего выполнения программного кода, компилятор не нужен. Итак, после компиляции программа представлена двоичными символами 1 и 0 и готова к исполнению на компьютере.
Отладка и тестирование
Полученная программа, даже если она выполняется, не гарантирует, что нет логических ошибок. Она может выполняться, но результат исполнения может быть неправильным. Поэтому нужно провести тестирование (испытания) программы на предмет выявления и устранения в ней логических ошибок.
Тестирование — достаточно ответственный этап. В крупных IT-компаниях над разработкой программ, которые называют проектами, работают десятки и даже сотни программистов разных направлений. Одни из них разрабатывают проекты, другие занимаются тестированием программ, экономическим обоснованием и тому подобное.
На этом этапе применяется отладчик программ, который позволяет пошагово анализировать программу. Отладчик позволяет выполнять трассировку программы, устанавливать и удалять контрольные точки в программах, условия приостановления выполнения программы и тому подобное.
Создание переносимых программ
Описанный выше процесс разработки программ является классическим для процедурных языков программирования. Для программ, разработанных языком ООП, есть отличия. Их сущность заключается в том, что после компиляции создается не машинный, а промежуточный код, так называемый байт-код. С помощью специального программного обеспечения он затем превращается в машинный.
Такой подход обусловлен тем, что в Интернете свободно перемещаются данные и программы (апплеты — небольшие программы, предназначенные для передачи через Интернет и выполнения в браузере, совместимом с языком программирования). Их нужно защитить от вирусов и других вредоносных программ, а также реализовать переносимость программ.
Под переносимостью понимают возможность загрузки и выполнения апплета на компьютерах с любым типом процессора, любой операционной системой и браузером, подключен к Интернету. Именно эти проблемы и позволяет решить байт-код.
Понятно, что использование любого промежуточного кода, в том числе и байт-кода, снижает скорость выполнения программ и требует дополнительных аппаратных средств. Впрочем, эти потери незначительны по сравнению с полученным выигрышем. Если бы ООП-программа сразу компилировалась в машинный код, то для каждого компьютера со своим типом процессора необходимо было бы иметь отдельную версию той самой программы, что экономически крайне невыгодно.
Иногда используются так называемые динамические компиляторы. Их сущность заключается в том, что байт-код компилируется в машинный код не весь сразу, а отдельными фрагментами, по мере необходимости. Другие части кода могут выполняться в режиме интерпретации. Тем самым достигается высокая эффективность работы с кодом.
Примеры систем программирования
Системы (среды) программирования часто именуются по названию языка, например среда Pascal, среда Delphi. Иногда название системы содержит префикс, указывающий на разработчика среды: название системы Turbo-C означает, что ее разработчиком является фирма Borland.
Сегодня все чаще используются интегрированные среды программирования, которые обеспечивают работу с несколькими языками. Такими системами являются, например, IntelliJ IDEA, Eclipse. Вариант Ultimate Edition системы IDEA обеспечивает работу с языками программирования Java, PHP, Python.
Некоторые системы программирования поддерживают как режим интерпретации, так и режим компиляции программ.
Далее, в процессе описания языка программирования Python, мы будем применять среду IDLE.
Читайте также: