Научная статья на тему 'Передача семантической информации между просмотрами в технологии syntax с использованием атрибутов'

Передача семантической информации между просмотрами в технологии syntax с использованием атрибутов Текст научной статьи по специальности «Математика»

CC BY
149
32
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по математике, автор научной работы — Лукичев А. С.

Рассматривается вопрос использования атрибутов в рамках технологии SYNTAX при реализации обратного просмотра. Возникает задача передачи контекстной информации между прямым и обратным просмотрами с использованием атрибутов. Рассматривается способ реализации такой передачи. Разбирается пример применения двухпросмотрового анализа с использованием атрибутов. Набор ограничений на атрибутную спецификацию трансляции дополняется ограничениями для атрибутов обратного просмотра.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Transfer of context data using attributes between passes in the SYNTAX technology

The ideas of introducing attributes into the SYNTAX technology are applied to the backward pass mechanism in the paper. The problem of context data transfer between forward and backward pass is solved. The restrictions applied to the translation specification with attributes of the forward and backward pass are listed.

Текст научной работы на тему «Передача семантической информации между просмотрами в технологии syntax с использованием атрибутов»

Итак, (х^ —х?) —величина второго порядка малости, —г?) —третьего, что говорит о тесной близости Б7 и 58. Столь же близки Б7 и Б4: Б4 максимально далеко от Б7 в точке В10, а далее приближается к ней, касаясь Б7 в точке Вд.

Свойство вложенности. Рассмотрим параметрические уравнения S7 как отображение цилиндра конечных размеров H = {с : 0 < с < со} х S1 на внутренность R кривой Sr(со). Докажем, что это — биекция. Сначала разрешим уравнение (1) относительно £ = с eos 07 r¡ = csin0, предполагая известными x,z. Несмотря на сложный вид уравнений, они легко решаются с учетом соотношений для r =

1 + 2с sin в + с2 1 + 2п + £2 + п2

у/х2 + у2:

1 - 2с sin в - с2 1 - 2п - £2 - п2' Отсюда легко выразить £2 + п2 через п, после чего п, а затем £ находятся элементарно:

2п =

r - 1

г + 1

- (£2 + п2), £ =

r(r + 1)

п = 1 -

r(r + 1)

(33)

Величины с, 0(mod 2п) находятся однозначно по п Таким образом, исследуемое отображение взаимно однозначно. Поэтому кривые Б?(с) при разных с не пересекаются (точнее, не имеют общих точек). Семейство {Б?(с)} есть семейство вложенных друг в друга овалов, стягивающихся в точку при с ^ 0 и приближающихся к разомкнутой кривой при с ^ со (рис. 6).

Рис. 6. Вложенность 87(0) при различных с. Видно также, что 8о(с) сливаются в одну дугу единичной окружности.

2

2

5

2

3

4

Summary

S. A. Orlov. Dust torus. IV. Analysis of the enveloping surface of trajectories family of isotropic ejected particles with due account of nodes and pericenters motion.

Impacts of meteoroids on a small satellite lead to ejection into space a regolith mass being much greater than the mass of a projectile. Imaging that at an epoch t0 we observe an isotropic ejection with velocities lower in absolute value than a maximal possible b. Due to inequality of orbital periods fragments will fill densely a certain domain D3. In 1-3 months longitudes of nodes and pericenters will be distributed along a circumference and the domain D3 become a body of revolution, a topological solid torus. The research object is a domain D3, or that is the same, a domain D2, representing a section D3 by the half-plane xz,x > 0. The problem of the boundary S of the domain D2 determination is considered. Parametric equations of the curves S„, the union of which contains S, were derived in the closed form previously. At this final paper of the series metric and differential-geometric properties of curves Sn and S are established.

Литература

1. Орлов С. А., Холшевников К. В. Пылевой тор. III. Уравнения огибающей поверхности семейства траекторий изотропно выброшенных частиц с учетом движения узлов и перицентров // Вестн. С.-Петерб. ун-та. Сер. 1. 2004. Вып. 1 (№1). С. 112-119.

