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

Учебное пособие по информатике

.pdf
Скачиваний:
145
Добавлен:
21.03.2015
Размер:
2.03 Mб
Скачать

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

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

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

Транслятор – это системная программа, переводящая текст программы на Ассемблере в текст эквивалентной программы на языке машинных команд.

Существует два различных метода трансляции – ком иляция

и интер ретация.

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

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

Следует заметить, что любой язык программирования может быть как интерпретируемым, так и компилируемым, но в большинстве случаев у каждого языка есть свой предпочтительный способ реализации. Языки Фортран, Паскаль в основном компилируют; язык Ассемблер почти всегда интерпретирует; языки Бейсик и Лисп широко используют оба способа.

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

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

111

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

2. Классификация методов программирования

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

1.Языки низкого уровня

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

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

в ОЗУ;

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

2.Языки высокого уровня – ориентированы на систему операторов, характерных для записи определенного класса алгоритмов PASCAL, BASIC, C и др.

3.Язык сверхвысокого уровня. К ним можно отнести Алгол-68 и APL. Повышение уровня этих языков произошло за счет введения сверхмощных операторов и операций.

По функциональному назначению языки делят на:

1.Проблемно-ориентированные. Примеры: FORTRAN (FORmula TRANslator) – научные и инженерные задачи; COBOL

(Common Business Oriented Language) – экономические и коммерческие задачи и др.

2.Универсальные. PASCAL (Philips Automatic Sequence CALculator), BASIC (Beginner ALL-purpose Symbolic Instruction

Code), C, Java и др.

По ти ам решаемых задач:

1.Задачи вычислительного характера – Algol, Fortran, COBOL, BASIC, PASCAL, Ada, Фокал, PL/1 и др.;

2.Разработка программ-оболочек, систем, интерфейса – Ассемблер, С, С++, Java, Smalltalk, Forth и др.;

3.Оформление документов, обработка больших текстовых файлов, разработка баз данных – HTML, Perl, DDL, DSDL,

SQL, QBE и др.

4.Задачи искусственного интеллекта – Lisp, Prolog, Рефал и др.;

112

Паради ма ро раммирования – совокупность основополагающих идей и подходов, определяющих модель представления данных и их

обработки, а также методологии программирования.

 

 

По

аради ме

ро раммирования

выделяют

два основных

направления развития языков

роцедурное и не роцедурное.

Процедурное

программирование возникло

на заре развития

вычислительной

техники

и получило

широкое

распространение.

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

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

- проектирование программы сверху вниз – это процесс прохождения от определения задачи в общих чертах

к постепенному уточнению ее структуры и деталей;

-модульное программирование – это последовательное создание отдельных логических частей программы;

-структурное кодирование – это программирование на основе использования трех логических структур: присваивание; выбор одного действия из двух; повторение, пока выполняется условие.

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

Широко распространены следующие структурные языки: PASCAL, Ada, С и др. Среди операционных известны Fortran, BASIC, Фокал.

Не роцедурное появилось в начале 70-х годов XX века, но стремительное его развитие началось в 80-е годы, когда был разработан японский проект создания ЭВМ пятого поколения, целью которого

явилась подготовка

почвы для создания

интеллектуальных машин.

К непроцедурному

программированию

относятся

декларативное

и объектное программирование

 

 

Декларативное

программирование

использует

функциональные

ило ические языки.

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

113

вычисление значения функции через значение этой же функции от других элементов. Присваивания и циклов в классических функциональных языках нет.

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

Объектно-ориентированные языки – Visual Basic, Delphi, C++

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

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

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

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

Языки о исания сценариев, такие как Perl, Python, Rexx, Tcl и языки оболочек UNIX, предполагают стиль программирования, весьма отличный от характерного для языков системного уровня. Они предназначаются не для написания приложения с нуля, а для комбинирования компонентов, набор которых создается заранее при помощи других языков. Развитие и

114

рост популярности сети Интернет также способствовали распространении языков описания сценариев. Так для написания сценариев широко употребляется язык Perl, а среди разработчиков Web-страниц популярен язык Java (Джава, Ява).

