Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Журавлев, Ю. П. Системное проектирование управляющих ЦВМ

.pdf
Скачиваний:
15
Добавлен:
22.10.2023
Размер:
12.85 Mб
Скачать

г) цепочки х и у интерпретируются как разные коди­ ровки одной и той же программы;

д) L(GZ) — внутренний язык

ЦВМ, оптимизирующий

некоторые критерии оценки его

эффективности.

Поскольку

a e V i

иеКг —^ г ,

то очевидно,

что Vi—J£Ji = V2—^ 2 = V0, и поэтому грамматики

Gi= (2Ju

Vo, Pu a)

G2 = (2J2, Vo,

P2, a)

отличаются только алфавитами основных символов и си­ стемами правил подстановки.

Возникает ряд вопросов.

1) Существует ли преобразующая грамматика Gx, переводящая слово x e L ( G в слово y^.L(G 2 ), и каки­ ми свойствами она обладает?

2) Существует ли преобразующая грамматика Gs, переводящая слово y ^ L ( G z) в слово x ^L (G i), и какими свойствами она обладает?

3) Какова взаимосвязь между грамматиками G4 и Gs, а также между грамматиками G2 и Gx?

Ответам на первые два-вопроса посвящается мате­ риал очередных двух параграфов. Ответы на третий во­ прос имеют не только теоретический, но и практический интерес, однако этот вопрос остается пока открытым.

Для того чтобы различать преобразующие грамма­

тики Gx и Gs, будем первую

из них называть шифр и -

р у юще й , а вторую — д е ш

и ф р и р у ю щ е й .

Рассмотрим различные типы шифрирующих грамматик и их свойства.

Определение. Ш и ф р и р у ю ще й г р а м м а т и к о й Gt называется упорядоченная четверка

 

Gt = ( £ l ,

Р, о),

где

— конечный алфавит

входных символов; 2 —-

конечный алфавит выходных символов; Р — система пра­ вил подстановки; а -— начальный символ.

Из всех возможных шифрирующих грамматик выбе­

рем

для рассмотрения

класс грамматик, для которых

а)

Р ={т

а Ё ^ 2}, причем

если Wf— >-ai, wz— нх2, W1 — W2 , то cti—a2;

если a 0 2 , f'l S2 в правиле w -^a, то Ш 0 2 , и w — o.\

б) aeJ£J*i.

Из а) вытекает;

90

Лемма 2.1. 41=(Р) — # (S2),

доказательство которой

очевидно.

 

Лемма 2.2. Шифрирующая грамматика

G; = (^ji,

Р, о),

для которой выполняются требования а) и б), является определенной.

*

 

 

Д о к а з а т е л ь с т в о . Пусть

— левосторонний

вывод:

 

 

w0=$wt =$>w2... гфщу-,

 

где Wo—о, wr=w.

 

выводе

Поскольку в каждом непосредственном

аугф Шг+1 новый символ выходного

алфавита

порожда­

ется под воздействием единственного правила и не су­

ществует двух различных правил, порождающих одина-

*

ковый символ выходного алфавита, то вывод szpw

единственный. Единственность вывода доказывает свой­ ство определенности шифрирующей грамматики G(.

Определение. Говорят, что а зависит от о, если

*

где и,

Определение. Р а н г о м правила w— уа называется чи­ сло k такое, что \ w \ - k .

*

Обозначения. 1. S(?) = {y[3r^t/G £ *2} — множество

 

°f

всех цепочек, выводимых в грамматике Gt из з.

2.

2 — множество символов алфавита ^ 2,

каждый из которых имеет хотя бы одно вхождение в це­ почку у.

3.Pz <=Р — множество правил, зависящих от о.

Теорема 2.1. Если Gt = ( £ u 2 » Р, сг) — шифрирую­ щая грамматика, для которой выполняются следующие условия:

а)

#(P) = # ( U L f ) , Р = {ш-ос| |а»|<й},

 

W

б) | з | < &, ^ > 2 ,

в)

з = дГуф у G L (G2), 1у | > 1,

 

о.

91

y^S(a)
3) L (G*) с
to справедливы соотношения: 1) и Р' = Р;
(ft)
2) U 2уС Е 2;

и S(a).

»eU2?

(*)

Д о к а з а т е л ь с т в о . 1. Количество различных на­ чальных символов а, являющихся цепочками длины не

более k в алфавите ^Ji, в точности

равно количеству

