Назад Оглавление Вперед
На головную страницу М.М.Горбунов-Посадов
 
РАСШИРЯЕМЫЕ ПРОГРАММЫ
 

 Г л а в а  4
МНОГОВАРИАНТНОСТЬ
 
4.8. Среда подготовки расчета
 

 

4.8. Среда подготовки расчета

      4.8.1. Совмещение описания конфигурации и данных. После знакомства с приведенными в предыдущем разделе околоматематическими рассуждениями о содержании понятия «направление исследования» у читателя, вероятно, возникло определенное недоумение: почему при рассмотрении оптимизационной задачи речь идет только о параметрах, реализуемых в виде вариантных фрагментов алгоритма? Неужели в вычислительном эксперименте среди значений варьируемых параметров никогда не встречаются привычные всем числа, массивы и другие подобные им данные?
      Конечно же, изменяющиеся факторы с числовыми значениями имеют ничуть не меньше прав на существование, чем факторы, отображаемые в сменных программных модулях. Более того, в реальных расчетах количество таких числовых факторов обычно в несколько раз превосходит количество вариантных гнезд каркаса.
      Тем не менее на страницах книги манипуляциям над данными отведено относительно скромное место. В явном виде данные всплывают лишь в тех редких случаях (подобных рассматриваемому в настоящем разделе), когда они непосредственно соприкасаются с конфигурационными построениями. Недостаток внимания к числовым факторам объясняется, разумеется, только относительно узкой тематической направленностью книги, а отнюдь не желанием как-то противопоставить данные программам.
      В то же время многие конструкции, описанные в предыдущих главах, не делают различия между программами и данными. Программы и данные тут практически сливаются, образуя единое пространство. В частности, обычно предполагается, что и программные материалы, и исходные данные, и результаты расчетов хранятся в едином программном фонде с общим механизмом просмотра и модификации информации.
      Единое пространство программ и данных желательно сформировать и при подготовке расчета. Граница, нередко разделяющая два компонента такой подготовки — описание конкретной конфигурации и вводимые исходные данные, — весьма условна и связана скорее не с существом решаемых задач, а с особенностями их программной реализации. Существо же задачи, напротив, диктует необходимость организации единой среды подготовки расчета, где процессы задания и конфигурации, и данных идут рука об руку, не спотыкаясь постоянно об искусственно проведенную между ними границу. Ведь при анализе хода эксперимента и при выборе перспективных направлений исследования предпочтительнее отвлечься от таких технических подробностей, как алгоритмическое или числовое воплощение очередного изменяемого фактора. (Вообще говоря, обычно имеет смысл погрузить в единую среду не только подготовку расчета, но и изучение его результатов. Однако эта сторона дела существенно дальше отстоит от интересующих нас конфигурационных проблем, и поэтому она не будет затрагиваться.)
      Изложенные соображения в пользу единства среды подготовки расчета практически полностью применимы и к введенным в предыдущем разделе модулям типа направление. Эти модули наряду со сведениями о содержимом консервативной части вариантных гнезд должны включать в себя и некоторую консервативную часть вводимых числовых данных. Такое расширенное толкование содержания модулей существенно ближе к понятию «направление исследования».
      Другими словами, изучаемая окрестность локального оптимума характеризуется в равной мере как алгоритмическими, так и числовыми вариантными параметрами. Использование модуля, содержащего лишь искусственно выделенную алгоритмическую (конфигурационную) часть этих параметров, повлекло бы за собой неоправданные технологические неудобства.

      4.8.2. Техника ввода данных. Итак, ввод описания конкретной конфигурации должен осуществляться совместно с вводом данных в единой среде подготовки расчета. Ввод данных имеет определенные традиции, ломать которые даже из-за потребностей единства среды было бы весьма нежелательно. Поэтому, прежде чем приступать к проектированию средств задания конфигурации (чему будет посвящен следующий раздел), имеет смысл окинуть взглядом некоторые характерные особенности организации ввода данных.
      Современные представления о среде подготовки расчета базируются на технике гипертекста, упоминавшейся в разд. 2.3.3. Материалы среды расчленяется на связанные гиперссылками страницы (панели), которые в данном случае отражают отдельные вовлеченные в расчет понятия.
      На страницах располагаются гнезда ввода, позволяющие задавать как элементы описания конкретной конфигурации программы, так и исходные данные для расчета. Например, участок страницы, отведенный для ввода значения скорости, мог бы иметь вид:

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

      4.8.3. Вновь о близости программ и данных. Если в расчетной программе выполняется ввод массива или другого крупного агрегата данных, то нередко требуется не вводить каждый раз все элементы заново, а накопить несколько сменных наборов значений элементов и затем от расчета к расчету только переключать ввод с одного набора на другой. Подготовка и использование таких сменных наборов выглядят практически так же, как и работа со сменными программными модулями в многовариантной программе.
      Наборы значений элементов оформляются как самостоятельные объекты программного фонда. И массиву, и отдельным наборам присваиваются имена, после чего при подготовке расчета назначение конкретного сменного набора для массива выполняется подобно назначению сменного модуля для вариантного гнезда:

