Компоновка

 

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

· если в программе используются функции, например, sin, exp и т.д., соответствующие им программные модули выбираются из библиотеки подпрограмм соответствующей системы программирования и вставляются в объектный модуль;

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

 

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

 

Исходные адреса Сегментированные адреса
0002:0008
0002:000А
0002:000С
0002:000F
0003:0000

 

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

 

Адрес размещения команды Содержимое адреса
Абсолютный (десятичная система счисления) Сегментированный (шестнадцатеричная система счисления)
0002:0008 -
0002:000А 126 1
0002:000С 127 0008
0002:000F
0003:0000 125 0008

Выполнение и тестирование программы

 

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

 

Пример 1. Для программы

 

var CHISLO: integer;

CHISLO:=CHISLO + 1;

 

и (ее кода) будут выявлены две логические ошибки:

· неизвестность результата ввиду отсутствия в программе оператора вывода, например, write (CHISLO);

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

 

Тогда правильная программа вместо той, которая приведена в примере 1, могла бы иметь вид:

 

var CHISLO: integer;

input (CHISLO);

CHISLO:=CHISLO+1;

write (CHISLO); .

 

 

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

Для программы из примера 1 задаются набором переменной CHISLO. Так, если среди этих значений будет такое, которое превышает допустимый диапазон типа integer, при выполнении программы в процессе тестирования возникает переполнение разрядной сетки (overflow), что обсуждалось ранее. Это потребует от программиста переделки исходной программы в части описания переменной CHISLO.

Эволюция использования компьютеров. Проект ЭВМ пятого поколения

 

Рассмотренная технология проектирования программ реализует последовательное преобразование целого ряда сигналов, т.е. их кодирование:

 

 

 

Эта схема имеет два недостатка:

 

1. процесс подготовки задачи к решению на ЭВМ несоизмеримо продолжительнее самого решения: многие месяцы подготовки задачи несопоставимы с несколькими минутами ее решения компьютером;

 

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

 

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

 

Вторая причина связана с объективной эволюцией использования компьютеров, которая показана в таблице:

 

Параметр Эволюция использования компьютеров
50-е г.г. 60-е г.г. 70-е г.г. 80-е г.г. с 90-х г.г. 20-го века
Критерий эффективности использования ЭВМ Машинные ресурсы Машинные ресурсы Человеческие ресурсы: трудоемкость разработки и сопровождения программ Трудоемкость формализации профессиональных знаний Полнота и скорость доступа к информации
Расположение пользователя Машинный зал Отдельное помещение Терминальный зал Рабочий стол Произвольное мобильное
Тип пользователя Инженер- программист Профессиональный программист Программист -пользователь Пользователь с общей компьютерной подготовкой Слабо обученный пользователь  
Тип диалога Работа за пультом Обмен перфоносителями и машинными программами Интерактивный (клавиатура и экран) Интерактивный по жесткому меню Интерактивный, графический интерфейс

 

Как видно из таблицы, компьютер «приближается» к конечному пользователю, который не является хорошо подготовленным в области общения с компьютером и испытывает значительные затруднения в решении своих прикладных задач с использованием компьютера. В этой связи возникает проблема организации нового типа взаимодействия конечного пользователя и компьютера. Эта проблематика получила выражение в проекте ЭВМ пятого поколения, который был опубликован в начале 80-х годов 20-го столетия в Японии.

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

 

1. разработка простого интерфейса, позволяющего конечному пользователю вести диалог с компьютером для решения своих задач. Подобный интерфейс может быть организован двумя способами: естественно-языковым и графическим. Поддержка естественно-языкового диалога – очень сложная и не решенная пока задача. Реальным является создание графического интерфейса, что и сделано в ряде программных продуктов, например, в ОС Windows’xx. Этот интерфейс обладает наглядностью, не требует специальных знаний. Однако разработка доступных интерфейсов решает проблему только наполовину – позволяет конечному пользователю обращаться к заранее спроектированному программному обеспечению, не принимая участие в его разработке;

 

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

 