2. Фихтенгольц Г. М. Курс дифференциального и интегрального исчисления. Т. 1. СПб.: Лань, 1997.

Статья поступила в редакцию 13 апреля 2006 г.

2006_ВЕСТНИК САНКТ-ПЕТЕРБУРГСКОГО УНИВЕРСИТЕТА_Сер. 1_Вып. 3

КРАТКИЕ НАУЧНЫЕ СООБЩЕНИЯ

УДК 519

И. Г. Бурова, В. А. Тимофеев

РЕШЕНИЕ ЗАДАЧИ ЭРМИТА—БИРКГОФА С ПОМОЩЬЮ МИНИМАЛЬНЫХ НЕПОЛИНОМИАЛЬНЫХ СПЛАЙНОВ

В настоящее время остается актуальной задача совершенствования методов решения интерполяционной задачи Эрмита—Биркгофа. Известно, что классическое решение этой задачи с помощью интерполяционных полиномов в ряде случаев не существует (см. напр. [1]). При решении различных задач хорошо зарекомендовало себя использование различных видов сплайновых приближений. Применение минимальных полиномиальных сплайнов (см. [2]) позволяет проводить последовательную интерполяцию в реальном масштабе времени.

Здесь будет предложено решение одной из задач Эрмита—Биркгофа с помощью минимальных неполиномиальных сплайнов.

1. Пусть в узлах сетки {х^}, ... < < х^ < Ху+1 < ... заданы поочередно

значения функции и(х) и ее производной и'(х): ..., и^, ... Считаем, что и €

С3(Я1). На промежутке [х^,Хj+l) функцию и(х) приближаем выражением

и(х) = u'(xj-l )^j-ltl(x) + и(х^ )шj¡o(x) + U/(Хj+l)Шj+1¡l(x).

Пусть у1(х) и у2(х) —достаточно гладкие линейно независимые функции. Из условий и(х) = и(х) при и = 1, у1(х), у2(х) получаем

шj,o(x) = 1,

у'l(Хj-l)Шj-1l(x) +Уl(Хj )Wjfi(x) +у'l(Хj+1 )Wj+1,1 (х) = у1(х), Р2&-1)Щ-1,1(х) +У2(Хj )Шj,o(x) +у'2(х^+1 )Uj+1,1 (х) = у2(х). Пусть у2(х) = у1(х), тогда определитель системы равен

Aj = 2^-1^+1 (^-1 - уj+l).

© И.Г.Бурова, В.А.Тимофеев, 2006

В предположении А; = 0 нетрудно получить формулы базисных сплайнов:

шзАх) = 1,

, ч Р'з+ЛРз — Р(х))(2Рз+1 — Рз — ¥>(х))

А;

С+М(х)

ф'з_1(ф(х) — Рз )(2РЗ_1 — Р(х) — Рз)

А;

Аналогичные формулы имеем на промежутке [х;_1,х;).

2. Получим оценки погрешностей приближений и(х) на промежутке [х; ,х;+1] при Р2(х) = ^(х) для ^г(х) = ех и ^г(х) = х.

2.1. Пусть (х) = ех, ^2(х) = е2х. Следуя методу, предложенному в [3], построим однородное линейное дифференциальное уравнение, имеющее фундаментальную систему решений 1, р1(х), у>2(х):

Ьи = и'" — 3и" + 2и' = 0. Общее решение неоднородного уравнения Ьи = /(х) имеет вид

1 Гх

и{х) = С1 + с2еж + с3е2ж + - / (1 - ех-г)2Л,

4 ^ п

где п € [хз,х;+1 ], С1, С2, сз —произвольные постоянные. Пусть п = х, тогда

