Инструментальное программное средство. Задачи и функции инструментального программного обеспечения

1. Классификация программного обеспечения

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

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

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

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

    управление ресурсами компьютера;

    создание копий используемой информации;

    проверка работоспособности устройств компьютера;

    выдача справочной информации о компьютере и др.;

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

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

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

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

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

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

На сегодняшний день можно сказать, что более или менее определённо сложились следующие группы программного обеспечения:

    операционные системы и оболочки;

    системы программирования (трансляторы, библиотеки подпрограмм, отладчики и т.д.);

    инструментальные системы;

    интегрированные пакеты программ;

    динамические электронные таблицы;

    системы машинной графики;

    системы управления базами данных (СУБД);

    прикладное программное обеспечение.

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

Операционная система (ОС) -система программ, предназначенная для управления устройствами ЭВМ, управления обработкой и хранением данных, обеспечения пользовательского интерфейса.

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

В функции операционной системы входит:

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

В зависимости от количества одновременно обрабатываемых задач и числа пользователей, которых могут обслуживать ОС, различают четыре основных класса операционных систем:

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

2. однопользовательские однозадачные с фоновой печатью , которые позволяют помимо основной задачи запускать одну дополнительную задачу, ориентированную, как правило, на вывод информации на печать. Это ускоряет работу при выдаче больших объёмов информации на печать;

3. однопользовательские многозадачные , которые обеспечивают одному пользователю параллельную обработку нескольких задач. Например, к одному компьютеру можно подключить несколько принтеров, каждый из которых будет работать на "свою" задачу;

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

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

Операционная система для персонального компьютера, ориентированного на профессиональное применение, должна содержать следующие основные компоненты:

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

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

Для управления внешними устройствами компьютера используются специальные системные программы - драйверы. Драйверы стандартных устройств образуют в совокупности базовую систему ввода-вывода (BIOS), которая обычно заносится в постоянное ЗУ компьютера.

Современные операционные системы для ПЭВМ отличаются друг от друга, прежде всего ориентацией на машины определенного класса, поддерживаемыми ими режимами обработки, предоставляемыми сервисными возможностями. Примерами ОС для ПЭВМ являются СР/М, MS DOS, OS/2 Warp (IBM), Windows 95 (Microsoft).

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

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

    редакторы;

    средства компоновки программ;

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

    вспомогательные программы, реализующие часто используемые системные действия;

    графические пакеты программ и т.п.

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

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

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

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

2. Перевод текста создаваемой программы в машинно-ориентированный код, доступный для распознавания ЭВМ. В случае значительного объема создаваемой программы, она разбивается на отдельные модули и каждый из модулей переводится отдельно.

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

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

Виды инструментального программного обеспечения

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

1) Текстовые редакторы

2) Интегрированные среды разработки

4) Компиляторы

5) Интерпретаторы

6) Линковщики

7) Парсеры и генераторы парсеров (см. Javacc)

8) Ассемблеры

9) Отладчики

10) Профилировщики

11) Генераторы документации

12) Средства анализа покрытия кода

13) Средства непрерывной интеграции

14) Средства автоматизированного тестирования

15) Системы управления версиями и др.

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

Текстовые редакторы.

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

Типы текстовых редакторов.

Условно выделяют два типа редакторов: потоковые текстовые редакторы и интерактивные.

1) Потоковые текстовые редакторы

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

2) Интерактивные текстовые редакторы

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

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

Текстовые редакторы предназначены для создания и редактирования текстовых документов. Наиболее распространенными являются MS WORD, Лексикон. Основными функциями текстовых редакторов являются:

1) работа с фрагментами документа,

2) вставка объектов созданных в других программах

3) разбивка текста документа на страницы

4) ввод и редактирование таблиц

5) ввод и редактирование формул

6) форматирование абзаца

7) автоматическое создание списков

8) автоматическое создание оглавления.

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

Интегрированная среда разработки

