Главная > Энциклопедия кибернетики. Т.1
НАПИШУ ВСЁ ЧТО ЗАДАЛИ
СЕКРЕТНЫЙ БОТ В ТЕЛЕГЕ
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO

АДРЕСНЫЙ ЯЗЫК

— алгоритмический язык, ориентированный на приложения в качестве основы для создания языков программирования. Основу А. я. составляет отношение адреса и содержимого; формализация этого отношения позволяет в простой форме описывать операции, реализуемые на ЦВМ. Разработан 1955—56 в СССР. В А. я. элементы исходной информации, результаты решения задач, а также конструктивные объекты, используемые для построения программ решения задач, рассматриваются как объекты некоторой системы кодов S, между которыми установлены определенные соотношения, называемые операциями над кодами. Эти соотношения позволяют по обычным правилам строить выражения, значениями которых также являются коды, полученные в результате выполнения указанных в них операций. При этом коды подмножества интерпретируемого как мн-во элементов исходной информации, могут задаваться в явном виде и посредством элементов некоторого мн-ва A (A CZ S), называемого мн-вом адресов.

Операция выделения содержимого адреса, т. н. штрих-операция, задает отображение мн-ва А в мн-во В (5 с S), называемое мн-вом содержимых этих адресов. Такое отображение ваз. адресным. Штрих-операцию обозначают символом (штрих), напр., , где а е. А и b е. В. Штрих-операция однозначна, т. е. каждому адресу соответствует только одно содержимое. Никаких ограничений на выбор мн-ва А в А. я. не накладывается. При каждой конкретной реализации А. я. это мн-во может определяться некоторым конструктивным образом. В простейшем случае при ориентации языка на определенную машину в качестве А может быть принято мн-во адресов ее оперативной памяти и программных регистров; в др. случаях в качестве А может рассматриваться мн-во байтов и т. д. В более общем случае при ориентации языка на класс машин в качестве А может быть принято объединение некоторых подмножеств полей памяти. При этом, как правило, пересечение А и В не пусто, что позволяет осуществлять многократное применение штрих-операции, приводящее к понятию ранга адреса. Пусть b является содержимым адреса а, т. е. , а с есть содержимое адреса b, т. е. b — с; тогда а есть адрес адреса кода с, где а наз. адресом второго ранга кода с, или фиксатором (или косвенным адресом) . Аналогично определяют адреса высших рангов: . Адрес а наз. адресом нулевого ранга кода а, первого ранга (или просто адресом) относительно своего содержимого и т. д.

Операцию, обратную штрих-операции, наз. минус-штрих-операцией, обозначают ее вверху слева от аргумента . Эта операция не однозначна; одному содержимому b может соответствовать мн-во адресов таких, что для каждого имеем

Для определения и изменения адресного отображения вводят алгоритм, операцию засылки по адресу (соответствует операции присваивания в др. языках), которую обозначают символом Запись операции а означает, что: 1) элемент а включается в мн-во элемент b включается в мн-во содержимых устанавливается соответствие все ранее установленные соответствия вида у, где , остаются неизменными. В операции b а, а и b могут быть некоторыми ф-циями. Тогда значение ф-ции b становится содержимым адреса, являющегося результатом вычисления значения ф-ции а При конструировании ф-ций, кроме штрих-операций, могут быть использованы арифметические функциональные и т. п.), логические отношения и др. операции. Такие функции наз. адресными. Выражение , где а и b — адресные ф-ции, наз. адресной формулой преобразования, или формулой засылки. Процесс преобразования информации в А. я. представляют в виде адресной программы, которую задают исходным распределением адресов в S и последовательностью адресных ф-л с указанием порядка их применения. Последний задают с помощью операторов цикла, условного, безусловного и вычисляемого переходов, обращения к подпрограммам и т. д. В зависимости от того, какие объекты, из которых конструируется программа, могут быть представлены в ней посредством содержимых адресов, различают ступени А. я. На первой ступени с помощью адресов задают элементы исходной информации и метки; на второй — содержимыми адресов могут быть и адреса; наконец, на третьей ступени содержимыми адресов могут быть еще и символы одно- и двуместных операций.

Запись программы в А. я. состоит из двух частей: исходного адресного отображения и динамической части. Динамической частью программы наз. список адресных строк. Исходное адресное отображение обычно задают соотношениями вида: среди этих соотношений могут быть и такие, в которых с не является элементом исходной информации, а поэтому их можно записать в виде элементарных ф-л засылки вида с Совокупность таких равенств наз. статической частью адресной программы. А. я. допускает свободное варьирование объемов статической и динамической частей, т. е. информация из статической части может быть перенесена в динамическую часть и наоборот. В процессе решения любой задачи обозревается относящаяся к ней информация. Говорят, что код обозревается программой, если его адрес некоторого ранга содержится в адресной

