Cтраница 2
Сам Т Х работает не с именами символов, а с абсолютными числовыми кодами, и, таким образом, переводит запрос на набор глифа в запрос на набор символа, расположенного в определенной позиции в определенном шрифте. Однако когда мы формируем символ с помощью макрокоманды типа с, мы ожидаем, что в результате получим с; таким образом, TgjX y надо знать, где найти этот символ в шрифте, что является нетривиальной задачей, если положение символов может меняться от шрифта к шрифту. [16]
Все символы имеют три вида данных: имя символа, его тип и описание. Каждый символ должен иметь имя, которое вы ему присваиваете, и тип, который вы задаете для символа из списка имеющихся типов. Для описания символа вы можете ввести данные по желанию. [17]
Не меняйте это имя на другое в окошке с именем символа. [18]
В табл. 3.4 2 показаны три стека: стек разбора, стек имени / значения и стек имени символа. В центральном столбце приведен необработанный входной текст. В последнем столбце даны примечания к процессу порождения одноадресного кода. Эти действия описывают алгоритм генерирования кода, аналогичный алгоритму, предложенному в конце раздела 3.3. Никакой попытки формализации алгоритма не предпринято; ожидается, что читатель получит достаточное представление об этом из раздела 3.3 и табл. 3.4.2, чтобы применять этот алгоритм для решения последующих примеров. [19]
Как и в предыдущем случае, имя поля элемента массива образовано от имени файла добавлением в конце имени символа X. В этом случае необходимо контролировать соответствие длин записи и поля, отведенного для ввода. [20]
Символы внутри раздела вообще отличны от других символов, используемых в другом месте исходной программы, даже если имя символа то же самое. Это справедливо, если только имя раздела, связанное с каждым символом, уникально, символ не объявлен общим ( XDEF / GLOBAL) и спецификаторы GLOBAL или LOCAL не используются в объявлении раздела. [21]
![]() |
Формат карты ESD. [22] |
Как упоминалось ранее, внешние символы, которые должны использоваться для перемещения и связывания, идентифицируются на RLD-картах с помощью ID-номера, а не имени символа. [23]
Читая и интерпретируя знаки, процедура чтения пытается строить атомы и из них списки. Прочитав имя символа, интерпретатор ищет, встречался ли ранее такой символ или он неизвестен. Для нового символа нужно зарезервировать память для возможного значения, определения функции и других свойств. Символы сохраняются в памяти в списке объектов ( object list, oblist) или массиве объектов ( obarray), в котором они проиндексированы на основании своего имени. [24]
Таблица символов ассемблера состоит из элементов фиксированного формата, каждый из которых в свою очередь состоит из группы слов. В таблице хранится имя символа, его значение и различные признаки, такие, например, как признак переме щаемости. [25]
![]() |
Созданная с помощью METR картина Кеса ван дер Дана в стиле Наума Габо. [26] |
В METRFONT oBCKOM файле программа, создающая каждый символ или объект, заключается между командами начала и конца группы beginchar... Команда beginchar имеет четыре параметра: имя создаваемого символа, его ширину, высоту и глубину. [27]
Списки, представляющие программы и данные, состоят из списочных ячеек, расположение и порядок которых в памяти несущественны. Структура списка определяется логически на основе имен символов и указателей. Добавление новых элементов в список или удаление из списка может производиться без переноса списка в другие ячейки памяти. [28]
Каждый фиктивный параметр должен соответствовать тем же самым правилам, что и имена символов. Фиктивные имена параметра, которым предшествует символ подчеркивания, использовать нельзя. Фиктивные параметры отделяются запятыми. Фиктивные поля параметра отделяются одним или большим количеством пробелов. Макроопределения могут быть вложенными, но вложенная макрокоманда не будет определена, пока первичная макрокоманда не выполнена ( см. также: DUP. [29]
Символы, которые определены вне раздела, рассматриваются как глобальные символы и не имеют никакого явного имени раздела, связанного с ними. Глобальные символы могут быть свободно вызваны изнутри или извне любого раздела, если только глобальное имя символа не находится в противоречии с другим символом с тем же самым именем в данном разделе. [30]