Cтраница 3
Обеспечивает представление данных в согласованных форматах и синтаксисе, трансляцию и интерпретацию программ с разных языков, шифрование данных. На практике многие функции этого уровня задействованы на прикладном уровне, поэтому протоколы уровня представлений не получили развития и во многих сетях практически не используются. [31]
В ходе выполнения диалоговой отладки алгоритма программист может оперативно изменять и дополнять режимы транслятора, указанные в команде PLIC или определенные во время генерации отладочного транслятора. Чаще всего такая необходимость возникает при указании тех режимов, которые действуют в период интерпретации программы. Они позволяют более глубоко анализировать правильность выполнения заданного алгоритма. [32]
На данном этапе необходимо проанализировать предполагаемые методы решения задач, определить эффективость выбранной системы команд при решении эталонных задач. Необходимо проанализировать также возможность непосредственного программирования на внутреннем языке машины и трудоемкость автоматической трансляции и интерпретации программ при использовании автоматического программирования. [33]
Трансляторы с некоторых языков высокого уровня, например с PL / 1, позволяют получать листинг на языке Ассемблера. Этот листинг содержит сгенерированные коды предложений исходной программы и может быть полезен при анализе и интерпретации программы. [34]
В последние годы все большую популярность приобретают мобильные программы, например активные web - страницы. К возможным средствам борьбы с потенциальной опасностью таких программ относятся помещение мобильной программы в песочницу, интерпретация программы, а также запуск только программ, подписанных доверенными производителями. [35]
Тракт данных - это часть центрального процессора, состоящая из АЛ У ( арифметико-логического устройства) и его входов и выходов. Тракт данных нашей микроархитектуры показан на рис. 4.1. Хотя этот тракт данных и был оптимизирован для интерпретации программ IJVM, он схож с трактами данных большинства компьютеров. [36]
Формат подкоманды отличается только тем, что не указывается имя набора данных и операнд PLI. При использовании этой подкоманды резервируется около 30 Кбайт основной памяти в области абонента, которая необходима для команды EDIT, то есть память, предназначенная для трансляции и интерпретации программы, будет уменьшена на указанное количество байт. [37]
Система ДИСП ОС состоит примерно из 200 модулей, функционально объединенных в четыре группы, называемых компонентами. Каждый компонент выполняет строго определенное действие: инициализацию системы, обработку выполнения команд и программ абонента, обслуживание запрашиваемых операций ввода-вывода и планирование работ в системе, трансляцию и интерпретацию программ абонентов. [38]
Написание программ-интерпретаторов, которые имитируют работу процессора, широко используется при разработке компьютерных систем. После того как разработчики выбрали машинный язык ( Я) для нового компьютера, они должны решить, строить ли им процессор, который будет выполнять программы на языке Я, или написать специальную программу для интерпретации программ на языке Я. Если они решают написать интерпретатор, они должны создать аппаратное обеспечение для выполнения этого интерпретатора. Возможны также гибридные конструкции, когда часть команд выполняется аппаратным обеспечением, а часть интерпретируется. [39]
![]() |
Трансляция программы. [40] |
Для этого каждый оператор исследуется ( интерпретируется), после чего осуществляется вызов соответствующих подпрограмм. При каждом запуске исходной программы осуществляется ее новая интерпретация. Интерпретация программы занимает, как правило, больше времени, чем ее компиляция. При автоматизации процессов очень жесткие требования, предъявляемые режимом реального времени, препятствуют использованию интерпретаторов. [41]
Слово может быть порождено компьютером. Такая интерпретация программы, порождающей слово, лежит в основе понятия колмогоровской сложности слова. Она равна, с точностью до общей аддитивной константы, длине кратчайшего кода, по которому можно вычислить слово. Она показывает, до какой степени может быть сжато слово, если разрешено использовать любые вычислительные средства. Однако в силу своего универсального характера колмогоровская сложность оказывается невычислимой. Если известно, что слово порождено некоторым источником, то роль нижней границы сжатия играет энтропия вместо колмогоровской сложности. [42]
По отношению к эластичным языкам подобного типа может быть две альтернативы: ( 1) пользователь знает о встроенных в язык и в программу-переводчика уступках; ( 2) пользователь о них не знает. В первом случае, язык может быть использован для точного сообщения программ, поскольку программист может предсказать, как компьютер будет интерпретировать программы, написанные на этом языке. Во втором случае, в языке есть скрытые черты, могущие выкинуть что-нибудь непредсказуемое с точки зрения пользователя, не знающего о том, как работает программа-переводчик. Результатом этого могут быть грубые ошибки в интерпретации программы, поэтому такой язык не годится для использования компьютеров за их быстроту и надежность. [43]
Принцип смешанных вычислений требует, чтобы все возможные вычисления были проведены как можно раньше с переносом остаточную программу только тех вычислений, для осуществления которых в настоящий момент нет данных. Соответственно желательно и проведение полного статического контроля типов программы. Это означает, что все используемые в программе типовые значения должны быть вычислены на этапе компиляции. К сожалению, это не всегда возможно даже для таких простых языков, как Паскаль. В этом языке допускается, что тип переменной, стоящей в левой части оператора присваивания, является отрезком типа выражения, стоящего в правой части оператора присваивания; в общем случае это требует динамической проверки того, что вырабатываемое выражением значение принадлежит данному отрезку типа. Еще меньше возможностей полного статического контроля типов программы остается при допущении типовых переменных, которым в тексте программы присваиваются различные типовые значения. Поэтому чем более гибкие типовые вычисления допускает язык, тем большая доля контроля типов переносится на период выполнения. С другой стороны, когда язык обладает возможностями построения неограниченного количества типов данных с совмещенными знаками операций, статический контроль типов является единственным способом нахождения соответствующей операции во время компиляции программы. Таким образом, соотношение между статическим и динамическим контролем выливается в таких языках в соотношение между компиляцией и интерпретацией программы. [44]