Интегрированная среда разработки, ИСР-- система программных средств, используемая программистами для разработки программного обеспечения (ПО). Обычно среда разработки включает в себя:

1) текстовый редактор

2) компилятор и/или интерпретатор

3) средства автоматизации сборки

4) отладчик.

Иногда содержит также средства для интеграции с системами управления версиями и разнообразные инструменты для упрощения конструирования графического интерфейса пользователя. Многие современные среды разработки также включают браузер классов, инспектор объектов и диаграмму иерархии классов -- для использования при объектно-ориентированной разработке ПО. Хотя, и существуют среды разработки, предназначенные для нескольких языков программирования -- такие, как Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator или Microsoft Visual Studio, обычно среда разработки предназначается для одного определённого языка программирования - как, например, Visual Basic, Delphi, Dev-C++.

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

SDK (от англ. Software Development Kit) или «devkit» -- комплект средств разработки, который позволяет специалистам по программному обеспечению создавать приложения для определённого пакета программ, программного обеспечения базовых средств разработки, аппаратной платформы, компьютерной системы, видеоигровых консолей, операционных систем и прочих платформ.

Программист, как правило, получает SDK непосредственно от разработчика целевой технологии или системы. Часто SDK распространяется через Интернет. Многие SDK распространяются бесплатно для того, чтобы поощрить разработчиков использовать данную технологию или платформу.

Поставщики SDK иногда подменяют термин Software в словосочетании Software Development Kit на более точное слово. Например, «Microsoft» и «Apple» предоставляют Driver Development Kits (DDK) для разработки драйверов устройств, а «PalmSource» называет свой инструментарий для разработки «PalmOS Development Kit (PDK)».

Примеры SDK:

5) Java Development Kit

6) Opera Devices SDK

Компиляторы.

Компилятор --

1) Программа или техническое средство, выполняющее компиляцию.

2) Машинная программа, используемая для компиляции.

3) Транслятор, выполняющий преобразование программы, составленной на исходном языке, в объектный модуль.

4) Программа, переводящая текст программы на языке высокого уровня в эквивалентную программу на машинном языке.

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

Компиляция --

1) Трансляция программы на язык, близкий к машинному.

2) Трансляция программы, составленной на исходном языке, в объектный модуль. Осуществляется компилятором.

Компилировать -- проводить трансляцию машинной программы с проблемно-ориентированного языка на машинно-ориентированный язык.

Виды компиляторов:

1) Векторизующий . Транслирует исходный код в машинный код компьютеров, оснащённых векторным процессором.

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

3) Диалоговый.

4) Инкрементальный. Повторно транслирует фрагменты программы и дополнения к ней без перекомпиляции всей программы.

5) Интерпретирующий (пошаговый). Последовательно выполняет независимую компиляцию каждого отдельного оператора (команды) исходной программы.

6) Компилятор компиляторов. Транслятор, воспринимающий формальное описание языка программирования и генерирующий компилятор для этого языка.

7) Отладочный. Устраняет отдельные виды синтаксических ошибок.

8) Резидентный. Постоянно находится в основной памяти и доступен для повторного использования многими задачами.

9) Самокомпилируемый. Написан на том же языке, с которого осуществляется трансляция.

10) Универсальный. Основан на формальном описании синтаксиса и семантики входного языка. Составными частями такого компилятора являются: ядро, синтаксический и семантический загрузчики.

Виды компиляции:

1) Пакетная . Компиляция нескольких исходных модулей в одном пункте задания.

2) Построчная.

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

Структура компилятора.

Процесс компиляции состоит из следующих этапов:

1) Лексический анализ. На этом этапе последовательность символов исходного файла преобразуется в последовательность лексем.

2) Синтаксический (грамматический) анализ. Последовательность лексем преобразуется в дерево разбора.

3) Семантический анализ. Дерево разбора обрабатывается с целью установления его семантики (смысла) -- например, привязка идентификаторов к их декларациям, типам, проверка совместимости, определение типов выражений и т. д. Результат обычно называется «промежуточным представлением/кодом», и может быть дополненным деревом разбора, новым деревом, абстрактным набором команд или чем-то ещё, удобным для дальнейшей обработки.

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