элементов множества (J

 

 

 

(ft)

 

 

 

 

Множество правил, зависящих от некоторого о, имеет

вид

 

 

 

 

Ра{(з — a) |J (w

а) | з — uwv,

u,w,v £

.

Здесь только одно правило ранга

|а |. Если

|о |= /г,

то для всех а длины п

 

 

 

 

РЛ>1)= [ 0

(-г — аг-)|

 

и, следовательно,

 

 

 

 

[J Ра{п) = 1)

Ра =

Р.

 

П=1

_,

 

 

 

2.Доказательство второго утверждения очевидно.

3.Множество

 

L ( G i ) =

U 5 (з)

 

 

-e u s f

 

 

(ft)

есть, по существу, язык,

порождаемый шифрирующей

грамматикой

Gt.

 

Для того

чтобы доказать справедливость третьего

утверждения теоремы, достаточно показать, что 4£5(я) >

> 1.

\x \= k ,

|у \ = т ,

tn<k. Тогда в цепочке х т

Пусть

способами

можно

выделить

подцепочки длины k—т + 1

92

 

 

 

и к каждой из них применить соответствующее правило

w*а. Остальные символы переводятся в алфавит

2

без изменения. Количество полученных (только!) таким образом различных цепочек у длины т равно т. По­ скольку \ у \ > \ , то £ (х )> 1 . Третье утверждение дока­

зано.

Следствие. Из всех следствий, вытекающих из теоре­ мы 2.1, наиболее важным для дальнейшего изложения

является следующее. Если грамматика

Gt удовлетворяет

требованиям теоремы 2.1, то для

заданных о = х и у е

e L (G 2)

справедливо:

 

 

а)

РХ9=Р, б)

в)

!/eS(x).

Таким образом, существует шифрирующая грамма­ тика

Gx=(2Ji, 2Jv> Рх, х),

в которой

у GE Р (G2).

Следовательно, задача выбора внутреннего языка проектируемой ЦВМ может быть сформирована так: по заданным 2„ х необходимо найти и Рх, т. е.*постро-

ить шифрирующую грамматику Gx такую, что Xz$y, где

°х

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

Поэтому

при

построении шифрирующей грамматики

Gx удобно

рассмотреть ее

частные

случаи — шифрирую-

щие грамматики

Gp, G^, Gfl,

которые

в алфавите

— 2^

имеют соответственно символы, интерпретируемые как

93

команды первого, Bfoporo и третьего ДоПолш^ёльНьЬс списков.

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

1. М, М0, Мр, М , Мд ■— соответственно множества опе­

раций основного, усеченного, первого дополнительного, второго дополнительного и третьего дополнительного списков.

2. N,JV^,Nb— соответственно множества различных

слов, которые могут быть записаны в адресные части команд основного (первого дополнительного), а также второго и третьего дополнительных списков.

Пусть N k, N^k — соответственно множества

различных

слов,

которые

могут

быть записаны в адресные части

команд второго

и

третьего

дополнительных

списков,

имеющих k фрагментов, тогда

 

 

 

 

7

(*>

7/г

9ft

 

 

 

 

 

для всех допустимых значений k.

 

3.

Символ v входного алфавита _^Ji во всех шифри

рующих грамматиках интерпретируется как код команды

основного списка.

Игнорируя

возможность присутствия

в реальном коде команды основного списка различных признаков и кодов других дополнительных предписаний, можно записать

v = (М* v),

т. е. символ входного алфавита есть упорядоченная пара, где

a)б) v^N .

Для случаев двоичного кодирования команд справед­ ливы выражения:

v ^ B A R\

где — {0,1} — двоичный алфавит, Rq— разрядность кода операции, /?а — разрядность полного адреса, А — адрес­ ность.

94

4.

Цепочка w символов входного алфавита Si есть

упорядоченная пара

w= (т, п),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где а)

т£г_Мк,

если

\w\ =

k,

 

 

 

 

 

 

б)

n<~Nh, если

\ w \ ~ k .

 

 

 

 

 

 

5)

Символы р,у, б

соответственно выходных

алфави­

тов

Еп 2

•— £,, £0 — £,

есть упорядоченные пары:

 

 

р~(р1>рг); Pi

 

 

 

 

 

 

 

 

т = (т1. т2); т . е ^ ;

у2е ^ ;

 

 

 

 

 

6=?:(61,б2); 01^Л4е; 02СЕ^9-

 

 

 

Символы р,у, б соответственно

выходных алфавитов

П

S TП s .>

П S, суть

v = (p, v)

Wj £r £3- П £„

где

/ = P.Y. 0-

 

 

 

 

 

 

 

 

 

 

