История отечественной вычислительной техники

Операторный язык ЭВМ М-10 для системы автоматизированного построения тестов типовых элементов замены

Даны обоснование разработки проблемно-ориентированного операторного языка Гентес, а также краткая характеристика операторов, классифицированных по функциональному признаку. Приведено структурное описание языка.

Система автоматического построения тестов на типовой элемент замены (ТЭЗ) представляет собой сложную иерархическую задачу обработки больших потоков данных, отражающих внутренние связи между компонентами ТЭЗа, что вызывает сложность алгоритмов и большой объем программного обеспечения.

Для решения указанной задачи на ЭВМ М-10 [1] необходимо автоматизировать процесс программирования, так как данная вычислительная машина в составе своего математического обеспечения не имеет специальных средств, ориентированных на решение задач логического проектирования и синтеза тестов. Имеющиеся в операционной системе ОС М-10 [2; 3] языки Алгол и Фортран слабо приспособлены для создания комплексов программ специальной ориентации, к тому же качество таких программ, как известно [4; 5], значительно ниже, чем программ, написанных на машинно-ориентированных языках. Это вызывает ухудшение технических характеристик всего комплекса программ системы автоматического построения тестов (САПТ). С другой стороны, машинно-ориентированный язык Автокод-1 позволяет использовать все технические особенности (быстродействие и параллелизм) данной ЭВМ при реализации САПТ, но сложность написания программ и их объем не позволят решить такую задачу в приемлемые сроки.

Для построения САПТ необходимо создание средства, которое максимально сочетало бы, с одной стороны, легкость написания и отладки, присущую языкам высокого уровня, а с другой — способность наиболее полного использования возможностей конкретной вычислительной машины, которую предоставляют машинно-ориентированные языки.

Таким средством является операторный язык Гентес. Узкая ориентация языка подразумевает наличие специальных операторов, реализация которых на машинно-ориентированном языке позволяет использовать преимущества конкретной ЭВМ. Средства отладки языка Гентес, относительная легкость написания программ и автоматическая их корректировка приближаются к языкам высокого уровня.

Общие положения. Операторный язык Гентес рассчитан на эксплуатацию в рамках операционной системы ОС М-10 [2]. Предусмотрена возможность использования стандартных модулей ОС М-10, таких, как корректор, вывод на печать, загрузка с МЛ и МД.

Программа на языке Гентес состоит из последовательности инструкций и оператора END; она может содержать ряд подпрограмм, заканчивающихся возвратом в вызывающею программу (глубина погружения не более 32). Последовательность инструкций выполняется в том порядке, в каком они входят в программу. Этот порядок может нарушаться при выполнении операторов передачи управления, позволяющих осуществлять переход на любой оператор программы либо по метке (до 512 меток), либо по виртуальному адресу. В языке имеются два вида переходов: безусловный и условный; для выполнения последнего используется 16-разрядная строка признаков. Признаки могут формироваться как специальным оператором модификации строки признаков (МОДП, ЗППР), так и теми операторами, работа которых производится небезусловно (ЗПМГ, ЧТМГ, ЗПФЛ и т. д.). Каждый из операторов перехода имеет разновидность — переход на подпрограмму (БПМГ, УПМО, УПМА).

Гентес — программа размещается в оперативной памяти, отведенной пользователю ОС М-10, может в общем случае занимать произвольное количество областей. Количество подобных зон памяти и их размеры указываются пользователем в виде некоторого списка, имеющего вид:

0н><А0к>…<Аnн><Аnк><конец списка>,

где Аiн, Аiк — начальный и конечный адреса i-й области, где i = 0, 1,…, n.

Эти данные необходимы для составления таблиц соответствия “метка — математический адрес оперативной памяти”, которые реализуются с помощью специальных системных операторов (ЗТАМ, ФСПМ и оператор “запуск программы”).

Операторы обработки массивов. В своей основе САПТ представляет собой обработку различных массивов информации; это находит свое соответствие в наборе операторов в языке Гентес (ПЕРМ, СРМС, ОРМГ, ЧТМГ, ГЛМГ, ЗПМГ, УПМГ, ОРФЛ, ЗПФЛ, ЧТФЛ, СЭМГ). Массивы, которые могут быть обработаны этой группой операторов, можно классифицировать следующим образом:

  • неорганизованный файл информации (НФИ);
  • организованный файл информации (ОФИ).

