Cтраница 3
Каждому формальному параметру, принадлежащему списку значений и специфицированному как массив, соответствуют n З слова рабочего поля ( п - размерность соответствующих фактических параметров-массивов), в которых будет размещаться информационный вектор создаваемого локального массива. [31]
Так как в языке PL / I все данные, кроме скалярных арифметических переменных, имеют информационные векторы, то в начале общей области в модуле PL / I располагается информационный вектор структуры, состоящий из информационных векторов массивов адресов арифметических переменных, входящих в эту структуру. Поэтому для общей области в операторе COMMON модуля фортрана первым необходимо указывать фиктивный массив, размер которого равен количеству полных слов в информационном векторе структуры PL / 1, а длина элементов этого массива должна быть равна 4 байтам. Переменные в общей области фортрана ( и структуре PL / I) должны располагаться после фиктивного массива в порядке убывания их длин, в соответствии с требованиями транслятора фортрана. [32]
В случае передачи переменных ( в том числе и промежуточных) типа CHAR, CHAR VARYING, BIT, BIT VARYING, PICTURE с символьным шаблоном; массивов; структур в соответствующие адресные регистры записываются не сами адреса переменных, а адреса информационных векторов, которые содержат информацию о размещении соответствующих переменных. Программист, который пишет свои nporpaMNfH только на ПЛ / 1, может обойтись без знания этих деталей, однако это важно для случая, когда некоторые процедуры пишутся на языке Ассемблера-в этом случае надо точно знать, в каком виде программа на ПЛ / Т передает фактические параметры. [33]
Данные о механизме представляются в ЭЦВМ в виде информационных векторов. Информационные векторы, характеризующие одно из свойств механизма, образуют кольцевую систему связи. Связь между кольцами осуществляется через Ссылки, которые являются элементами векторов. [34]
В модулях PL / I данные, организованные в массивы и структуры, имеют информационные векторы, которых нет в фортране. Информационный вектор содержит истинный адрес массива или структуры и некоторые характеристики, описывающие эту величину. В процессе выполнения программы при обращении к переменной, описанной в модуле PL / 1, на самом деле происходит обращение не к самой переменной, а к ее информационному вектору. Поэтому при передаче между модулями PL / I и фортрана массивов и структур встает вопрос определения истинных адресов передаваемых данных. [35]
В поле байт, отведенном для переменной типа CHARACTER, строка символов записывается по одному символу в байт. Кроме того, в памяти образуется специальная переменная ( так называемый информационный вектор), в которую заносятся адрес первого байта данной переменной типа CHARACTER и информация о ее длине. В некоторых случаях программисту полезно знать о существовании информационного вектора. [36]
Так как в языке PL / I все данные, кроме скалярных арифметических переменных, имеют информационные векторы, то в начале общей области в модуле PL / I располагается информационный вектор структуры, состоящий из информационных векторов массивов адресов арифметических переменных, входящих в эту структуру. Поэтому для общей области в операторе COMMON модуля фортрана первым необходимо указывать фиктивный массив, размер которого равен количеству полных слов в информационном векторе структуры PL / 1, а длина элементов этого массива должна быть равна 4 байтам. Переменные в общей области фортрана ( и структуре PL / I) должны располагаться после фиктивного массива в порядке убывания их длин, в соответствии с требованиями транслятора фортрана. [37]
В случае параметра-переменной, для которой границы могут быть заданы выражениями, в адресном регистре записывается не адрес самой переменной, а адрес ее информационного вектора, содержащего сведения и о границах. [38]
Если количество передаваемых параметров определяется в процессе решения задачи, то такие параметры удобно собирать в таблицу, заканчивая ее признаком, требуемым внутренней программе, а в качестве параметра передавать адрес начала такой таблицы. В частности, если программа предназначена для обработки многомерных массивов числовой информации ( например, программы вычисления определителей, нахождения собственных значений матриц и другие программы линейной алгебры), то параметрами для нее являются адреса так называемых информационных векторов для каждого из массивов, обрабатываемых программой. Принято, то информационный вектор массива содержит в первой ячейке абсолютный адрес начала массива ( разряды 21 - - 36); во второй ячейке - порядок по первому измерению массива; в третьей ячейке - порядок по второму измерению массива. Порядок задается целым восьмеричным числом. [39]
При этом происходит агрегирование ( укрупнение) содержательной информации и уменьшение размерности как адресного, так и содержательного подпространства. Максимальную размерность имеет 5У1 - подпространство, так как оно содержит информацию о всех операциях, выполняемых в системе. Количество информационных векторов в этом подпространстве равно количеству всех операций, выполняемых в системе. [40]
Если количество передаваемых параметров определяется в процессе решения задачи, то такие параметры удобно собирать в таблицу, заканчивая ее признаком, требуемым внутренней программе, а в качестве параметра передавать адрес начала такой таблицы. В частности, если программа предназначена для обработки многомерных массивов числовой информации ( например, программы вычисления определителей, нахождения собственных значений матриц и другие программы линейной алгебры), то параметрами для нее являются адреса так называемых информационных векторов для каждого из массивов, обрабатываемых программой. Принято, то информационный вектор массива содержит в первой ячейке абсолютный адрес начала массива ( разряды 21 - - 36); во второй ячейке - порядок по первому измерению массива; в третьей ячейке - порядок по второму измерению массива. Порядок задается целым восьмеричным числом. [41]
В поле байт, отведенном для переменной типа CHARACTER, строка символов записывается по одному символу в байт. Кроме того, в памяти образуется специальная переменная ( так называемый информационный вектор), в которую заносятся адрес первого байта данной переменной типа CHARACTER и информация о ее длине. В некоторых случаях программисту полезно знать о существовании информационного вектора. [42]
Они являются базисными, так как на их основе можно сформировать любые информационные векторы обмена. [43]
Общая процедура состоит в следующем. Для каждого узла по каждому из направлений степеней свободы производится суммирование соответствующих коэффициентов матриц жесткости и масс отдельных элементов. Выбор необходимого коэффициента и адресация его в нужное место глобальной матрицы осуществляются с помощью информационного вектора LM связи его локальных степеней свободы с их глобальной нумерацией для всей конструкции. [44]
В модулях PL / I данные, организованные в массивы и структуры, имеют информационные векторы, которых нет в фортране. Информационный вектор содержит истинный адрес массива или структуры и некоторые характеристики, описывающие эту величину. В процессе выполнения программы при обращении к переменной, описанной в модуле PL / 1, на самом деле происходит обращение не к самой переменной, а к ее информационному вектору. Поэтому при передаче между модулями PL / I и фортрана массивов и структур встает вопрос определения истинных адресов передаваемых данных. [45]