5) Генерация кода. Из промежуточного представления порождается код на целевом языке.

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

Трансляция и компоновка.

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

Интерпретаторы.

Интерпретатор (языка программирования) --

1) Программа или техническое средство, выполняющее интерпретацию.

2) Вид транслятора, осуществляющего пооператорную (покомандную) обработку и выполнение исходной программы или запроса (в отличие от компилятора, транслирующего всю программу без её выполнения).

3) Программа (иногда аппаратное средство), анализирующая команды или операторы программы и тут же выполняющая их.

4) Языковый процессор, который построчно анализирует исходную программу и одновременно выполняет предписанные действия, а не формирует на машинном языке скомпилированную программу, которая выполняется впоследствии.

Типы интерпретаторов.

Простой интерпретатор анализирует и тут же выполняет (собственно интерпретация) программу покомандно (или построчно), по мере поступления её исходного кода на вход интерпретатора. Достоинством такого подхода является мгновенная реакция. Недостаток -- такой интерпретатор обнаруживает ошибки в тексте программы только при попытке выполнения команды (или строки) с ошибкой.

Интерпретатор компилирующего типа -- это система из компилятора, переводящего исходный код программы в промежуточное представление, например, в байт-код или p-код, и собственно интерпретатора, который выполняет полученный промежуточный код (так называемая виртуальная машина). Достоинством таких систем является большее быстродействие выполнения программ (за счёт выноса анализа исходного кода в отдельный, разовый проход, и минимизации этого анализа в интерпретаторе). Недостатки -- большее требование к ресурсам и требование на корректность исходного кода. Применяется в таких языках, как Java, PHP, Python, Perl (используется байт-код), REXX (сохраняется результат парсинга исходного кода), а также в различных СУБД (используется p-код).

В случае разделения интерпретатора компилирующего типа на компоненты получаются компилятор языка и простой интерпретатор с минимизированным анализом исходного кода. Причём исходный код для такого интерпретатора не обязательно должен иметь текстовый формат или быть байт-кодом, который понимает только данный интерпретатор, это может быть машинный код какой-то существующей аппаратной платформы. К примеру, виртуальные машины вроде QEMU, Bochs, VMware включают в себя интерпретаторы машинного кода процессоров семейства x86.

Некоторые интерпретаторы (например, для языков Лисп, Scheme, Python, Бейсик и других) могут работать в режиме диалога или так называемого цикла чтения-вычисления-печати (англ. read-eval-print loop, REPL). В таком режиме интерпретатор считывает законченную конструкцию языка (например, s-expression в языке Лисп), выполняет её, печатает результаты, после чего переходит к ожиданию ввода пользователем следующей конструкции.

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

Следует также отметить, что режимы интерпретации можно найти не только в программном, но и аппаратном обеспечении. Так, многие микропроцессоры интерпретируют машинный код с помощью встроенных микропрограмм, а процессоры семейства x86, начиная с Pentium (например, на архитектуре Intel P6), во время исполнения машинного кода предварительно транслируют его во внутренний формат (в последовательность микроопераций).

Алгоритм работы простого интерпретатора:

2. проанализировать инструкцию и определить соответствующие действия;

3. выполнить соответствующие действия;

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

Достоинства и недостатки интерпретаторов.

Достоинства:

1) Большая переносимость интерпретируемых программ -- программа будет работать на любой платформе, на которой есть соответствующий интерпретатор.

2) Как правило, более совершенные и наглядные средства диагностики ошибок в исходных кодах.

3) Упрощение отладки исходных кодов программ.

4) Меньшие размеры кода по сравнению с машинным кодом, полученным после обычных компиляторов.

Недостатки:

1) Интерпретируемая программа не может выполняться отдельно без программы-интерпретатора. Сам интерпретатор при этом может быть очень компактным.

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

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