6. Пусть I

1., JT , JT — подмножества множества N Мк,

зависящие от

р

7

 

 

 

 

 

 

( А )

 

ас, такие, что

 

 

 

 

 

 

 

 

 

 

# О1 р) =

#

( ^ — £,),

 

 

 

 

 

 

 

#(L fiT) =

# ( £ T- S

l).

 

 

 

 

 

 

 

#(1Г8) =

 

 

 

 

 

 

 

и для

каждого m G '-’Cj ( / =

Р>У, 0) имеется подстановка

в которой

 

 

m —*/, G

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

/о (/я) = р,; p i G ^ ;

 

 

 

 

 

 

 

<Pe(m) = Yi; Y iG ^ ;

 

 

 

 

где

 

фо (т>Со) — 0п' 6i

C0G ^>

 

 

 

 

 

 

 

 

 

 

 

 

 

/о: '^Г”р —- jWp—отображение множества

1Гр на множест­

во

(простая перекодировка),

 

 

 

 

 

<р0: ТГт —>Л4Т— отображение множества

'JT

на

мно­

жество Мт (усечение каждого кода

операции цепочки т),

: jF'e—-Мд — отображение

множества

Л70

на

мно-

кество Ме (перекодировка

с использованием относитель­

ных кодов операции и базы),

 

 

 

 

 

 

Со— база

(базовый код операции).

 

 

 

 

95

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

7. Пусть

Л Й, Л' , Аг„ — подмножества

[J Nk для

всех

допустимых

'

каждого

(к)

(/ =

р, у,

k такие, что для

п G

6) справедливо:

 

 

 

 

 

 

/ (п, 65) = р2; р2 G

 

 

 

 

9 (ft, к,&) =

ъ\

T2G ^ t;

 

 

 

<\i (ri, k, £д) =

62;

62 G

>

 

 

где f :iVp—+N — отображение множества jv^ на множест­ во N,

<Р: Л^т —*■А^т — отображение множества JV” на множе­ ство N

Ф : Ж0 —- — отображение множества Л’0 на множе­ ство ЛГВ>

65— база (базовый адрес).

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

зой 35.

 

 

 

 

 

 

 

 

 

 

 

 

С учетом замечаний

1—7 шифрирующие грамматики

можно описать следующим образом.

 

 

 

Ш и ф р и р у ю щ а я

г р а м м а т и к a'Gp

есть

упорядо­

ченная шестерка Gp =

(£,,

Рр, f0, f, х), система

правил

которой обладает следующими свойствами:

 

 

 

* Pi'ft

v Рз l-

w

* P1w G

U ^ I

!

 

| да| <6; w = (m, ti)\

mG-Vy,

 

_

w

^ U ^ ;

« G i\’’p; p, G

 

 

 

 

P2 G

P G

 

 

 

 

Таким образом, каждое правило

w ~ +а применяется к

соответствующей

подцепочке исходного

слова

л; тогда

и только тогда, когда одновременно

выполняются прави­

ла т —*В,

и /г—*■В2,

т. е. когда

цепочка

операций основ-

fo

 

f '

соответствующий

ей

кортеж

полных

ного списка

и

адресов

попадает

в_ допустимые

для

перекодировки

подмножества ду

 

и Ау

 

 

 

 

 

 

 

96

Ши ф р и р у ю щ а я

г р а м м а т и к а

Осесть

упорядо­

ченная

шестерка

 

 

 

 

 

 

где

 

 

GT=

(^i,ST,P r ?0.<p,x)f

 

 

 

 

 

 

 

 

 

 

 

Р = -* у,, «• — Т2Ь

а Iш U 2* ;

 

 

 

Фо

9

 

 

(А)

 

 

 

М < & ;

w =

(m, п);

 

« £ i A T;

 

 

 

M T = U < ; r 2 e w T; Y 6 Z J .

 

 

 

 

T

(ft)

 

 

'

f

 

 

 

 

Ши ф р и р у ю щ а я

г р а м м а т и к а

Ge

есть

упорядо­

ченная

шестерка

 

 

 

 

 

 

 

 

 

G0 =

(Si,S6, Рй, to, Ф, x )>

 

 

где

 

 

 

 

 

 

 

 

 

Pf)=

{m Ф»* ®1 > n Ф

w

_

(A)

 

;

-

|да|</г;

w = (m , n)\

и £ ф . ;

 

 

 

02GA/e;

6GS,}.

 

 

 

 

 

 

Ш и ф р и р у ю щ а я г р а м м а т и к а