Язык Java создан компанией Sun в начале 90-х годов на основе С++. Он призван упростить разработку приложений на основе С++ путем исключения из него всех низкоуровневых возможностей. Главная особенность – компиляция не в машинный код, а в платформнонезависимый байт-код (каждая команда занимает один байт). Этот байткод может выполняться с помощью интерпретатора – виртуальной Javaмашины (Java Virtual Machine), версии которой созданы сегодня для любых платформ. Основной недостаток языка – невысокое быстродействие, так как язык Ява интерпретируемый.

3.Основные компоненты системы программирования

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

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

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

3.Объектный код модулей и подключенные к нему стандартные функции обрабатывает специальная программа – редактор связей. Данная программа объединяет объектные коды с учетом требований операционной системы и формирует на выходе работоспособное приложение – исполнимый код для конкретной платформы. Исполнимый код это законченная программа, которую можно запустить на любом компьютер, где установлена операционная система, для которой эта программа создавалась.

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

115

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

Контрольные вопросы по теме 8

1.Для чего служит компилятор?

2.Для чего служит транслятор?

3.Перечислите основные элементы системы программирования.

4.Какие возможности предоставляет программисту система программирования?

5.В чем заключается основная идея структурного программирования?

6.Какой метод проектирования программы, характеризует пошаговая детализация постановки задачи, начиная с наиболее общей задачи?

7.Что такое инкапсуляция?

8.Чем характеризуется наследование в объектно-ориентированном программировании?

9.Что такое полиморфизм?

10.Что является основой методологии объектно-ориентированного программирования?

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

12.Как называется программирование, основанное на модульной структуре программного продукта и типовых управляющих структурах алгоритмов?

13.Перечислите языки логического программирования.

14.Какие языки наиболее подходят для системного программирования?

15.К какому типу относится язык Assembler?

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

17.Какие языки относят к языкам программирования высокого уровня?

18.Что является результатом компиляции программы на языке высокого уровня?

19.В чем заключается основное отличие компиляторов от интерпретаторов?

20.Какие языки используются для создания Интернет-приложений?

21.Какие языки являлись языками программирования первого поколения?

116

ТЕМА 9. ИНФОРМАЦИОННЫЕ СИСТЕМЫ

1. Понятие и функции информационной системы

Система (system – целое, составленное из частей; греч.) – это совокупность элементов, взаимодействующих друг с другом, образующих определенную целостность, единство.

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

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

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

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

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

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

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

Необходимо понимать разницу между компьютерами

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

ителекоммуникациями.

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

117

числе и с использованием средств вычислительной техники и связи, реализующих информационные процессы» [Закон РФ «Об информации, информатизации и защите информации» от 20.02.1995, № 24-ФЗ].

Информационный роцесс – «процесс создания, сбора, обработки, накопления, хранения, поиска, распространения и потребления информации» [Закон РФ «Об участии в информационном обмене» от 04.07.1996, № 85-ФЗ].

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

-ввод информации из внешних или внутренних источников;

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

-вывод информации для представления потребителям или передачи в другую систему;

-обратная связь – это информация, переработанная людьми

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

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

Различают следующие типы информационных процедур:

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

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

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

В целом информационные системы определяется следующими свойствами:

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

-информационная система является динамичной и развивающейся;

-при построении информационной системы необходимо использовать системный подход;

-выходной продукцией информационной системы является информация, на основе которой принимаются решения;

118

-информационную систему следует воспринимать как человеко-машинную систему обработки информации.

-Внедрение информационных систем может способствовать:

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

-освобождению работников от рутинной работы за счет ее автоматизации;

-обеспечению достоверности информации;

-совершенствованию структуры информационных потоков (включая систему документооборота);

-предоставлению потребителям уникальных услуг;

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

2.Классификация информационных систем

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

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

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

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

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

В документальных (документированных) информационных системах

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

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

119

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

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

Классификация информационных систем о функциональному ризнаку.

Функциональный ризнак определяет назначение подсистемы, а также ее основные цели, задачи и функции. На рисунке 39 представлена классификация информационных систем по характеристике их функциональных подсистем.

Рис. 39. Классификация информационных систем о функциональному ризнаку

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

Вклассификации информационных систем о уровням у равления выделяют:

120