Cтраница 1
Аппаратные представления для элементов данных применяются, где только возможно. Непосредственно используется аппаратное представление целых и вещественных чисел. Массивы транслируются в простые блоки ячеек памяти - основную аппаратную структуру данных. [1]
Обычно не имеется прямого аппаратного представления комплексных чисел, поскольку они легко могут быть изображены парой вещественных чисел, хранящихся в последовательных ячейках памяти. С рациональными числами ( частные целых) дело обстоит серьезнее. Обычным поводом для включения в язык рациональных чисел является стремление избежать проблем, связанных с округлениями и усечениями, имеющими место при использовании вещественных чисел с плавающей точкой. Поэтому желательно представлять рациональные числа парами целых чисел неограниченной длины, что требует значительного программного моделирования. [2]
![]() |
Представления в памяти вещественных чисел с дескрипторами типа. [3] |
В традиционных машинах имеется аппаратное представление для цепочек литер. Каждая литера представляется 6-ти или 8-ми битным кодом литеры, а цепочка литер представляется последовательностью таких кодов, хранящихся в последовательных байтах или упакованных в последовательные слова памяти. Как обычно, отсутствуют аппаратные дескрипторы. [4]
Обычной практикой является прямое использование аппаратного представления чисел. Большинство традиционных машин имеют аппаратные средства для представ ления целых и вещественных чисел и иногда вещественных с двойной точностью и вещественных чисел в виде цепочки литер. [5]
Предполагается, что во время выполнения используется аппаратное представление для чисел и цепочек литер. Исключение составляют комплексные числа, которые очевидным образом представляются как пара вещественных чисел. [6]
И ТОТ, и COUNT хранятся в форме, соответствующей аппаратному представлению чисел, однако значение PRICE имеет вид цепочки литер и должно быть преобразовано перед сложением к аппаратной форме. [7]
Целые и вещественные числа в программах записываются в десятичном виде; во время выполнения предполагается соответствующее аппаратное представление чисел. Логические значения в программах изображаются специальными символами: true и false; во время выполнения для представления логического значения достаточно одного бита. [8]
![]() |
Некоторые возможные структуры памяти для представления целочек. [9] |
Чаще всего длина цепочки хранится в двоичном виде как первая литера в цепочке, а далее в цепочке используется обычное аппаратное представление. В случае цепочек неограниченной длины применяется также связанное представление. [10]
Ценой машинной независимости описаний данных как цепочек литер является снижение скорости выполнения программы, поскольку границы машинных слов могут не совпадать с границами элементов данных, что затрудняет доступ к последним, и поскольку перед выполнением арифметических операций числа должны преобразовываться в аппаратное представление и результат должен быть преобразован опять в форму цепочки литер. В качестве компромисса в языке имеются используемые по желанию фразы: SYNCHRONIZED, с помощью которой можно совместить начало или конец элемента данных с границей слова ( или другой естественной единицы памяти) и USAGE IS COMPUTATIONAL ( используется в вычислениях), позволяющей использовать для конкретного элемента данных аппаратное представление чисел. Применение этих фраз приводит к тому, что длина структур данных или индивидуальных элементов становится зависимой от реализации, но выигрыш в скорости выполнения может быть огромным. [11]
![]() |
Представление простого списка. [12] |
Числа могут иметь целый формат или формат с плавающей точкой. Используется аппаратное представление, но необходим также дескриптор, существующий во время выполнения программы, поэтому каждое число занимает два слова. [13]
Аппаратные представления для элементов данных применяются, где только возможно. Непосредственно используется аппаратное представление целых и вещественных чисел. Массивы транслируются в простые блоки ячеек памяти - основную аппаратную структуру данных. [14]
С / транслированные строки хранятся затем как выполняемая форма программы, которая будет интерпретироваться программным интерпретатором. Во время трансляции числа преобразуются в их аппаратное представление ( и снабжаются дескрипторами), идентификаторы преобразуются в указатели, содержащиеся в элементах таблицы символов, а символы операторов остаются в кодах литер. Такая тривиальная трансляция значительно облегчает задачу обратного преобразования программы в ее исходную форму. Поскольку это обратное преобразование требуется часто, например, для листингов, редактирования и сообщений об ошибках, его простота представляет важное преимущество. Так как программы на АПЛ имеют обычно сжатую форму, стоимость построчной программной интерпретации хотя достаточно высока, но все же не так высока, как могла бы быть в других случаях. [15]