Компоновщик.

Компоновщик (также редактор связей, линкер) -- программа, которая производит компоновку -- принимает на вход один или несколько объектных модулей и собирает по ним исполнимый модуль.

Для связывания модулей компоновщик использует таблицы имён, созданные компилятором в каждом из объектных модулей. Такие имена могут быть двух типов:

1) Определённые или экспортируемые имена -- функции и переменные, определённые в данном модуле и предоставляемые для использования другим модулям.

2) Неопределённые или импортируемые имена -- функции и переменные, на которые ссылается модуль, но не определяет их внутри себя.

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

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

Ассемблер.

Ассемблер (от англ. assembler -- сборщик) -- компьютерная программа, компилятор исходного текста программы, написанной на языке ассемблера, в программу на машинном языке.

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

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

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

Список отладчиков.

1) AQtime -- коммерческий отладчик для приложений, созданных для.NET Framework версии 1.0, 1.1, 2.0, 3.0, 3.5 (включая ASP.NET приложения), а также для Windows 32- и 64-битных приложений.

2) DTrace -- фреймворк динамической трассировки для Solaris, OpenSolaris, FreeBSD, Mac OS X и QNX.

3) Electric Fence -- отладчик памяти.

4) GNU Debugger (GDB) -- отладчик программ от проекта GNU.

5) IDA -- мощный дизассемблер и низкоуровневый отладчик для операционных систем семейства Windows и Linux.

6) Microsoft Visual Studio -- среда разработки программного обеспечения, включающая средства отладки от корпорации Microsoft.

7) OllyDbg -- бесплатный низкоуровневый отладчик для операционных систем семейства Windows.

8) SoftICE -- низкоуровневый отладчик для операционных систем семейства Windows.

9) Sun Studio -- среда разработки программного обеспечения, включающая отладчик dbx для ОС Solaris и Linux, от корпорации Sun Microsystems.

10) Dr. Watson -- стандартный отладчик Windows, позволяет создавать дампы памяти.

11) TotalView -- один из коммерческих отладчиков для UNIX.

12) WinDbg -- бесплатный отладчик от корпорации Microsoft.

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

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

Документирующие комментарии.

Документирующий комментарий -- это особым образом оформленный

Инструментальное программное обеспечение -- это программное обеспечение, предназначенное для использования в ходе проектирования, разработки и сопровождения программ.

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

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

Чаще всего основой любого программного обеспечения является набор взаимосвязанных алгоритмов. Алгоритм же в свою очередь - это описание способа решения вычислительной задачи и задач других типов. Другими словами это описание, точно предписывающее, какие процедуры необходимо исполнителю выполнить и в какой последовательности, чтобы получить конкретный, заранее определённый результат, однозначно определяемый исходными данными.

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

Примеры интегрированных сред программирования: для разработки консольных приложений: Turbo Paskal, Quick Basic, Borland C++ для разработки Windows приложений: Microsoft Visual C++, Microsoft Visual Basic, Embarcadero Delphi, Embarcadero JBuilder

Приведём пример классификации инструментального программного обеспечения.

Вид инструментального ПО

Назначение

Специализированные текстовые редакторы

для создания и редактирования кода программы

Трансляторы:

для перевода программы в машинный код

Ассемблеры

для перевода программы на языке Ассемблер

Macro Assembler (MASM), Turbo Assembler (TASM) - для процессоров x86,

Компиляторы

для перевода программы на языке высокого уровня (Паскаль, Делфи, Си, Бейсик). Перевод осуществляется целиком однократно. При переводе создается файл.

GNU Compiler Collection (GCC)-для Cи, С++, Java, Fortran и др.; Free Pascal Compiler (FPS)-для Паскаля; Intel C++ compiler (для Си, С++, Fortran)

Интепретаторы

для покомандного перевода и исполнения программы на языке высокого уровня (все скриптовые языки: VBScript, JavaScript, PHP, Perl, Python, Ruby). Файл не создается.