НФИ — это массив, не имеющий заголовка, характеристиками которого являются начальный адрес, конечный адрес или длина. НФИ представляет собой единое целое, и для доступа “внутрь” массива необходимы специальные программные средства. К НФИ можно отнести текстовые массивы. ОФИ представляет собой структуру, имеющую заголовок, в котором указываются параметры массива (начальный и конечный адреса) и ряда строк, каждая из которых в общем случае может иметь подзаголовок с указанием длины. В таком массиве легко может быть осуществлен доступ к любой строке файла. В класс ОФИ в языке Гентес входит информационная структура, организованная в виде магазина с дисциплиной обслуживания типа FILO (“первый пришел- последний ушел”). В отличие от ОФИ магазинам здесь присущи некоторые ограничения, заключающиеся в том, что все строки в магазине имеют одинаковую длину, называемую шагом, и установлена вышеуказанная очередность обращения к строкам.

Для работы с НФИ в языке Гентес имеются два оператора — ПЕРМ (перепись массива) и СРМС (сравнение массива). Для обработки информации ОФИ в языке Гентес существуют операторы ОРМГ, ОРФЛ — организовать магазин и файл соответственно; ЧТМГ, ЧТФЛ — чтение из магазина и файла; ЗПМГ, ЗПФЛ — запись; ГЛМГ- определить глубину магазина; УПМГ — упорядочить строки магазина по возрастанию одного из компонентов строки; СЭМГ — найти указанную строку магазина.

Операторы обработки символов. Для обеспечения работы САПТ в интерактивном режиме вводится специальный набор операторов, позволяющих работать с символьными массивами (АДРС, ПРАД, ПРПВ, ПРПМ, ПРДВ, РЕДЧ, ПЕРС, СРСИ), которые дают возможность произвести трансляцию текста во внутреннее представление, необходимое для дальнейшей обработки в САПТ, что затруднено в М-10, имеющей машинное слово 16-ти разрядов. Оператор ПЕРС позволяет буферизовать определенную часть текста, расположенную до ограничителя; СРСИ — определять наличие символа в некотором тексте.

Операторы специального назначения. Наиболее специфической частью САПТ является вычисление значений на выходных контактах микросхем по известным значениям на их входах. Исходной концепцией в модели на ТЭЗе является представление микросхем различной степени интеграции как “черный ящик”, выполняющий определенные функции. Эти функции берутся из каталогов и представляют собой как булевы уравнения, так и некоторые сложные таблицы. Чтобы формализовать исходные данные такого типа, в Гентес включается ряд операторов:

  • ОДОП, ПРСВ — пересылка значений одного или группы контактов на другие контакты и присвоение значений контактам;
  • ЛГОП, АЛОП — вычисление значений на выходных контактах микросхемы;
  • MACK — анализ наличия активных контактов микросхемы;
  • ЕСЛИ, ФУНК — обработка таблиц истинности.

Операторы ОДОП, ПРСВ, ЛГОП, АЛОП, MACK, ЕСЛИ, ФУНК могут работать с двумя форматами данных, что обусловлено универсальностью подсистемы “модель”, входящей в САПТ. Формат однозначно определяется режимом работы подсистемы “модель”. В режиме “генерация тестов” подсистема выполняет функции параллельного моделирования неисправностей, и в этом случае наиболее выгодным является формат, равный максимальной длине строки арифметического устройства М-10 — 256 бит. В режиме “логическое проектирование” подсистема выполняет функции трехзначного асинхронного моделирования; здесь формат равен 16 бит.

Предусмотрена работа вышеуказанных операторов как непосредственно с полем значений на контактах — “К”, так и с полем промежуточных значений — “А”. Для регулирования потока информации между полями вводится параметр “направление”.

Для обеспечения работы системы в интерактивном режиме вводятся операторы, транслирующие во внутреннее представление условные обозначения контактов ТЭЗа и значения на них — ВХСГ, СКЛМ, СКШШ.

Операторы автокодного включения. Для придания языку Гентес большей гибкости, а также в особых случаях, требующих максимальных скоростей вычислений, сохраняется возможность использования

подпрограмм, реализованных на машинно-ориентированном языке — Автокод. К этой группе операторов относятся АВПН, АВПП.

Рассмотрев основные операторы языка Гентес, следует отметить, что вся система в целом является открытой и позволяет свободно модифицировать имеющийся набор.

Структура языка Гентес.