· программистом создается «пустая» универсальная программная оболочка, способная наполняться конкретными знаниями и с их использованием решать практические задачи. Например, эту оболочку можно было бы заполнить правилами составления квартальных и иных балансов предприятий, и тогда она могла бы решать задачи бухгалтерского учета. Либо можно было внести туда правила зачисления абитуриентов, которые изложены ранее и использованы в примерах. В этом случае мы бы получили программный продукт, аналогичный тому, что проектировали выше, и т.д.;

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

 

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

 

Программист

 

а) программист создает пустую программную оболочку;

 

Заказчик

 

б) заказчик (конечный пользователь) наполняет оболочку знаниями

 

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

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

Структура информационного процесса

 

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

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

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

 

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

 

3. Обработка – любое преобразование информации с целью решения определенных функциональных задач (они определяются потребителем информации). Данная фаза может включать хранение информации как перенос ее во времени.

 

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

 

Схематично информационный процесс изображен на рисунке:

 

 

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

Как видно из рисунка, каждая фаза в общем случае преобразует (или отображает) входной сигнал в выходной. Например, при обработке сигнал S3 преобразуется в сигнал S4. Это делается для удобства проведения следующей процедуры или, в последнем случае, для удобства потребителя.

 

Пример 1. Рассмотрим информационный процесс, имеющий место при приеме в ВУЗ абитуриентов, к числу которых в недавнем времени относился и наш читатель (при этом отметим, что подобный информационный процесс, когда решается некоторая задача преобразования информации из конкретной предметной области, называется предметным). Названные на рисунке элементы представлены ниже:

· источник информации – абитуриент, сведения о знаниях и других достоинствах которого являются основанием для зачисления в ВУЗ. Сигнал S1 – это документы (например, аттестат о среднем образовании), которые сдаются в приемную комиссию;

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

· передача информации. В простейшем случае это передача данных курьером (работником приемной комиссии) тому лицу, который занимается их обработкой. При этом, очевидно, никаких изменений с данными не происходит (если только курьер их не потеряет), т.е. сигналы S2 и S3 равны. Если возможно использование технических систем для передачи информации, этот процесс механизирован или автоматизирован (в случае применения ЭВМ). При автоматизации передачи возможно несовпадение сигналов S2 и S3 по их синтаксическим характеристикам, что связано с особенностями этой процедуры и подробнее рассматривается далее;

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

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

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

· потребитель информации – ректор ВУЗа, который готовит и визирует приказ о зачислении в ВУЗ.

 

Пример 2. Сформируем схему обращения информации при сдаче студентами сессии:

 

Сигнал S1 - это ответы студентов на экзаменах, которые анализируются преподавателем и оцениваются, как правило, по пятибалльной системе (фаза Сбор). В результате формируется ведомость сдачи экзамена (сигнал S2), которая секретарем кафедры (или самим преподавателем) передается в деканат того факультета, к которому "приписаны" студенты (фаза Передача). Очевидно, если по дороге не случается фальсификации, сигналы S2 и S3 совпадают. В деканате ведомость попадает методисту, который выполняет ее обработку - заполняет специальный журнал успеваемости, где собираются данные об успеваемости каждого студента за все время обучения в Вузе (фаза Обработка). Можно сказать, что сам журнал (сигнал S4)выполняет функцию хранения информации (на рисунке эта фаза не показана). По окончании срока сессии методист готовит для декана справку о результатах сессии по всем учебным группам студентов: списки неуспевающих, списки студентов, претендующих на стипендию, списки тех, кто может получать повышенную (именную) стипендию и т.д. (фаза Представление). Эта справка и есть сигнал S6, который поступает декану для решения типичных для деканата задач: отчисление студентов, перевод на следующий курс или на другую специальность (другое учебное заведение), восстановление и т.п. Следует отметить, что некоторые фазы, в свою очередь, могут рассматриваться как совокупность последовательных операций, среди которых можно выделить операции, аналогичные рассмотренным фазам. Например, в фазе Обработка, как будет показано далее, имеет место сбор информации. Это говорит о том, что детализация информационных процессов определяется уровнем их рассмотрения с целью последующей автоматизации, т.е. решения соответствующих задач с помощью компьютера.

 

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