компоновщики (линкеры, редакторы связей)

для сборки исполняемого файл из объектных файлов (двоичные коды отдельных файлов программы)

отладчики (дебаггеры)

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

библиотеки

НХИ-1, 20.02.12

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

Транслятор, компилятор, интерпретатор

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

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

Интерпретатортранслирует и выполняет операторы отдельными строками программы. Поэтому программа, обрабатываемая интерпретатором, переводится на машинный язык при каждом запуске программы.

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

· компилятор и/или интерпретатор;

· средства создания и редактирования текстов программ;

· библиотеки стандартных программ и функций;

· диалоговая среда для пользователя;

· графические библиотеки и утилиты для работы с библиотеками

· и другие средства.

К инструментальным системам программирования относятся Turbo Basic , Quick Basic , Turbo Pascal , Turbo C, Delphy, Builder .

Язык Бейсик создан как язык для начинающих.

Язык Паскаль разработан Никласом Виртом для обучения студентов программированию. Паскаль – это язык структурного программирования . Расширенный вариант языка – Turbo Pascal .

Язык Си соединяет свойства языка высокого уровня с возможностями использования программирования как на языке Ассемблера.

Современныесистемы программирования: Borland Delphi , Microsoft Visual Basic, Borland C++ , которые предназначены для создания программ в среде Windows и предоставляют удобные средства визуальной разработки.

К инструментальным программам относятся:

· редакторы;

· средства компоновки программ;

· отладочные программы;

· графические пакеты программ и т.п.

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

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Задание 1

Инструментальное программное обеспечение, его назначение и состав

Задание 2

Первый этап - постановка задачи

Второй этап - экономико-математическое описание задачи и выбор метода ее решения

Третий этап - алгоритмизация

Четвертый этап - программирование

Пятый этап - отладка

Список используемой литературы

Задание 1

Инструментальное программное обеспечение, его назначение и состав

Программное обеспечение

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

Программное обеспечение, можно условно разделить на три категории:

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

прикладное ПО, обеспечивающее выполнение необходимых работ на ПК: редактирование текстовых документов, создание рисунков или картинок, обработка информационных массивов и т.д.

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

Системное ПО

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

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

К системному ПО относятся:

операционные системы (эта программа загружается в ОЗУ при включении компьютера) метод использование прикладной программа

программы - оболочки (обеспечивают более удобный и наглядный способ общения с компьютером, чем с помощью командной строки DOS, например, Norton Commander)

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

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

утилиты (вспомогательные или служебные программы, которые представляют пользователю ряд дополнительных услуг)
К утилитам относятся:

диспетчеры файлов или файловые менеджеры

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

средства просмотра и воспроизведения

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

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

средства обеспечения компьютерной безопасности (резервное копирование, антивирусное ПО).

Необходимо отметить, что часть утилит входит в состав операционной системы, а другая часть функционирует автономно. Большая часть общего (системного) ПО входит в состав ОС. Часть общего ПО входит в состав самого компьютера (часть программ ОС и контролирующих тестов записана в ПЗУ или ППЗУ, установленных на системной плате). Часть общего ПО относится к автономными программам и поставляется отдельно.

Прикладное ПО

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

Пакеты прикладных программ - это система программ, которые по сфере применения делятся на проблемно - ориентированные, пакеты общего назначения и интегрированные пакеты. Современные интегрированные пакеты содержат до пяти функциональных компонентов: тестовый и табличный процессор, СУБД, графический редактор, телекоммуникационные средства.

К прикладному ПО, например, относятся:

Комплект офисных приложений MS OFFICE

Бухгалтерские системы

Финансовые аналитические системы

Интегрированные пакеты делопроизводства

CAD - системы (системы автоматизированного проектирования)

Редакторы HTML или Web - редакторы

Браузеры - средства просмотра Web - страниц

Графические редакторы

Инструментальное ПО

Инструментальное ПО или системы программирования - это системы для автоматизации разработки новых программ на языке программирования.

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

