Файл: Каверкин, И. Я. Анализ и синтез измерительных систем.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 29.10.2024

Просмотров: 68

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

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

Затем все элементы информации кодируются и заносятся в па­ мять, которая называется применительно к подобным задачам ав­ томатическим или машинным словарем [15].

Организация исходной информации в виде автоматического словаря требует решения второй важной задачи — поиска инфор­ мации, или поиска по словарю. Поиск по словарю является одной из важнейших операций, применяемых при обработке информации на ЭВМ. Непосредственно на поиск информации, как правило, рас­ ходуется значительная часть машинного времени, отведенного на решение задачи в целом.

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

Организация словаря и способ адресации к нему взаимозависимы и, в свою очередь, могут быть связаны со способом кодирования символов алфавита и элементов информации.

Из сказанного следует, что создание машинного словаря требует решения следующих задач: кодирования элементов информации; кодирования адресов; разработки структуры словаря и способа адресации.

Все эти задачи решаются во взаимосвязи и с учетом характе­ ристик ЗУ — количества адресов и емкости каждой запоминающей ячейки. Емкость ячеек существующих быстродействующих ЗУ с произвольным обращением невелика и ограничивается 36—48 дво­

41


ичными разрядами. Для размещения кодовой комбинации, соот­ ветствующей одному элементу информации со всей сопровождаю­ щей информацией, этого часто не хватает. Поэтому основная инфор­ мация может храниться во внешних накопителях, а в ячейки бы­ стродействующего ЗУ помещается лишь ее адрес (адресная привязка). Тогда процедура извлечения всей необходимой инфор­ мации становится двухступенчатой: по адресу — вхождение в бы­ стродействующее ЗУ, а по дополнительной адресной привязке — вхождение во внешнюю память с извлечением всей информации, соответствующей данному элементу.

Организации памяти ЦВМ и способом адресации посвящено большое число работ. В частности, с достаточной полнотой эти во­ просы изложены в [15, 1&].

Вцелом задачи кодирования и организации хранения больших массивов информации решаются с общих позиций, и обеспеченность системотехники, и в частности теории проектирования ИИС, можно считать удовлетворительной.

Мы рассмотрели кодирование числовых массивов и содержатель­ ных описаний. Ниже мы рассмотрим и кодирование структур, но предварительно остановимся на принципах представления алго­ ритмов.

Внастоящее время для описания алгоритмов служат специали­ зированные, так называемые алгоритмические, языки, обеспечи­ вающие возможность представления используемых вычислительных процедур в виде, удобном для автоматизации программирования. При этом для различных задач применяются различные языки, число которых достигает нескольких сотен и непрерывно увеличи­ вается. Это объясняется тем, что бурное развитие методов количе­ ственного анализа на основе ЭВМ привело к пересмотру взглядов на формальный аппарат, лежащий в основе такого анализа. Если еще сравнительно недавно инженерная методика расчета предпо­ лагала наличие компактных и удобных в реализации аналитических соотношений, то в настоящее время целью разработчиков такой методики является создание алгоритма. Именно для описания ал­ горитмов создаются специальные языки, которые позволяют пред­ ставлять вычислительные процессы с учетом их динамики. По­ скольку различные задачи (инженерные, экономические управ­ ленческие и т. п.) требуют для своего решения использования раз­ личных методов, разработка большого числа алгоритмических язы­ ков становится необходимостью. Как все формализованные языки, алгоритмические языки включают в свой состав набор элементар­ ных символов (алфавит), из которых составляются слова (выраже­ ния, кодовые комбинации), набор формальных правил действия над словами и выражениями (синтаксис), а также указание значе­ ний этих выражений (семантика). Правила строго формальны, т. е. выполняются без учета содержания выражений.

Наиболее известны и распространены три языка: ФОРТРАН, КОБОЛ и АЛГОЛ.

42


ФОРТРАН (Formula Translator) представляет собой язык для инженерных расчетов главным образом численных задач на малых вычислительных машинах.

КОБОЛ (Common Business Orientid Language) предназначен для решения экономических задач, характеризующихся большими массивами исходной информации.

АЛГОЛ (Algoritmic Language) наиболее распространен в силу своей универсальности и достаточно широких возможностей.

Последнее время повысился интерес к методам описания систем и разработке соответствующих языков. Представляет интерес алго­ ритмический язык АЛ ГОС (алгоритмическое описание систем), предложенный для удовлетворения требований системотехники и основанный на идее последовательной формализации.

Рассмотрение любого алгоритмического языка связано с исполь­ зованием некоторого метаязыка для введения необходимых первич­ ных определений. При этом используется ограниченная совокуп­ ность металингвистических понятий и формул. К их числу чаще всего относятся понятия «постоянная» и «переменная», операции перечисления и составления, а также формула «равно по определе­ нию». Примером метаязыка может служить метаязык Бэкуса, ис­ пользовавшийся для описания АЛГОЛ-60 [7]. В металингвисти­ ческих формулах в левой части пишется определяемое понятие, а

вправой — определяющее его выражение. Разделяются левая и правая части символом:: = , имеющим смысл «равно по определению».

Вкачестве постоянных величин в формулах выступают основные символы описываемого языка, а в качестве переменных — более общие понятия (слово, оператор и т. п.). Эти понятия заключаются

вугловые скобки <7 >> и называются металингвистическими пе­ ременными, на место которых в металингвистической формуле мо­ жет быть поставлено любое конкретное их значение.

Вкачестве примера приведем две формулы, использующие опе­ рации перечисления и составления:

< х > : : = A \ B \ C \ D . . . ; < л :> : ; =АВС .

Первая формула

читается так:

«переменная < » равна по

