Cтраница 2
Метод расширенного предшествования позволяет обойтись без существенного изменения исходной грамматики. Недостатком является большой объем постоянных таблиц. [16]
При использовании ИС-2 все СП располагаются в МЗУ, каждой из них присваивается четырехзначный восьмеричный номер. Специальный каталог, называемый постоянной таблицей характеристик ПТХ, содержит сведения о местоположении всех СП в МЗУ. Данные ПТХ располагают на одном из магнитных барабанов. [17]
Если относительно небольшое число записей приходится отыскивать очень часто, то средняя длина поиска может оказаться значительно меньше, чем при двоичном поиске. Это иногда используют при составлении постоянных таблиц транслятора, например таблиц основных символов входного языка. [18]
Так, если в исходном описания встречается псевдокоманда EXPUNGE, транслятор стирает всю таблицу постоянных символов, кроме псевдокоманд. Псевдокоманда F1XTAB добавляет все символы, определенные перед этой командой, к постоянной таблице символов. [19]
В отличие от локальных, глобальные временные таблицы ( global temporary tables) может видеть любой пользователь, имеющий активное соединение ( active connection) с базой данных. Глобальные временные таблицы применимы, когда нескольким активным соединениям требуется совместно использовать данные, но создание постоянных таблиц нежелательно. SQL-сервер удаляет глобальную временную таблицу только тогда, когда все соединения, использующие эту таблицу, закрываются. [20]
Наиболее употребительной структурой данных в трансляторах являются таблицы. В частности, в таблицах хранят основные символы входного языка, используемые для распознавания синтаксических конструкций, а также коды операций машины или заготовки машинных команд, необходимые для генерирования команд объектной программы. Это постоянные таблицы, составляемые заблаговременно. Одной из основных таблиц при трансляции является таблица имен, иногда ее заменяют две таблицы: таблица переменных и таблица меток. Все это временные таблицы, составляемые в ходе трансляции. [21]
Обязательной постоянной таблицей является таблица операций, в которой перечислены все мнемонические коды машинных команд, команд ассемблера и некоторых макрокоманд. Для машинных команд таблица операций содержит машинные эквиваленты кодов операций, используемые при переводе команд на язык машины, а для команд ассемблера и макрокоманд - признаки, позволяющие перейти к соответствующим подпрограммам обработки. Могут быть и другие постоянные таблицы, например таблица стандартных текстов, выдаваемых на печать в качестве заголовков разделов печатного документа, а также идентифицирующих ошибки, выявленные ассемблером. [22]
Сами стандартные подпрограммы располагаются в МЗУ. Каждой подпрограмме присваивается четырехзначный восьмеричный номер. Специальный каталог, называемый постоянной таблицей характеристик ( ПТХ), содержит сведения о местоположении всех СП в МЗУ. ПТХ располагается на одном из магнитных барабанов. [23]
MDA и МРА содержат информацию о количестве типов атомов, для которых имеются параметры в массивах FD, FP, LD, LP, UI, ВТ. Эти массивы вводятся в машину в виде постоянных таблиц и не зависят от конкретной молекулы. [24]
В системе ИС-2 все включенные в библиотеку СП постоянно хранятся во внешней памяти машины. Каждой СП присвоен определенный номер ( четырехзначное восьмеричное число), который играет роль имени данной СП. Подпрограммы объединены в библиотеку с помощью каталога, называемого постоянной таблицей характеристик ( ПТХ): в этой таблице для каждой СП отведена строка ( номер которой равен номеру СП), в которой содержится информация о длине СП и ее месте во внешней памяти. ПТХ находится в фиксированном месте памяти, известном программе ИС. [25]
Так же как и в случае линейных списков, этот способ распределения является наиболее подходящим для случая, когда требуется компактное представление древовидной структуры, размеры и конфигурация которой в процессе выполнения программы не должны подвергаться радикальным динамическим изменениям. Во многих ситуациях для того, чтобы производить обращения внутри программы, нам бывают необходимы постоянные таблицы древовидных структур, а требуемая форма этих деревьев зависит от способа просмотра этих таблиц. [26]
Обычно таблицы отображаются в памяти машины вектором, но иногда используют также списки или комбинацию векторов со списками. Напомним, что записи включаются в таблицу и выбираются из таблицы по ключу. До половины всего времени работы транслятора, а иногда и больше, расходуется на поиск в таблицах. Достаточно вспомнить, что в трансляторе ТА-2М, структура которого рассматривалась в 1.3, только постоянные таблицы имеют объем 3000 машинных слов из общего объема транслятора 20000 слов. [27]
Основные особенности работы с использованием средств автоматизации программирования ошетливо прослеживаются уже на примере применения ассемблера по сравнению с обычным программированием в машинных кодах. Текст исходного описания задачи на ассемблере составляется в символической форме, что существенно расширяет ансамбль символов входного языка. Кроме чисто цифровой информации, разрешается использовать весь латинский алфавит, знаки сложения, вычитания, приравнивания и др. При работе на отечественных машинах в комментариях ( см. ниже) могут применяться и буквы русского алфавита, но среди символов печатающего устройства, которым комплектуется ЭВМ. Числовые данные и адреса во входном описании могут иметь не только восьмеричную, но и десятичную форму представления; предусмотрена также возможность прямого указания знака числа. Обозначения команд приобретают вместо цифровой формы символическую, чю преследует цель облегчения их смыслового восприятия и уменьшения количества ошибок при написании программы. Исходная символическая форма всех команд зафиксирована в так называемой постоянной таблице символов транслятора. [28]
![]() |
Способы адресации данных. [29] |
Основной недостаток прямой адресации состоит в том, что манипуляция адресом связана с изменением объектного кода, которое не всегда возможно. Например, в МС гарвардского типа доступ к CSEG с целью модификации объектного кода логически запрещен. В МС неймановского типа доступ к кодовому сегменту может быть тоже запрещен, но уже на физическом уровне, так как исполняемая программа записана в ПЗУ. В любом случае модификация объектного кода нежелательна, что связано со значительными трудностями при его анализе, например, с целью отладки. Использование прямой адресации ограничено случаем, когда расположение данных в памяти известно заранее и не изменяется в процессе исполнения программы. Для МС гарвардского типа могут быть предусмотрены специальные варианты доступа к CSEG с прямой адресацией для считывания констант и постоянных таблиц, которые могут храниться в ней. При этом выбор кодового сегмента кодируется неявно. Для прямой ссылки на регистр, входящий в состав небольшой регистровой памяти МС, обычно требуется несколько бит. Кроме того, отсутствуют циклы обращения к системной магистрали. Все это обеспечивает большую эффективность регистровой адресации. [30]