программе. Применение адресов высших рангов расширяет возможности обозревания кодов программы. Программирование сводится главным образом к построению схем обозревания информации. Схемой обозревания последовательности кодов наз. циклическую адресную программу, на i-м из циклов которой обозревается элемент последовательности. При построении схем обозревания информации для упорядочения элементов в мн-ва вводят операции следования: элементы исходной информации упорядочивают с помощью адресов, в которых они содержатся по некоторому рангу; отношение следования на мн-ве адресов чаще всего задают с помощью арифм. операций для целых чисел (машинных адресов).

На основе А. я. разработано семейство языков программирования, отличающихся один от другого выбором символики, набором операторов, уровнем алгоритмизации вводимых в них операций следования в мн-ве адресов и степенью представления объектов, из которых конструируются программы при помощи содержимых адресов. В зависимости от этого выделяют уровни, стили и ступени А. я. Уровень А. я. определяется уровнем упорядоченности адресов, уровнем алгоритмизации введенных в них операций следования. Различают три осн. уровня языка: общеалгоритмический, уровень условных адресов и уровень конкретных адресов. На общеалгоритмическом уровне принимают наиболее естественное для программируемой задачи мн-во адресов и в тех случаях, когда этого требует задача, вводят операции следования, описываемые общематем. средствами (например, с помощью индексов). На уровне условных адресов адреса упорядочивают, только исходя из требований задачи; предполагается упорядочение отдельных массивов адресов, обрабатываемых алгоритмом, взаимная же упорядоченность массивов и др. вопросы, связанные с фактическим памяти распределением, не решаются. Обычно массивы представляют собой арифм. последовательности адресов, первый (или нулевой) из которых задан. Последовательности, определяемые разными начальными адресами, предполагаются не пересекающимися. Операция следования описывается, таким образом, уже алгоритмически. Напр., операция следования по индексам для элементов матрицы, расположенных по строкам, начиная с адреса имеет вид , где n — порядок матрицы. Уровень конкретных адресов — это выполнение данного алгоритма на конкретной машине, в связи с чем и решаются вопросы определения истинных операций следования. Предполагается, что мн-во адресов, исключая программные регистры, полностью упорядочено. В А. я. заложена возможность перехода от уровня к уровню, начиная от самого абстрактного алгоритм, языка и кончая полным распределением адресов для данной машины. Выбор определенного алфавита, набора элементарных операций и допустимых ф-л языка определяет его стиль. Различают язык публикаций, входные языки конкретных трансляторов, машинные стили, запись алгоритмов в которых отличается от машинной записи только кодированием.

Возможность описания адресов как ф-ций некоторых параметров позволяет описывать на А. я. произвольные схемы обозревания информации и сложные информационно-логические и экономические алгоритмы, сложные процессы просмотра и поиска информации, организованной в цепные списки и списковые структуры; алгоритм, процессы такого рода невозможно описать с помощью алгоритм, языков типа АЛГОЛ, не привлекая дополнительные средства. В этом отношении А. я. предвосхитил алгоритмические языки, созданные за рубежом для списковой обработки символьных выражений (напр., ЛИСП и др.). Принципиальная особенность А. я. заключается в их естественной интерпретации в качестве языков ЦВМ внутренних. Поэтому при составлении конкретных языков машинно-ориентированных исследователь может использовать аппарат адресных алгоритмов в качестве удобной системы понятий для описания алгоритмов и элементных структур ЦВМ, а также для описания трансляторов и интерпретаторов языков программирования. Работы по адресному программированию оказали влияние на разработку структур и систем команд ряда ЭВМ (в частности, «Киев», «Днепр-2»), Средства А. я. вошли как составная часть в языки программирования, такие как АЛГЭМ и А-КОБОЛ — язык, ориентированный на описание алгоритмов трансляции. А. я. получил дальнейшее развитие в языках ПЛ-1, АЛГОЛ-68, СИ МУЛА.

Лит.: Ющенко Е. Л. Адресное программирование. К., 1963 [библиогр. с. 285-286}; Бабенко Л. П. Об использовании языка типа КОБОЛ для описания трансляторов. «Кибернетика», 1965, № 5. В. П. Семик, Е. Л. Ющенко.

1
Оглавление
email@scask.ru