Интерактивная программа - Большая Энциклопедия Нефти и Газа, статья, страница 4
Извините, что я говорю, когда вы перебиваете. Законы Мерфи (еще...)

Интерактивная программа

Cтраница 4


Все три языка поддерживают последовательный ввод-вывод, легко реализуемый на любой машине. В языках Литтл и Си он представлен библиотечными функциями с фиксированными именами и таким образом в отличие от Паскаля вынесен из языка. Это повышает мобильность, но уменьшает надежность, отключая возможность проверки типов и числа аргументов функций. В Си через библиотечные функции реализована возможность прямого доступа к файлам, обладающая, однако, машинной зависимостью. Принятый способ буферизации символов затрудняет написание интерактивных программ на Паскале.  [46]

Если для обращения к вектору прерываний или регистру устройства, обозначенных символами, используется абсолютный режим, а для прямой символической адресации локальных переменных, находящихся в памяти - относительный, то спецификация соответствующего операнда автоматически становится позиционно-независимой. В этом смысле абсолютный режим является естественным ( и, таким образом, более предпочтительным) для символической спецификации фиксированных адресов. Кроме того, хотя мнемоника со смысловой нагрузкой весьма полезна с точки зрения применения предпринимаемых программой действий, тем не менее применение абсолютного режима позволяет быть уверенным в том, что обращение происходит к фиксированной ячейке памяти. Так как при абсолютном режиме в ассемблерном листинге генерируются абсолютные адреса, можно визуально проверить значения вектора и регистра, не прибегая к проверке предложений, в которых эти значения присваиваются идентификаторам. И наконец, когда производится отладка с помощью интерактивной программы динамической отладки ( DDP, разд.  [47]

Поскольку обмен информацией прерывающей программы с основной производится таким же способом, что и между разными прерывающими программами, возникает вопрос, существует ли разница между прерывающими программами и основной. Фактически разница между ними совершенно несущественна и заключается в уровне приоритета. Основная программа имеет наинизший приоритет и поэтому выполняется только тогда, когда не работает ни одна из прерывающих программ. Следовательно, можно допустить существование нескольких основных программ, связанных друг с другом через очередь сообщений. Для этих программ или процессов обработки данных могут использоваться одни и те же файлы данных и могут, как и в случае прерывающих программ, возбуждаться другие процессы обработки данных. Такой режим работы аналогичен работе системы с разделением времени и хорошо подходит для организации любой интерактивной программы.  [48]

Хорошим примером здесь могут служить системы для измерения программ. Опыт показывает, что почти все программисты неправильно представляют себе, где на самом деле находятся узкие места в их программах; неудивительно, что попытки оптимизации так часто оказывались бесплодными, ес - - ли программисты не имели информации о реальном распределении времени счета по строкам программы. Подобные усилия напоминают попытки молодой пары составить рациональный семейный бюджет, не имея понятия о ценах на продукты, - одежду и домашнюю утварь. Единственное, что предоставлялось программисту, - это оптимизирующий компилятор, который проделывает нечто таинственное над транслируемой программой, но никогда не объясняет, что же он делает. К счастью, наконец-то забрезжила надежда на появление систем, которые шее же предполагают наличие у пользователя кое-какого интеллекта; они автоматически предоставляют инструментовку программы и соответствующие указания о реальном распределении затрат. Поэтому я убежден, что такие системы обязательно станут стандартным элементом программного обеспечения - это - лишь вопрос времени. В моей статье в журнале Computer Surveys [21] можно найти дальнейшее обсуждение этого вопроса, а также некоторые соображения по поводу того, как интерактивные программы могут способствовать более полному удовлетворению программистов-пользователей.  [49]



Страницы:      1    2    3    4