1 (хз

и{х) - и{х) = - / (1 - ех*~г)2/(г)<й-

4 о х

1 Гхз+1

- j (1 - ех^-1)2ех^-1Л-

1 гхб-1

- (х) ] (1 -

Полагая ш^,1(Нз + ^Н) = с&,1(в), в € [0,1], к = ] — 1+ 1, при достаточно малом Н (например, Н ^ 1/4) получаем

йэ- мОО = + 0(И?), = + 0{к2).

Поэтому имеем |_1, 1 (в)| ^ Н/4, |сШ; +1,1 (в)| ^ 3Н/4.

Таким образом, искомая оценка погрешности приближения на промежутке [х;, хз+1] принимает вид

их) — и(х)I < КН3\\и''' — 3и'' + 2и'\

1[хз-1,хз + 1]

где К « 0,58.

2.2. Аналогично, при Р1(х) = х, ^2(х) = х2 получаем оценку погрешности приближения на промежутке [х; ,хз+1 ]:

Н3,

\й(х) -и(х)I < уЦи'"!!^--!,^!]

3. Приведем результаты численных экспериментов по приближению некоторых функций на промежутке [0,1]. Пусть в узлах равномерной сетки с шагом h = 0,1 заданы значения функции u или ее производной. В таблице 1 приведены значения тахрд] \U(x) — u(x)\, при y>2(x) = y>f(x), полученные при решении задачи Эрмита— Биркгофа в среде Maple.

Таблица 1.

ipi(x) и(х) = sin(lK) и(х) = ех и(х) = cos(ik) и(х) = хь

X ех 3 • КГ4 9 • КГ4 7 • КГ4 0 2 • КГ4 9 • КГ4 1 ■ 10"^ 4 • КГ3

Для сравнения, в таблице 2 приведены значения теоретической оценки значения погрешности тахрд] \и(х) — и(х)\.

Таблица 2.

и(х) = sin(iK) и(х) = ех и(х) = cos(IK) и(х) = хь

X ех 5 • КГ4 2 • Ю-3 1 • КГ3 0 5 • КГ4 2 • Ю-3 з • ю-'2 7 • Ю-3

Summary

I. G. Burova, V. A. Timofeyev. Solution of the Hermit—Birkhoff problem by means of minimum non-polynomial splines.

The solution of the Hermit—Birkhoff problem by minimum the non-polynomial splines is suggested. The presented approximations have the given accuracy when applied to a rather wide class of functions and they could be used for machine computations.

Литература

1. Мысовских И. П. Лекции по методам вычислений. СПб., 1998. 472 с.

2. Бурова И. Г., Демьянович Ю. К. Теория минимальных сплайнов. СПб., 2000. 316 c.

3. Бурова И. Г. Приближение минимальными сплайнами максимального и минимального дефекта // Вестн. С.-Петерб. ун-та. Сер. 1. 2006. Вып. 1. C. 11-16.

Статья поступила в редакцию 14 апреля 2006 г.

УДК 319.6

Вестник СПбГУ. Сер. 1, 2006, вып. 3

Е. В. Виноградов

ПОГРЕШНОСТЬ ВЫЧИСЛЕНИЯ РЯДА

ПРИ ПОЛУИНТЕРВАЛЬНОЙ ОРГАНИЗАЦИИ ВЫЧИСЛЕНИЙ

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

При этом выделяют два типа погрешностей — арифметическую и методическую.

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

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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

Часть их основана на применении интервальных вычислений вместо обычных [1]. Однако в некоторых случаях такой подход требует неоправданного расширения результирующего интервала.

Кроме того, активно развивается направление, использующее комбинацию из обычных вычислений и интервальных (например, [2]), построенную на основе метода, предложенного А. Зивом [3]. Однако, такие методы требуют операций с «двойной» (составленной из двух чисел типа double) арифметикой на основе итерационного процесса до получения результата требуемой точности.

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

+^

f (x) = ^2 akxk, ak > 0,

k=0

и полуинтервальный способ ее вычисления (результатом вычисления является интервал). Под полуинтервальным способом вычисления [5] понимается такой способ, при котором значение функции изначально рассчитывается традиционными методами, затем интервальными методами рассчитывается погрешность традиционного расчета и находится интервальный результат. Под методической погрешностью понимается погрешность, вызванная неполным соответствием вычисления на компьютере требуемому вычислению в связи с ограниченным количеством операций суммирования в подсчете суммы ряда. Приведенный метод позволяет избежать использования «двойной» арифметики, а также итерационного подхода.

© Е. В. Виноградов, 2006

2. Базовое решение. Предполагается, что вычисления проводятся в системе, соответствующей четырем гипотезам интервального анализа в соответствии с [1]. Известно (см. [4]), что многие из существующих на сегодняшний день вычислительных систем этим гипотезам соответствуют.

Вычисление функции предполагается проводить не на всем множестве значений аргумента, а в некотором сравнительно узком помежутке х$ = [ж^жг], 0 ^ х& <х$ [3], называемом базовым.

Пусть

п

ф) = £ акхк > 0, в = Л^-8,

к=0

г(х) и г(х) —нижняя и верхняя, соответственно, оценки методической погрешности вычисления (/(х) — у(х)), Л — отношение максимальной величины округления к единице младшего разряда числа для используемой машинной арифметики, ¡л — основание внутренней системы счисления компьютера, в — число разрядов порядка во внутреннем компьютерном представлении аргумента.

В работе [5] было получено следующее выражение для относительной поргешности а вычисления у(х):

е

1-е

(1)

где

/ \ 2п + 1 п 2п - 1 п_1

Ух) — (1 - ¡3)2пЯпХ + _ руп-2 а«-1ж +... + а0

Символ ~ (тильда) отмечает потенциально неточный машинный результат.

3. Методическая погрешность вычисления ряда. Указанный выше подход можно естественным образом продолжить на степенные ряды. При этом возникает проблема оценки методической погрешности вычисления.

Будем рассматривать неубывающую неотрицательную функцию / (х). Пусть для нее строится степенной ряд при х ^ 0:

/(х) = £ акхк, ак > 0. (2)

к=1

п

Выберем некоторое п и обозначим уп (х) = ^ акхк. Тогда методической погрешностью

к=1

(погрешностью, связанной с ограниченным количеством операций суммирования) будет остаток ряда

гп+1 = /(х) — уп(х) = акхк. (3)

к=п+1

Кроме того, предположим, что ряд сходится в базовом

промежутке х§ — [х^, х^] и

удовлетворяет при этом признаку Даламбера. Тогда для достаточно больших к, к ^ п + 1 будет выполняться

a-k+ixs 1

sup —-- < 1. (4)

k^n+1 ak

Обозначим максимум этого отношения для остатка ряда через 7(°n):

lin) = SUP -• (5)

k^n+1 ak

Пусть также

. г ак+ ix s 1 („,

7°(")<L (6)

Очевидно, что величины y°( n) и Y°n) зависят от выбранного ранее п. Тогда остатком ряда будет

гп+1 = ап+1х"+1 (l + ^х + + ..) . (7)

V an+i an+i J

Так как ak+i/ak ^ l°(n)/xs при к ^ п +1, минорантой остатка ряда будет

rn+i > an+1xn+1 1 + щп)=~ + (щп)=~ ) + •••), (8)

\ Xô \ Xô J /

или +1

an+1X

Гп+1 > Гп+1 = -,-5". (9)

- 1~Ю(п)щ

Аналогично для мажоранты остатка ряда, т.к. ak+i/aj. ^ 7(°n)/^<s ПРИ к ^ п + 1:

n+1

Гп+1 < гп+1 = 1 о ^ • (10)

1(п) XS

Таким образом, получается включение

П ,1хп+1

/(*)€[/1(*Ш*)], Мх) = <рп(х) + "+1 ж , / = (1,2), (И)

1 - Ц —

Х6

11 = 10{п)/х6, 72 = 7(°„)/^-

4. Применение оценки методической погрешности. Покажем метод применения полученной оценки методической погрешности на примере натурального логарифма.

Введенным ограничениям удовлетворяет ряд (25/28) из [7]:

1 х 1

к=1

Благодаря тому, что по свойству логарифма 1п х = р 1п ¡л + 1п т (где р — порядок, а т — мантисса числа в машинном представлении), а также условию нормировки мантиссы [4], в качестве базового промежутка можно взять интервал [1, При этом на

отрезке то € [л//л, /х] будет использоваться логарифмирование обратной величины, т. к. очевидно, что 1п х = (р + 1) 1п /х — 1п то', то' = ^.

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

Так как х > 0, можно ввести переменную

и(х) = ——т- (13)

х +1

Обозначив V = и2, ряд (12) можно переписать в следующем виде:

„,2к-1 о „,к

Ых = 2У--= - —-.

к=1 к=1

Для аргумента в указанном базовом промежутке такой ряд будет сходиться на всей числовой оси. Тогда

. 2к - 1 2к - 1 2п +1

71 = Ш! о; , -I = о; , 1 \к=п+1 = ~——Г, (14)

к^и+1 2к + 1 2к +1 2п + 3

2к — 1

72 = вир = 1. (15)

к^и+1 2к +1

Теперь для подсчета методической погрешности остается только выбрать п и по формулам (11), (14), (15) получить численный результат.

Summary

E. V. Vinogradov. Error estimation for a series with semi-interval evaluation.

Truncation error estimation for series computer evaluation is obtained by construction of majorant and minorant of the remainder with some constraints for computer system and series coefficients.

Литература

1. Меньшиков Г. Г. Локализующие вычисления: Конспект лекций. Выпуск 1. Введение в интервально-локализующую организацию вычислений. СПб., 2003. 89 с.

2. de Dinechin F., Defour D, Lauter C. Fast Correct Rounding of Elementary Function in double precision using double-extended arithmetic. Research Report N 2004-10. Lyon: Ecole Normale Superiure de Lyon, 2004. 17 p.

3. Ziv A. Fast evaluation of elementary mathematical functions with correctly rounded last bit // ACM Tarnsactions on Mathematical Software 17(3) September 1991. P. 410-423.

4. Виноградов Е. В. Стандарт IEEE Std 754-1985 и версия постулируемых свойств машинной арифметики для обеспечения интервально-локализующих вычислений // Процессы управления и устойчивость. Труды XXXVI Межвузовской научной конференции аспирантов

и студентов 11-14 апреля 2005 года / Под редакцией Н.В.Смирнова, В.Н.Старкова. СПб.: Издательство СПбГУ, 2005. С. 256-260.

5. Виноградов Е. В. Методика учета инструментальной и методической погрешности вычисления положительного полинома // Процессы управления и устойчивость. Труды XXXVII Межвузовской научной конференции аспирантов и студентов 10-13 апреля 2006 года / Под редакцией Н.В.Смирнова, А.В.Платонова. СПб.: Издательство СПбГУ, 2006. С. 300-305.

6. Меньшиков Г. Г. Практические начала интервальных вычислений. Л.: Издательство ЛГУ, 1991. 91 с.

7. Люстерник Л. А., Червоненкис О. А., Янпольский А. Р. Математический анализ. Вычисление элементарных функций. М.: Физматгиз, 1963.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Статья поступила в редакцию 15 апреля 2006 г.

УДК 519.685.3

Вестник СПбГУ. Сер. 1, 2006, вып. 3

А. С. Лукичев

ПЕРЕДАЧА СЕМАНТИЧЕСКОЙ ИНФОРМАЦИИ МЕЖДУ ПРОСМОТРАМИ В ТЕХНОЛОГИИ SYNTAX С ИСПОЛЬЗОВАНИЕМ АТРИБУТОВ

Технология SYNTAX [1] была разработана в СПбГУ и предназначена для решения задач синтаксически-управляемой обработки данных. Круг таких задач включает, но этим не ограничивается, анализ языка и трансляцию. Спецификация языка осуществляется с помощью RBNF-грамматик, где правые части правил могут представлять собой регулярные выражения. Другой особенностью RBNF-грамматик в SYNTAX является то, что грамматическими символами здесь также являются предикатные и семантические символы, называемые резольверы и семантики, соответственно, и обеспечивающие введение контекстной зависимости и спецификацию трансляции на уровне грамматики.

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

Ограничения, накладываемые в SYNTAX на класс грамматик, допускают применение синтаксически неоднозначных грамматик. Само описание трансляции при этом должно оставаться семантически-однозначным. Результатом прямого просмотра может быть набор «параллельных» путей в граф-схеме, порождающих данную входную цепочку. Для разрешения такой неоднозначности может использоваться специальный механизм — обратный просмотр [1].

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

© А. С. Лукичев, 2006

При введении атрибутов в SYNTAX [2] со всяким вхождением нетерминала в левые части правил связывается набор формальных атрибутов, а со всяким вхождением нетерминала, семантики или резольвера в правые части правил — набор фактических атрибутов.

Формальные атрибуты делятся на три класса:

а) наследуемые атрибуты (in);

б) синтезируемые атрибуты (out);

в) локальные атрибуты (local).

Фактические атрибуты делятся на два класса:

а) наследуемые атрибуты (in);

б) синтезируемые атрибуты (out).

Для применения атрибутов на обратном просмотре в каждом из 3 классов (наследуемые, синтезируемые, локальные) выделим атрибуты, применяемые на прямом просмотре (атрибуты прямого просмотра) и на обратном просмотре (атрибуты обратного просмотра). Для того, чтобы обеспечить передачу информации между просмотрами, выделим специальный тип локальных атрибутов — двусторонние атрибуты. Данные атрибуты являются локальными как на прямом, так и на обратном просмотре, при этом их значение, вычисленное на прямом просмотре, сохраняется и доступно при выполнении обратного просмотра.

В ходе исполнения алгоритма анализа на прямом просмотре сплайновый процессор на отдельных участках входной цепочки ведет себя, как детерминированный конечный автомат. В некоторых случаях работа такого ДКА приостанавливается, и управление передается другому ДКА для анализа некоторой подконструкции. После окончания анализа подконструкции управление возвращается исходному ДКА. Каждому такому ДКА соответствует одно или несколько правил грамматики. Формальные атрибуты, помечающие нетерминалы, стоящие в левых частях этих правил, определяют контекст автомата. Значения двусторонних атрибутов считаются вычисленными к моменту достижения ДКА конечного состояния. В этот момент эти значения должны быть записаны с тем, чтобы быть восстановленными на обратном просмотре. Запись происходит вместе с номером состояния, в которое осуществляется возврат управления, — так называемого, возвратного состояния.

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

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

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

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

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

Summary

A. S. Lukichev. Transfer of context data using attributes between passes in the SYNTAX technology.

The ideas of introducing attributes into the SYNTAX technology are applied to the backward pass mechanism in the paper. The problem of context data transfer between forward and backward pass is solved. The restrictions applied to the translation specification with attributes of the forward and backward pass are listed.

Литература

1. Мартыненко Б. К. Синтаксически управляемая обработка данных. Изд. 2-е. СПб., 2004 г.

2. Лукичев А. С. Использование атрибутов в технологии SYNTAX // Вест. C.-neTep6. унта. Cep. 1. Вып. 2. 2005. С. 64-73.

Статья поступила в редакцию 14 апреля 2006 г.

i Надоели баннеры? Вы всегда можете отключить рекламу.