G x есть упоря-

доченная шестерка

 

 

 

 

 

 

 

 

 

Gx ^ ( Z ltZ y, P x,F,

Г , х ) ,

 

 

для которой справедливы утверждения:

а) £у = U U

причем

(i?- i : 1) n ( s T- s 1)n(5:e- s 1) = 0 I

 

s ? n a Tn 4 = s *;

б)

р х= р ^ Р , { ] р ь; #(Лх) = *(^у);

в)

F — отображения /о, фо, фо цепочек кодов операции

на множества допустимых перекодировок;

г)

FF— отображения f, ф, ф кортежей адресов в кор­

тежи относительных адресов;

д)

— входное слово;

е)

— алфавит входных символов.

Для того чтобы с помощью шифрирующей грамма­

тики

G x получить выходное слово y ^ L ( G z ) , необходимо

учитывать следующее:

7-458

07

1) При заданном k должно выполняться соотноше­ ние:

\у\ =min|{t/|i/&S(A:)}|,

т. е. правила подстановки должны применяться в поряд­ ке убывания их рангов.

2) В шифрирующей грамматике Gx возможны ситуа­ ции, когда для одной и той же цепочки w одновременно выполняются условия:

яг — Р,,

га —ГВ„1—w — В,

fo

f

яг — Ti.

 

<Ро

Ч>

гаг — 0„

га — б2 (— да — б

Фо

Ф

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

3) Поскольку входное слово х может быть расчленено на подцепочки длины произвольным образом, то и порядок применения правил может быть произвольным. При этом всегда выходное слово у принадлежит множе­ ству S ( x ). Поиск такого разбиения, когда

y ^ L ( G 2)

при больших значениях \х\, k затруднен из-за астроно­ мической величины чисел, указывающих на количество возможных разбиений. Этим самым затрудняется выбор оптимального по экономии памяти для программ в усло­ виях ограничений, оговоренных в §§ 2.3, 2.5, внутренне­ го языка проектируемой управляющей ЦВМ. Вполне удовлетворительное решение проблемы выбора внутрен­ него языка проектируемой управляющей ЦВМ может быть получено, если в качестве последнего выбрать мно­ жество L(GX) такое, что

*

L (Gx) ~ { д \ х ^ д \ \д\ = min | у G 5 (л) |}

для всех х, и потребовать, чтобы грамматика Gx была левосторонней.

98

Алгоритмы поиска языков L(G2) и L(GX) построить можно, однако первый из них гораздо сложнее второго из-за большого количества различных вариантов разбие­ ния входного слова. При больших значениях \х\ и k оба языка примерно эквивалентны по экономии памяти. Поэтому при выборе внутреннего языка проектируемой управляющей ЦВМ целесообразно ориентироваться на язык L(GX) с левосторонней грамматикой Gx.

Процесс поиска языка L(GX) является алгоритмом, переводящим одно регулярное множество в другое, чего нельзя сказать о шифрирующей грамматике Gx. Как показано в работах [21, 22], переход от одного регуляр­ ного множества к другому осуществляется с помощью конечного преобразователя. В нашем случае алгоритм поиска языка L(GX), удовлетворяющего перечисленным выше требованиям, эквивалентен некоторому конечному преобразователю, функционирование которого реализует алгоритм максимального сжатия входного слова в тер­ минах алфавита выходных символов с учетом заданных ограничений.

Конечным преобразователем (для нашего случая) на­ зывается упорядоченная шестерка

D = ( K ,

2£i, JtJy, h, h, 9).

где К— множество

состояний преобразователя;

у— входной и выходной алфавиты; |i — функция пе­

реходов— отображение

множества К Х ] £ 1 во множест­

во К;

Ъ-— функция выходов — отображение множества

KXj>] 1

во множество

2*У (с учетом системы правил

Рх)\ Я— начальное состояние преобразователя. Детальное описание конечного преобразователя, по­

зволяющего с помощью левосторонней шифрирующей грамматики Gx получать оптимальный по экономии па­ мяти внутренний язык L(GX) проектируемой управляе­ мой ЦВМ, относительно громоздко. Функционирование такого преобразователя описано в § 2.9. Отображения F и OF существенно влияют на вид функций выходов и переходов конечного преобразователя. В свою очередь, характер этих отображений зависит от адресности команд основного списка, разрядности полных адресов, длины цепочек операций, допускаемой тем или иным форматом команды, а также от способов формирования

исполнительных кодов операций и адресов

из отиоси-

7*

99

Соседние файлы в папке книги из ГПНТБ