ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 31.03.2021
Просмотров: 6755
Скачиваний: 51
121
program KvadUravn;
var А, В, С, D, XI, Х2: REAL;
begin
writeln;
writeln( 'введи А,В,С') ; read(A,B,C);
D:=B*B-4*A*C;
if D<0 then write('корней нет')
else begin
X1:=(-B+sqrt(D))/(2*A);
X2:=(-B-sqrt(D))/(2*A);
write('X1=', X1,' X2=', Х2);
end
end.
Предположив, что этот текст (по отношению к процессу трансляции выступающий как
ис-
ходный
модуль) сформирован одним из текстовых редакторов, попытаемся отправить его на вы-
полнение. Прежде всего его необходимо перевести в машинный двоичный код (называемый
абсо-
лютным
или
загрузочным модулем
). Для этого на первых этапах осуществляется трансляция (в
данном случае, как это реализовано в системах программирования Паскаля, компиляция) исходно-
го текста в машинный код (
объектный модуль
). Однако, объектный модуль не может быть ис-
пользован для выполнения программы, поскольку в нем нет программ по выполнению процедур
ввода (read) и вывода (write, writeln), а также вычисления функции извлечения квадратного
корня
(sqrt). В исходном тексте программы ссылки
на
указанные библиотечные подпрограммы отмечены
знаком {*}.
Следующий шаг трансляции - компоновка - заключается в подключении к исходному объ-
ектному модулю объектных модулей соответствующих подпрограмм в места ссылок на них (ис-
ходные тексты этих подпрограмм в системе вовсе отсутствуют). Другими словами, на место про-
цедуры Write помещается подпрограмма, осуществляющая процедуру вывода данных на экран
дисплея. Таким образом после компоновки (или, иначе, редактирования связей link editor) возни-
кает абсолютный модуль, намного превышающий по объему размер исходного текста программы,
Он и является исполняемым компьютером после его запуска. Расширениями его файлового имени,
как правило, являются .com или .ехе.
В силу того, что объектные модули не предназначены для непосредственного исполнения, в
них обычно нет привязки составляющих их машинных команд к конкретному месту в ОЗУ. Адре-
са машинных слов бывают условными, что помогает компоновщику размещать объектные модули
в свободных
местах ОЗУ (заменяя условные адреса команд на конкретные).
Многие системы программирования дополнительно содержат промежуточные этапы транс-
ляции. В этих системах на первом шаге предусмотрена трансляция исходного текста в макроас-
семблерный код, а затем в объектный модуль. Это связано с историей развития языков програм-
мирования, а также с тем, что многие подпрограммы удобнее писать на языке Ассемблера, и под-
ключать их легче на этапе линко-вания ассемблерного модуля с ассемблерными библиотеками
подпрограмм.
В современных системах программирования, например, Турбо-Паскаль, Турбо-Си весь этот
сложный процесс трансляции с компоновкой подпрограмм скрыт от пользователя и осуществляет-
ся специальными компиляторами.
Коротко об отладчиках.
Эти программы входят в современные системы программирования
и предоставляют средства для просмотра и изменения значений переменных в ходе отладки про-
граммы, поиска ошибок и т.д. Использование отладчиков значительно облегчает процесс доводки
больших программ.
Заметим, что описанный процесс трансляции характерен для компиляции. Последовательно
реализованный интерпретатор объектного модуля фактически не создает. В этом его и недостаток,
и достоинство (экономия машинной памяти). Впрочем, у современных ЭВМ, в том числе и персо-
нальных, проблема малого ОЗУ отходит на второй план, и интерпретация встречается все реже,
так как эффективность этого процесса в целом значительно ниже.
Остается непонятным, как детально происходит трансляция. Пользователь может не уметь
сам вручную оттранслировать программу (даже столь короткую, как вышеприведенная), но эле-
122
ментарное понимание этого сложного процесса необходимо.
На первом этапе транслятор производит синтаксический анализ исходной программы -
проверяет, не нарушены ли формальные правила, содержащиеся в данном языке программирова-
ния. Например, в Паскале текст может встретиться либо внутри текстовой константы (т.е. в апост-
рофах), либо внутри комментария. Если такой текст встретился в другом месте, то это явная
ошибка. В системе программирования встроены описания всех синтаксически разрешенных кон-
струкций, и транслятор их применяет к исходной программе. Для задания синтаксиса применяют-
ся формы Бэкуса-Наура и синтаксические диаграммы, о которых будет рассказано в следующей
главе.
Первой фазой синтаксического анализа является лексический анализ. Он заключается в
просмотре литер исходной программы и построении из них лексически допустимых единиц -
идентификаторов, ключевых слов языка, чисел и т.д. Во второй фазе эти единицы уже рассматри-
ваются как неделимые и проверяется допустимость их сочетания.
Даже если в синтаксическом смысле исходная программа верна, это не означает, что она
имеет смысл в рамках данного языка программирования. На следующем этапе семантического
анализа транслятор ищет ошибки такого рода: числа употребления слов BEGIN и END не совпа-
дают; переменные не описаны (в языке, требующем обязательного явного описания переменных),
т.е. текст программы
непонятен
(семантика - смысловая сторона языка).
Лишь после того, как в программе все синтаксически правильно и семантически понятно,
транслятор переводит операторы программы в машинный код. Это отнюдь не означает, что в про-
грамме все благополучно - не исключены ошибки этапа исполнения (деление на ноль, выход за
границу массива, переполнение разрядов и т.д.).
Различные фазы компиляции могут быть как последовательными, так и частично перекры-
вающимися во времени. В зависимости от способа реализации компилятор читает и обрабатывает
исходный текст один или
несколько раз, называясь соответственно однопроходным, двухпроход-
ным и т.д.
Контрольные вопросы
1. Назовите минимальный состав системы программирования, необходимый для разработки
программы.
2. Какие имеются сравнительные преимущества и недостатки у компиляторов и
интерпре-
таторов?
3. Назовите основные этапы трансляции программы.
§3. ПРИКЛАДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
ОБЩЕГО НАЗНАЧЕНИЯ
3.1. КЛАССИФИКАЦИЯ
Прикладные программы предназначены для того, чтобы обеспечить применение вычисли-
тельной техники в различных сферах деятельности человека. Помимо создания новых программ-
ных продуктов разработчики прикладных программ большие усилия тратят на совершенствование
и модернизацию популярных систем, создание их новых версий. Новые версии, как правило, под-
держивают старые, сохраняя преемственность, и включают в себя базовый минимум (стандарт)
возможностей.
Один из возможных вариантов классификации программных средств (ПС), составляющих
прикладное программное обеспечение (ППО), отражен на рис.2.11. Как и почти всякая классифи-
кация, приведенная на рисунке не является единственно возможной. В ней представлены даже не
все виды прикладных программ. Тем не менее, использование классификации полезно для созда-
ния общего представления о ППО.
123
Рис.2. П.
Классификация прикладного программного обеспечения
3.2. ИНСТРУМЕНТАЛЬНЫЕ ПРОГРАММНЫЕ СРЕДСТВА
ОБЩЕГО НАЗНАЧЕНИЯ
Несмотря на широкие возможности использования компьютеров для обработки самой раз-
ной информации, самыми популярными являются программы, предназначенные для работы с тек-
стами - текстовые редакторы и издательские системы. Текстовыми редакторами называют про-
граммы для ввода, обработки, хранения и печатания текстовой информации в удобном для поль-
зователя виде. Эксперты оценивают использование компьютера в качестве печатающей машинки
в 80%.
Большую популярность приобрели программы обработки графической информации. Ком-
пьютерная графика в настоящее время является одной из самых динамично развивающихся облас-
тей программного обеспечения. Она включает в себя ввод, обработку и вывод графической ин-
формации - чертежей, рисунков, картин, текстов и т.д. - средствами компьютерной техники. Раз-
личные типы графических систем позволяют быстро строить изображения, вводить иллюстрации с
помощью сканера или видеокамеры, создавать анимационные ролики.
Графические редакторы позволяют пользоваться различным инструментарием художника,
стандартными библиотеками изображений, наборами стандартных шрифтов, редактированием
изображений, копированием и перемещением фрагментов по страницам экрана и др. Для выпол-
нения расчетов и дальнейшей обработки числовой информации существуют специальные про-
граммы - электронные таблицы. В процессе деятельности любого специалиста часто требуется
представить результаты работы в виде таблиц, где одна часть полей занята исходными данными, а
другая -. результатами вычислений и графического анализа. Характерными для них является
большой объем перерабатываемой информации, необходимость многократных расчетов при изме-
нении исходных данных. Автоматизацией подобной рутинной работы и занимаются электронные
таблицы.
Одним из наиболее перспективных направлений развития вычислительной техники являет-
ся создание специальных аппаратных средств для хранения гигантских массивов информацион-
ных данных, и последующей нечисловой обработки их -поиска и сортировки. Для компьютерной
обработки подобных
баз данных
используют
системы управления базами данных.
СУБД - это
набор средств программного обеспечения, необходимых для создания, обработки и вывода запи-
сей баз данных. Различают несколько типов СУБД:
иерархические, сетевые, реляционные.
При ра-
боте с СУБД выделяют несколько последовательных этапов:
• проектирование базы данных;
• создание структуры базы
данных;
• заполнение базы данных;
• просмотр и редактирование базы
данных
;
• сортировку базы данных;
• поиск необходимой записи;
•
выборку информации;
124
• создание отчетов.
Как правило, большинство популярных систем управления базами данных поддерживают
эти этапы и предоставляют удобный инструментарий для их реализации.
Желание объединить функции различных прикладных программ в единую систему привело
к созданию интегрированных систем. Универсальные
интегрированные системы
разрабатывались
по принципу единой системы, содержащей в качестве элементов текстовые и графические редак-
торы, электронные таблицы и систему управления базами данных. Примеры: Framework, Works,
Мастер. Современная концепция интеграции программных средств - кооперация отдельных при-
кладных программных систем по типу широко известного пакета MicroSoft Office. Сами системы,
входящие в пакет, являются независимыми, более того, они сами представляют локально интегри-
рованный пакет, поскольку помимо основной своей задачи поддерживают функции других систем.
Например, текстовый редактор Word обладает возможностью манипулировать с электронными
таблицами и базами данных, а в электронной таблице Excel встроен мощный текстовый редактор.
Для сопряжения информационных данных из различных программных систем в них предусматри-
вают импорт-экспортную систему обмена с перекодировкой форматов представления данных.
3.3. ИНСТРУМЕНТАЛЬНЫЕ ПРОГРАММНЫЕ СРЕДСТВА
СПЕЦИАЛЬНОГО НАЗНАЧЕНИЯ
Разработчики создают специальные программные системы целевого назначения для спе-
циалистов в некоторой предметной области. Такие программы называют авторскими инструмен-
тальными системами.
Авторская система
представляет интегрированную среду с заданной ин-
терфейсной оболочкой, которую пользователь может наполнить информационным содержанием
своей предметной области.
Экспертная система
- это программа, которая ведет себя подобно эксперту в некоторой
узкой прикладной области. Экспертные системы призваны решать задачи с неопределенностью и
неполными исходными данными, требующие для своего решения экспертных знаний.
Кроме того, эти системы должны уметь объяснять свое поведение и свое решение.
Принципиальным отличием экспертных систем от других программ является
их
адаптив-
ность, т.е. изменчивость в процессе самообучения.
Принято выделять в экспертных системах три основных модуля:
• модуль базы знаний;
• модуль логического вывода;
• интерфейс с пользователем.
Экспертные системы, являющиеся основой искусственного интеллекта, получили широкое
распространение в науке (классификация животных и растений по видам, химический анализ), в
медицине (постановка диагноза, анализ электрокардиограмм, определение методов лечения), в
технике (поиск неисправностей в технических устройствах, слежение за полетом космических ко-
раблей и спутников), в политологии и социологии, криминалистике, лингвистике и т.д.
В последнее время широкую популярность получили программы обработки гипертекстовой
информации. Гипертекст – это форма организации текстового материала не в линейной последо-
вательности, а в форме указании возможных переходов (ссылок), связей между отдельными его
фрагментами. В обычном тексте используется обычный линейный принцип размещения информа-
ции и доступ к нему осуществляется последовательно. В
гипертекстовых системах
информация
напоминает текст энциклопедии, и доступ к любому выделенному фрагменту текста осуществля-
ется произвольно по ссылке. Организация информации в гипертекстовой форме используется при
создании справочных пособий, словарей, контекстной помощи (Help) в прикладных программах.
Расширение концепции гипертекста на графическую и звуковую информацию приводит к
понятию гипермедиа. Идеи
гипермедиа
получили распространение в сетевых технологиях, в ча-
стности в Интернет-технологиях. Технология WWW (World Wide Web) позволила структуриро-
вать громадные мировые информационные ресурсы посредством гипертекстовых ссылок. Появи-
лись программные средства, позволяющие создавать подобные Web-странички. Стали развиваться
механизмы поиска нужной информации в лабиринте информационных потоков. Популярными
поисковыми средствами в Интернет являются Yahoo, AltaVista, Magellan, Rambler и др.
Мультимедиа
(multimedia) - это взаимодействие визуальных и аудиоэффектов под управ-
125
лением интерактивного программного обеспечения. Появление и широкое распространение ком-
пакт-дисков (CD-ROM) сделало эффективным использование мультимедиа в рекламной и инфор-
мационной службе, сетевых телекоммуникационных технологиях,обучении.
Мультимедийные игровые и обучающие системы начинают вытеснять традиционные «бу-
мажные библиотеки». Сегодня в библиотеках CD-ROM можно «гулять» по музеям, Московскому
Кремлю и т.д. с помощью «электронного путеводителя».
3.4. ПРОГРАММНЫЕ СРЕДСТВА ПРОФЕССИОНАЛЬНОГО УРОВНЯ
Каждая прикладная программа этой группы ориентируются на достаточно узкую предмет-
ную область, но проникает в нее максимально глубоко. Так функционируют
АСНИ
- автоматизи-
рованные системы научных исследований, каждая из которых «привязана» к определенной облас-
ти науки,
САПР
- системы автоматизированного проектирования, каждая из которых также рабо-
тает в узкой области,
АСУ
- автоматизированные системы управления (которых в 60 - 70 годах
были разработаны тысячи).
Наконец, еще раз подчеркнем не только условность предложенной выше классификации,
но и наличие пересечений. Так, каждую конкретную экспертную систему вполне можно отнести к
ППО профессионального уровня; принцип гипертекста реализован в ряде авторских систем и т.д.
3.5. ОРГАНИЗАЦИЯ «МЕНЮ» В ПРОГРАММНЫХ СИСТЕМАХ
Прикладные программы нацелены на широкий круг пользователей (непрограммистов) и
предполагают диалоговый режим работы человека с компьютером. Широкой популярностью
пользуются программы, обладающие дружественным интерфейсом, т.е. таким, который не требует
от пользователя больших усилий в работе со всеми необходимыми периферийными устройствами,
специальных настроек компьютера и обладает удобной системой управления и диалога.
Интерактивный режим в прикладных программах осуществляется по двум принципам:
«смотри и выбирай» и «подтверждай то, что я делаю». Программы не утрачивают работоспособ-
ности при ошибках пользователя, позволяют легко и безболезненно исправлять ошибочные дейст-
вия путем их отмены, а также обращаться в любой момент к контекстной помощи. Все принципы
дружественного интерфейса реализуются специальной системой интерактивного (диалогового)
общения компьютерной программы и пользователя, называемой «пользовательским меню» или
просто «меню».
«Меню» представляет набор команд, указаний и данных, который в любой момент досту-
пен пользователю для выбора дальнейшего действия. Указатель (курсор) имеет возможность цик-
лически сканировать меню и управляется клавишами со стрелками и/или манипулятором «мышь».
Выбор команды осуществляется установкой курсора на его пункт и нажатием клавиши ввода <En-
ter>, или указанием стрелки «мыши» и двойным щелчком ее клавиши. Более быстрый выбор ко-
манды может быть осуществлен нажатием специальных клавиш или их комбинацией. Как прави-
ло, в них участвуют клавиши с буквой, с которой начинается название команды. По своей органи-
зации меню представляет иерархическую структуру с системой вложенных подменю («выплы-
вающие», «ниспадающие», «оконные» и пр.) с возможностью возврата из любого пункта в главное
(основное) меню.
Меню бывает текстовым и/или графическим с комментариями по каждому своему пункту.
Прикладные программы дополнительно имеют функциональное клавишное меню для быстрого
выполнения каких-либо команд («горячие клавиши» -«hot key»). Например, функциональная кла-
виша F1 чаще используется для экстренного вызова справочной информации (Help - помощь),
клавиша F2 - для сохранения данных во внешней памяти.
Фирмы-разработчики программных средств организуют программные меню по своим стан-
дартам и единообразно. Так, например, фирма «Борланд» практикует свой фирменный интерфейс,
который легко распознается всеми программистами и пользователями, работающими в системах
программирования Турбо: Турбо-Паскаль, Турбо-Бейсик, Турбо-Си и т.п. (см. выше рис.2.10). В
верхней части экрана дисплея в Турбо-программах помещается горизонтально главное меню, каж-
дый пункт которого может иметь ниспадающее подменю. В нижней части помещаются команды
для функциональных клавиш («горячие» клавиши), рядом - строка статуса, которая дает коммен-