<программа Гентес>:: = <список операторов> <оператор конец программы>

<список операторов>:: = <оператор> | <оператор><список операторов>

<оператор>:: = <имя><список параметров><конец оператора >

<имя>:: = <мнемоническое сокращение названия оператора из четырех символов >

<список параметров>:: = <параметр>|<параметр><разделитель параметров><список параметров>

<параметр>:: = <метка>| < смещение > | <информация форматом в 1 позицию>| <информация форматом в 1 слово>| <направление> | <процедура>| <номер байта>| <символ>| <мнемонический знак> |

<конец оператора >:: = >

<конец программы>:: = END> %

<метка>:: = <идентификатор метки><номер метки>

<идентификатор метки>:: = LABLIL

<номер метки>:: = целое восьмеричное число от 0 до 777

<разделитель параметров>:: = “запятая”

<смещение><информация форматом в 1 позицию><информация форматом в 1 слово>:: = атрибуты ЭВМ М-10

<направление>:: = <направление 1>|<направление 2>| <направление 3>

<направление 1>:: = А|К

<направление 2>:: = АА|…|КК

<направление 3>:: = ААА|…|KKK

<процедура>:: = <занесение> |<арифметико-логические операции>

<занесение>:: = v|?

<арифметико-логические операции>:: = v^|?^|vV|?V|М2|?М|S1

<номер байта>:: = <символ 1><номер>

<символ 1>:: = Б

<номер >:: = восьмеричные числа от 0 до 777

<символ>:: = любой символ пишущей машинки Consul-254

<мнемонический знак>:: = = | =1 | = 0 | ТО | БП.

В настоящее время реализован 51 оператор, и поле “имя” может принимать следующие значения: мнемоническое сокращение названия оператора из четырех символов:

БПЕР | БПМГ | УСПО | УСПА | УПМО | УПМА | МОДП | ЗППР | МОДЧ | ЗПНО | ЦИКЛ | АВПН | АВПП | ПЕРМ | ЗТАМ | РОМС | СРМС | ПЕРС | СРСИ | НОМК | ФСПМ | ВХСГ | РЕДЧ | ГЛМГ | ЗПМГ | ЧТМГ | ОРМГ | УПМГ | ВЫДЧ | ПРДВ | ПРВП | ПРПВ | ПРПМ | ПРАД | СКЛМ | СКШШ | ОРФЛ | ЗПФЛ | СЗМГ | ЧТФЛ | АДРС | ОДОП | ЛГОП | АЛОП | ПРСВ | MACK | ЕСЛИ | ФУНК | LABL | STOP | END.

Каждый оператор имеет свою последовательность и определенный набор параметров из множества, указанного выше, следующих в заданном порядке.

Выводы. В данной работе дается обоснованное введение проблемно-ориентированного языка Гентес. Исходя из требований к языку разработанное множество операторов разбивается на следующие группы:

  • общего назначения (операции над признаками и переходы);
  • обработки массивов;
  • обработки символьного текста;
  • вычисления значений на контактах микросхем и ячеек;
  • системного назначения (организация таблиц меток и запуск программы на языке Гентес).

В статье дается краткое описание групп операторов. К настоящему времени ряд подзадач САПТ, таких, как обработка исходного массива, поиск цепей обратной связи и др., реализован на операторном языке Гентес. Имеющийся опыт дает основание считать данное средство эффективным для реализации программ.

Литература

  1. Карцев М. А. Вычислительная машина М-10. — Доклады АН СССР, т. 245, 1979, № 2.
  2. Беляков М. И., Гринкруг  Е. М., Кроль  Л. А. Универсальная операционная система разделения времени для многопроцессорной ЦВМ М-10. — Управляющие системы и машины, 1980, № 1.
  3. Беляков М. И., Гринкруг  Е. М., Кроль  Л. А., Натансон  Л. Г. Операционная система М-10. Система программирования. — Вопросы радиоэлектроники, сер. ЭВТ, 1980, вып. 9.
  4. Автоматизированное проектирование цифровых устройств. Под ред. Бадулина  С. С. — М.: Радио и связь, 1981.
  5. Криницкий Н. А., Миронов  Г. А., Фролов  Г. Д. Программирование и алгоритмические языки. — М.: Наука, 1979.

Статья опубликована в сборнике “Вопросы радиоэлектроники”, серия “Электронная вычислительная техника”, вып. 9, 1984 г., стр. 117.