1. Текстовый редактор для создания файла с исходным текстом программы.

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

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

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

Наиболее популярные редакторы (системы программирования программ с использованием визуальных средств) визуального проектирования:

Borland Delphi - предназначен для решения практически любых задачи прикладного программирования

Borland C++ Builder - это отличное средство для разработки DOS и Windows приложений

Microsoft Visual Basic - это популярный инструмент для создания Windows-программ

Microsoft Visual C++ - это средство позволяет разрабатывать любые приложения, выполняющиеся в среде ОС типа Microsoft Windows.

Задание 2

Сформируйте и заполните накопительную ведомость начисления оплаты номеров гостиницы "Старт" за март 2004 года. Номера в гостинице 1-местные стоят для каждого клиента 750 руб. в день, 2-местные - 650 руб. с каждого клиента. Номер можно забронировать. Бронь в гостинице может быть двух видов: групповая и индивидуальная и оплачивается отдельно. При бронировании на группу оплата за первый день проживания увеличивается на 25% от стоимости номера, в тех случаях, когда брони нет или она индивидуальная, доплаты нет.

Тип брони и количество дней проживания в каждом номере представлены в таблице.

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

Ведомость начисления оплаты номеров гостиницы "Старт" за март 2004 г.

Номер комнаты

Тип занимаемого номера

Тип брони

Оплата за бронь (руб.)

Кол-во дней проживания

1-местный

1-местный

1-местный

2-местный

2-местный

2-местный

2-местный

Итого:

Постройте диаграммы:

· Круговую диаграмму по графе "Количество дней проживания".

· Гистограмму по графе "Оплата за дни проживания".

Ведомость начисления оплаты номеров гостиницы "Старт" за март 2004 г.

Необходимо сформировать и заполнить ведомость начисления оплаты номеров гостиницы "Старт" за март 2004 года.

Рассмотрим этапы подготовки решения задачи на ПК.

Первый этап - постановка задачи

Целью решения данной задачи является расчет оплаты за бронь и дни проживания постояльцев гостиницы "Старт" за март 2004 года.

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

Второй этап - экономико-математическое описание задачи и выбор метода ее решения

Рассматриваемая задача решается методом прямого счета.

Обозначим исходные данные:

ОБ - оплата за бронь;

ТБ - тип брони;

СНЧД - стоимость номера с человека в день;

КДП - количество дней проживания;

ОДП - оплата за дни проживания;

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

ОБ = 0,25*СНЧД,

если ТБ = «группа», иначе 0.

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

ОДП = ОБ + СНЧД*КДП.

Для решения этой задачи воспользуемся Microsoft Excel.

Третий этап - алгоритмизация

Запустим программу Excel. Работу будем выполнять на Листе 1.

В диапазон ячеек A1:G1 введем название граф. Для придания эстетичного вида шапке таблицы названия граф расположим в центре ячейки по вертикали и по горизонтали с переносом слов. Для этого выделим диапазон ячеек A1:G1, вызовем контекстно-зависимое меню (на выделенной области щелкнем правой кнопкой мыши), в меню выберем команду Формат ячеек. В появившемся диалоговом окне выберем закладку Выравнивание, установим опции: По горизонтали - по центру; По вертикали - по центру; переносить по словам и нажмем ОК.

В столбцы A, B, C, D и F введем данные, указанные в задании. Далее произведем необходимые расчеты с использованием формул. Ниже представлена расчетная таблица в формульном и числовом виде.

Таблица в формульном виде.

Номер комнаты

Тип занимаемого номера

Стоимость номера с человека в день (руб.)

Тип брони

Оплата за бронь (руб.)

Кол-во дней проживания

Оплата за дни проживания (руб.)

1-местный

ЕСЛИ(D2="группа";0,25*C2;0)

1-местный

ЕСЛИ(D3="группа";0,25*C3;0)

1-местный

ЕСЛИ(D4="группа";0,25*C4;0)

2-местный