массив  <–  сменный_набор

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


 
Рис. 4.2.  Фрагмент страницы среды подготовки расчета.
 
— гнезда ввода

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

      4.8.4. Гнезда среды и гнезда программы. В программном фонде материалы среды подготовки расчета занимают промежуточное положение между собственно программными материалами (текстами алгоритмов, исходными данными и т. п.) и сопроводительной документацией. Расположенный на страницах среды текст и гипертекстовые связи относятся скорее к документации, а информация, заносимая в гнезда ввода, ближе к программным материалам.
      Как уже не раз упоминалось, и программные материалы, и документация могут быть построены на основе каркасного подхода. По существу тот же подход применим и в рассматриваемой среде подготовки расчета. Здесь в качестве каркаса (т. е. постоянной части среды) выступают тексты страниц и гипертекстовые связи, а роль гнезд (обслуживающих переменную часть — разнообразные подготавливаемые наборы данных) играют гнезда ввода.
      Продолжая аналогию с программной, можно говорить о безболезненности подготовки расчетов. Для того чтобы изменение значения какого-либо изменяемого фактора не повлекло за собой редактирования текста, содержащего соседние значения, следует, как и в случае многовариантных программ, сопоставить каждому такому фактору самостоятельное гнездо ввода. «Изменяемые факторы» трактуются тут несколько шире, чем ранее: помимо факторов, влияющих на конкретную конфигурацию, к ним отнесены и факторы, отражаемые в форме исходных данных.
      Если в проводимых расчетах используется лишь ограниченный набор значений некоторого фактора, то отвечающее этому фактору гнездо ввода становится по сути вариантным или наборным (см. разд. 3.6.2). Вариантное гнездо появляется, если в каждом конкретном расчете требуется ровно одно значение из выделенного ограниченного набора, а наборное гнездо — если таких значений требуется несколько. Имеет смысл оснастить среду подготовки расчета не только надлежащими средствами указания требуемых в расчете значений, но и средствами для безболезненных изменений состава используемого ограниченного набора.
      Помимо родственных механизмов, обеспечивающих вариантность среды подготовки расчета и программных материалов, совместного рассмотрения заслуживают также применяемые там средства навигации. Среди таких средств наиболее заметное место отводится гипертексту. Гнезда гипертекста (гиперссылки), размещаемые на страницах среды подготовки расчета, позволяют свободно перемещаться со страницы на страницу. В то же время, как отмечалось в разд. 2.3.3, техника гипертекста как нельзя лучше подходит для организации перемещений с модуля на модуль при изучении или редактировании текстов программ.
      Тот или иной механизм навигации необходим на различных фазах подготовки расчета. Наряду с вводом исходных данных здесь производится и задание конкретной конфигурации программы, в ходе которого (см. разд. 4.5) может понадобиться просмотреть и даже отредактировать исходные тексты. Переключения с ввода исходных данных на работу с исходными текстами программы и обратно заметно облегчатся, если навигация повсюду будет опираться на единообразные средства гипертекста.

Далее

Рейтинг@Mail.ru