
книги из ГПНТБ / Журавлев, Ю. П. Системное проектирование управляющих ЦВМ
.pdfг) цепочки х и у интерпретируются как разные коди ровки одной и той же программы;
д) 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
и 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 |