ЕСЛИ(D5="группа";0,25*C5;0)

2-местный

ЕСЛИ(D6="группа";0,25*C6;0)

2-местный

ЕСЛИ(D7="группа";0,25*C7;0)

2-местный

ЕСЛИ(D8="группа";0,25*C8;0)

Итого:

=СУММ(E2:E8)

=СУММ(F2:F8)

=СУММ(G2:G8)

В итоге получим следующие результаты.

Номер комнаты

Тип занимаемого номера

Стоимость номера с человека в день (руб.)

Тип брони

Оплата за бронь (руб.)

Кол-во дней проживания

Оплата за дни проживания (руб.)

1-местный

1-местный

1-местный

2-местный

2-местный

2-местный

2-местный

Итого:

537,50р.

18 737,50р.

Определим среднее количество дней проживания, величину максимальной и минимальной оплаты за дни проживания. Для этого воспользуемся статистическими функциями СРЗНАЧ(), МАКС() и МИН() соответственно. Ниже представлена таблица с дополнительными расчетами в формульном и числовом виде.

Таблица с дополнительными расчетами в формульном виде представлена ниже.

Ниже представлены круговая диаграмму по графе «Кол-во дней проживания» и гистограмма по графе «Оплата за дни проживания».

Четвертый этап - программирование

Для решения этой задачи программирование не требуется.

Пятый этап - отладка

Для проверки правильности работы введенных формул надо рассчитать вручную контрольные значения.

Рассчитаем контрольные значения для комнаты 31.

ОБ = 0,25*750 = 187,5, так как ТБ = «группа».

ОДП = 187,5 + 750*4 = 3187,5.

Рассчитаем контрольные значения для комнаты 35.

ОБ = 0, так как ТБ не равно «группа».

ОДП = 650*1 = 650.

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

Список используемой литературы

1. Илюшечкин В., Костин А. Системное программное обеспечение - М.: Высшая школа, 2008. 127 с.

2. Руденко В.Д. Курс информатики. - К.: Феникс, 2008. - 368 с.

3. Степанов А. Информатика: Учебник для вузов. 3-е издание. 2003. - 768 с.

Размещено на Allbest.ru

Подобные документы

    Системное, прикладное и инструментальное программное обеспечение. Наиболее распространённые пакеты прикладных программ. Назначение и структура системных программ. Заполнение таблицы и работа с итогами в Excel, фильтрация данных и построение диаграммы.

    контрольная работа , добавлен 29.01.2014

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

    реферат , добавлен 01.04.2010

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

    реферат , добавлен 06.11.2014

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

    контрольная работа , добавлен 18.01.2011

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

    реферат , добавлен 03.03.2012

    Совокупность программ, используемых в работе на компьютере. Функциональное назначение программного обеспечения, правовые нормы его использования. Операционная система и сервисные программы. Разработка компьютерных программ на языке программирования.

    презентация , добавлен 10.10.2016

    Цели и задачи программной инженерии. Понятие программного обеспечения. Шесть принципов эффективного использования программного обеспечения. Виды программного обеспечения: общесистемное, сетевое и прикладное. Принципы построения программного обеспечения.

    курсовая работа , добавлен 29.06.2010

    Обзор и характеристика программного обеспечения компьютера как совокупности программ системы обработки информации. Характеристика аппаратного обеспечения как комплекса электрических и механических устройств, входящих в состав ЭВМ. Взаимодействие систем.

    презентация , добавлен 23.12.2010

    Основные виды программного обеспечения. Характеристика пакетов прикладных программ. Виды и группы систем счисления. Перевод целых и дробных чисел из одной системы счисления в другую. Арифметические операции в двоичной системе. Компьютерные преступления.

    шпаргалка , добавлен 19.01.2014

    Классификация программного обеспечения, его особенности, назначение. Программное обеспечение для работы с текстом, изображением, прикладное, офисное, для работы в Интернете. Системы программирования, специфика программного обеспечения, что такое вирусы.