определению или А,

или В, или С,

или . . . ». Здесь вертикальная

черта выражает логическое «ИЛИ». Вторая формула читается сле­ дующим образом: «переменная равна по определению АВСу>. Последовательное написание двух символов выражает логическое «И». При построении металингвистических формул применяется и объединение операций перечисления и составления.

Теперь можно компактно охарактеризовать конкретные алго­ ритмические языки, представляющие интерес для современной теории проектирования ИИС. Поскольку при алгоритмическом описании систем применяются как формульные, так и универ­ сальные языки, приведем основные данные языков ФОРТРАН и АЛГОЛ-60.

43


ФОРТРАН. Алфавит ФОРТРАН включает в свой состав 26 заглавных букв латинского алфавита, 10 арабских цифр, 5 симво­ лов операций и некоторые знаки препинания.

Именно:

< б у к в а > : : = A \ B\ C \ D \ E \ F \ G \ H \ I \ J \ K \ L \ M \ N \ 0 \ P \

 

\ Q \ R \ S \ T \ U \ V \ W \ X \ Y \ Z \ - ,

< ц и ф р а > : : = 0 11 I 2 I 3 14 15 16 I 7 18 19 ;

<<операция>>: : = + | — | * | /

| ** ;

< з н а к > : : =

: = |( |) .

 

Таким образом, для символа может быть составлена следующая

формула:

 

 

< с и м в о л > : : = < б у к в а > |< ц и ф р а > |< о п е р а ц и я > |

 

 

|< з н а к > .

Символы операций

имеют следующий смысл: «+» — сложить;

«—» — вычесть; «*» —■умножить;

« \» — разделить; «**» —' воз­

вести в степень.

 

 

Знаки, входящие в алфавит языка ФОРТРАН, выполняют функ­ ции, близкие к функциям аналогичных знаков естественных языков. Заметим лишь, что знак : = выражает операцию присваивания, т. е. запись а : = Ь означает, что идентификатору а присваивается зна­ чение выражения Ь.

Язык ФОРТРАН позволяет описывать в качестве объектов, над которыми выполняются действия, значения, переменные и функции. Из значений, переменных, функций и операций составляются вы­ ражения. Выражение, как и идентификатор, может принимать раз­ личные значения, определяемые значениями входящих в него опе­ рандов.

Описание действий производится с помощью операций и, глав­ ным образом, операторов: присваивания, перехода, останова и др.

В целом алгоритмический язык ФОРТРАН оказывается весьма эффективным для инженерных расчетов. Однако отсутствие воз­ можности выполнения логических операций ограничивает область применения ФОРТРАНА.

Существенно богаче возможности универсального алгоритмиче­ ского языка АЛГОЛ-60. Алфавит АЛГОЛ содержит 116 символов:

1. < буква > : : = А [ В | С | . . . \ a \ b \ c \ . . . | z;

2.< ц и ф р а > :: = 0 |1 |2 |3 |4 |5 |6 |7 |8 |9 ;

3.<логическое значение> :: = true | false;

4. < разд ели тел ь > :: = , | • 1101: | ; | —■| step | until | while |

I comment |: : = ;

5.

<• арифметическая операция

1— | х | /

1-f-1t ;

6.

< :логическая операция> : : = =

|=) | V ІА I

і ‘>

44


7. ^операция отношения> : : = < I

I=

IО I > I Ф ;

8. операция последовательности > : : =

go

to j if | then | else ]

 

 

J for I do;

9.< ск о б к а > — ( |) |1 |] |< ^ |> | begin | end ;

10.<описание>-: : = own | boolean j integer | real | array | switch |

Jprocedure;

11. < спецификатор > : : = string | label | value.

В результате алфавит может быть описан таким образом:

< с и м в о л > : := < б уква > |< ц и ф р а > |< л о ги ч еско е значение>

|< р азд ел и тел ь > |. . . |-<спецификатор)>.

В отличие от алфавита языка ФОРТРАН здесь используется 52 буквы латинского алфавита — строчные и заглавные. Больше арифметических операций: добавляется операция «деление нацело», выражаемая символом

Важным дополнением в языке АЛГОЛ является включение в его алфавит логических значений true (истинно) и false (ложно) и, со­ ответственно, логических операций. В результате на языке АЛГОЛ могут быть записаны не только арифметические, но и булевы вы­ ражения.

Характерной особенностью языка АЛГОЛ является наличие в нем так называемого оператора цикла. Оператор цикла указывает на необходимость многократного выполнения некоторого следую­ щего за ним оператора, причем перед очередным повторением не­ которой управляемой переменной присваивается каждый раз но­ вое значение. Наконец, важнейшей грамматической категорией языка АЛГОЛ являются процедуры. Процедура представляет со­ бой некоторую последовательность команд, снабженную заголов­ ком, включающим в себя описание параметров, идентификаторы и необходимые пояснения. За заголовком следует тело процедуры, т. е. конкретный блок, представляющий всю последовательность операций.

Возможность введения процедур делает АЛГОЛ открытым язы­ ком, т. е. позволяет по мере необходимости расширять язык, добав­ ляя описания процедур и вводя операторы этих процедур в состав основного словаря языка. Допустимо также создание^ диалектов, т. е. самостоятельных языков, составленных частично из основных символов и частично из операторов процедур.

Совместное рассмотрение специфики процесса проектирования сложной многофункциональной информационной измерительной системы (например, на основе графа проектирования) и методов формализованного представления исходных и промежуточных дан­ ных показывает, что непосредственное использование известных принципов кодирования и алгоритмических языков типа ФОРТРАН и АЛГОЛ не обеспечивает приемлемого для практики решения

45