О технологиях построения и обработки математических моделей программ
Показаны проблемы, связанные с построением математических моделей программ, предназначенных для использования в системах автоматизации решения задач анализа и преобразования программ. В качестве такой системы рассмотрена система автоматического поиска и доказательства инвариантных равенств в програм...
Збережено в:
| Дата: | 2007 |
|---|---|
| Автор: | |
| Формат: | Стаття |
| Мова: | Російська |
| Опубліковано: |
Інститут програмних систем, журнал "Проблеми програмування"
2007
|
| Теми: | |
| Онлайн доступ: | https://nasplib.isofts.kiev.ua/handle/123456789/299 |
| Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
| Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| Цитувати: | О технологиях построения и обработки математических моделей программ / С.М. Львов // Пробл. програмув. — 2007. — N 3. — С. 41-48. — Библиогр.: 6 назв. — рус. |
Репозитарії
Digital Library of Periodicals of National Academy of Sciences of Ukraine| _version_ | 1859702086965395456 |
|---|---|
| author | Львов, С.М. |
| author_facet | Львов, С.М. |
| citation_txt | О технологиях построения и обработки математических моделей программ / С.М. Львов // Пробл. програмув. — 2007. — N 3. — С. 41-48. — Библиогр.: 6 назв. — рус. |
| collection | DSpace DC |
| description | Показаны проблемы, связанные с построением математических моделей программ, предназначенных для использования в системах автоматизации решения задач анализа и преобразования программ. В качестве такой системы рассмотрена система автоматического поиска и доказательства инвариантных равенств в программах. Методы поиска программных инвариантов основаны на анализе свойств предметной области. Определена основная функциональность программного модуля Транслятор этой системы.
|
| first_indexed | 2025-12-01T01:38:59Z |
| format | Article |
| fulltext |
Формальні методи програмування
© С.М. Львов, 2007
ISSN 1727-4907. Проблеми програмування. 2007. № 3 41
УДК 51.681.3
С.М. Львов
О ТЕХНОЛОГИЯХ ПОСТРОЕНИЯ И ОБРАБОТКИ МАТЕМАТИ-
ЧЕСКИХ МОДЕЛЕЙ ПРОГРАММ
В работе рассматриваются проблемы, связанные с построением математических моделей программ,
предназначенных для использования в системах автоматизации решения задач анализа и преобразова-
ния программ. В качестве такой системы рассматривается система автоматического поиска и доказа-
тельства инвариантных равенств в программах. Методы поиска программных инвариантов основаны на
анализе свойств предметной области. Определена основная функциональность программного модуля
Транслятор этой системы.
Введение
В теоретических исследованиях,
посвященных задачам анализа и преобра-
зования программ, объект исследования,
как правило, представлен математической
моделью программы. При этом использу-
ются либо графовые модели программ
(пример: U-Y схема программы), либо ал-
гебраические модели программ (пример:
выражение в алгоритмической алгебре
В.М.Глушкова). Программные системы,
проектируемые для решения задач анализа
и преобразования программ с целью про-
ведения вычислительных экспериментов
или для производственных целей, должны
оперировать с исходными текстами про-
грамм, написанных на одном из языков
программирования высокого уровня. Та-
ким образом, такие системы должны со-
держать специальные программные моду-
ли, осуществляющие трансляцию исходно-
го текста программы в математическую
модель. Во многих задачах преобразования
и синтеза программ важной является также
задача обратной трансляции – преобразо-
вания математической модели в исходный
код программы. С точки зрения теории
программирования задачи трансляции
исходный код программы �� математи-
ческая модель программы
не являются существенно важными, их
решение предполагается полученным «по
умолчанию». Однако, с точки зрения Soft-
ware Engineering, т.е. проектных решений
и технологий реализации соответствую-
щих программных систем здесь есть про-
блемы и темы для обсуждения. Основные
из них:
• выбор исходного языка про-
граммирования и вычислительной плат-
формы;
• выбор математической модели
(класса математических моделей);
• методы и технологии транс-
ляции;
• функциональные требования к
программному модулю;
• выбор стратегии развития про-
граммного модуля.
В работе описан наш первоначаль-
ный опыт решения этих проблем, полу-
ченный при проектировании и реализации
программного модуля Транслятор системы
автоматической генерации инвариантов
программ. Достаточно полная постановка
задачи, решаемой этой системой, дана в
[4].
1. Выбор исходного языка программи-
рования и вычислительной платформы
Как правило, в первой версии тако-
го программного модуля, как Транслятор ,
решается та конкретная задача трансляции,
которая необходима для постановки соот-
ветствующего вычислительного экспери-
мента. Поэтому выбор объектного языка
программирования и вычислительной сре-
ды играет подчиненную роль.
Наш выбор языка Паскаль
обусловлен:
• близостью средств управления
вычислениями языка к сигнатуре выбран-
ной нами теоретической модели (формулы
программной динамической логики);
Формальні методи програмування
42
• наличием описания языка в
БНФ-нотации, что позволило использовать
технологии автоматизации процедур син-
таксического анализа.
Первая версия ПМ Транслятор реа-
лизована в среде Win32, хотя нет практи-
чески никаких препятствий для переноса
ее в Linux/Unix.
Требования к коммерческой версии
значительно шире: ПМ Транслятор дол-
жен поддерживать, кроме языков с паска-
левским синтаксисом (Паскаль, Модула),
еще и языки с С-подобным синтаксисом
(С, С++, С#, Java).
В некоторых экспериментах нужно
иметь дело со специализированными язы-
ками (например, с языком охраняемых ко-
манд Дейкстры, языком Лисп и т.п.). По-
этому коммерческий программный модуль
Транслятор в идеале должен поддерживать
описание синтаксиса исходного языка про-
граммирования самим пользователем.
2. Выбор математической модели
В теоретических работах, посвя-
щенных задаче автоматической генерации
инвариантов программ, на которые мы
опираемся, используются как графовые
модели программ [1, 2], так и алгебраиче-
ские модели программ [3].
Общими понятиями для этих моде-
лей являются:
• понятие памяти X программы
P как конечного множества (вектора) пе-
ременных ( nxx ,...,1 ). ),...,( 1 nxxX = ;
• понятие алгебры данных D как
области определения всех переменных
(памяти) программы. Алгебра данных оп-
ределяет множество операций над данны-
ми, допустимыми при программировании.
Вообще, D следует рассматривать как
многосортную алгебру. Мы полагаем, что
одним из сортов D является Boolean. В
наших задачах, кроме Boolean, определен
еще только один сорт – сорт, над которым
с помощью операторов присваивания оп-
ределены вычисления;
• понятие состояния d памяти
программы P как вектора ),...,( 1 nddd = .
Если память программы находится
в состоянии d , это означает, что
nn dxdx == ,...,11 . Таким образом, мы гово-
рим о пространстве состояний памяти как
о множестве XD ;
• операторы присваивания в на-
ших задачах интерпретируются как
векторные.
Оператор === :),...,(:( 11 nxXFxy
))(: XFn= преобразует пространство со-
стояний памяти: y: XD � XD . Это озна-
чает, что их компоненты выполняются од-
новременно (параллельно). Множество
операторов присваивания обозначим Y.
Отметим, что в некоторых задачах анализа
программ следует рассматривать последо-
вательное выполнение компонент;
• условия преобразуют терм F ал-
гебры D в (True, False). Множество усло-
вий обозначим U.
2.1. Определение U-Y – программы
U-Y – схемой программы над памя-
тью (U-Y – программой) называют иници-
альный связный граф P с выделенным
подмножеством заключительных вершин
(состояний), дуги которого отмечены па-
рами (условие-оператор).
).,(:,,,, *
0 YUESsESP →><= δδ
Вершины графа Р – суть контроль-
ные точки программы. Переход от одной
точки к другой сопровождается выполне-
нием оператора y, если u в текущем со-
стоянии памяти программы принимает
значение True (рис.1).
Рис.1
Выполнение программы Р начина-
ется в состоянии s0 , осуществляется неде-
терминировано и заканчивается в одном из
заключительных состояний S*.
2.2. Алгебраические модели программ
Алгебраические модели императив-
ных структурированных программ исполь-
s
1
s
2
u, y
Формальні методи програмування
43
зуют представление программ формулами
специальной программной алгебры, опе-
рациями которой являются операторы
управления: последовательное выполне-
ние, ветвление, повторение. Например:
QP; – последовательное выполнение;
QP
u
∨ – ветвление с условием; }{P
u
– по-
вторение с предусловием;
u
P}{ – повторе-
ние с постусловием.
Пример программы и ее алгебраической
модели
Рассмотрим в качестве примера
программы и ее алгебраической модели
расширенный алгоритм Евклида, который
находит b = GCD(x, y) и такие числа c, d,
что c*x + d*y = b.
Для задач анализа программ из тек-
ста программы нужно сформировать:
),,,,( dcbyxE = – множество вход-
ных параметров программы;
),,,,,,,,,( yxvurqdcbaX = – память
программы;
),( 21 uuU = – множество условий
программы;
)(1 bru >== ;
)0(2 <>= ru ;
),,( 321 yyyY = – множество опера-
торов присваивания программы;
x);:r 0,:q
0,: v1,:u 1,:d 0,:c y,:b x,:a(1
==
=======y
1)q:q b,-r:r(2 +===y ;
).b:r 0,:q d,: vc,:u
d,*q-v:d c,*q-u:c r,:b b,:a(3
====
=====y
Алгебраическая модель программы теперь
определяется формулой
}}.{;{};{; 2321
121
yyyyP
uuu
=
2.3. Инварианты программ
Поскольку программный модуль
Транслятор в первой версии разрабатыва-
ется для реализации алгоритмов поиска
инвариантов некоторого класса программ,
сформулируем понятие программного ин-
варианта более точно.
Procedure ExtGCD(x, y: Integer; var b, c, d: Integer);
Var
a, u, v, q, r : Integer;
Begin
a:=x; b:=y;
c:=0; d:=1;
u:=1; v:=0;
q:=0; r:=x
While r >= b do begin
r:=r-b;
q:=q+1
End;
While r<>0 do begin
a:=b; b:=r;
c:=u-q*c; d:=v-q*d;
u:=c; v:=d;
q:=0; r:=b
While r >= b do begin
r:=r-b;
q:=q+1
End
End
End;
Формальні методи програмування
44
Алгеброй данных анализируемых
программ является поле F. Если все пра-
вые части операторов присваивания про-
граммы – многочлены, т.е. не содержат
операции деления на выражения, завися-
щие от переменных, такую программу на-
зывают интерпретированной над полино-
миальным кольцом F[X]. Если же опера-
ции деления на выражения, зависящие от
переменных, в программе используются,
такую программу называют интерпретиро-
ванной над полем F(X).
Многочлен і(X) ∈ F[X] называется
полиномиальным инвариантом программы
P, если □ {True} P {і(X)=0}.
Это означает, что при любом на-
чальном состоянии памяти a = (a1, …, an),
если программа P завершает работу, для
заключительного состояния b ( т.е. такого,
что a{P}b) выполняется равенство i(b) = 0.
Множество всех полиномиальных
инвариантов программ, интерпретирован-
ных либо над кольцом F[X], либо над по-
лем F(X), образует радикальный идеал это-
го кольца, который будем обозначать Ip. В
дальнейшем будем рассматривать множе-
ство всех элементов Ip , степени которых
ограничены некоторой константой M.
Множество таких многочленов образует
векторное пространство, которое обозна-
чается )( M
pI . Понятно, что p
M
p II ⊂)( .
Основные задачи исследования –
построение и вычислительные экспери-
менты с программной системой, которая
доказывает инвариантность заданного по-
линома і(X) ∈ F[X], а также строит базис
векторного пространства )( M
pI для задан-
ного значения М.
Отметим, что проблема построения
базиса идеала Ip алгоритмически неразре-
шима [3]. В доказательстве этого утвер-
ждения существенную роль играет то, что
в программах используются условия типа
равенств и их отрицания. Поэтому условия
программ приходится игнорировать, счи-
тая, что программные циклы завершаются
недетерминировано. Даже при этих огра-
ничениях проблема построения базиса Ip
остается открытой.
Анализ методов решения задачи ав-
томатического доказательства и автомати-
ческой генерации программных инвариан-
тов для программ, интерпретированных
над конкретными предметными областями
показал, что:
1) алгоритмы решения основных
задач формулируются в терминах пред-
метной области и, по существу, не зависят
от типа модели программы. Графовая мо-
дель должна использоваться только для
управления вычислениями инвариантов;
2) построение графовой модели в
виде U-Y схемы программы требует пре-
образования операторов присваивания в
охраняемые команды Дейкстры. Эти пре-
образования несущественны для теории,
но требуют дополнительных ресурсов для
реализации;
3) алгебраическая модель про-
граммы в гораздо большей степени адек-
ватна исходному тексту программы, напи-
санному на языке структурного програм-
мирования. Ее легче и получать, и обраба-
тывать. Разумеется, программы, напи-
санные с нарушением правил структу-
рирования, нуждаются в дополнительной
обработке.
Кроме того, это наиболее важно, ал-
горитмы решения основных задач и общий
алгоритм управления вычислениями (в
наших задачах автоматического доказа-
тельства и автоматической генерации про-
граммных инвариантов) могут быть реали-
зованы в средах алгебраического програм-
мирования (APS, Obj). Выбор алгебраиче-
ской модели программы приводит к тому,
что весь основной модуль системы может
быть реализован в среде алгебраического
программирования, что существенно уско-
ряет построение функционального прото-
типа и окончательной версии системы.
3. Методы и технологии трансляции
Различные классы задач анализа и
преобразования программ используют раз-
личные сведения об объектной программе.
Так, классическая задача оптимизации па-
мяти программы использует сведения о
Формальні методи програмування
45
вхождении переменных в левые и правые
части операторов присваивания объектной
программы. Задача оптимизации програм-
мы на основе анализа ее линейных участ-
ков кода требует сведений обо всех опера-
торах присваивания линейных участков.
Задачи преобразований программ основа-
ны на преобразованиях условных операто-
ров управления. В задаче автоматической
генерации инвариантов программ на осно-
ве свойств предметной области, как уже
отмечалось, условия в операторах управ-
ления приходится игнорировать, так как их
учет приводит к алгоритмической нераз-
решимости.
Эти обстоятельства приводят к сле-
дующему решению: результат трансляции
исходного кода программы в ее алгебраи-
ческую модель должен, как минимум, со-
держать следующие компоненты: список
входных переменных программы; список
всех переменных (память) программы; ал-
гебраическое выражение, описывающее
структуру управления программы с точно-
стью до условий и операторов управления;
словарь условий; словарь операторов при-
сваивания.
Все эти компоненты модели пред-
ставлены в нашем примере.
В работе [4], теорема 1, а, опреде-
лена общая схема вычислений для реше-
ния задачи доказательства инвариантности
полинома и сформулированы основные
задачи для реализации этой схемы. Реали-
зация общей схемы вычислений требует:
1) процедуры элиминации всех усло-
вий из формулы P. В нашем примере
элиминацией условий выражение
}}{;{};{; 2321
121
yyyyP
uuu
= редуцируется до
}}};{};{; 2321 yyyyP = ;
2) представления всех операторов
присваивания программы в векторном ви-
де. В нашем примере все операторы из Y
уже представлены в этом виде;
3) полиномиальной канонизации пра-
вых частей всех операторов присваивания
из Y. Это представление связано с выбором
и фиксацией некоторого лексикографиче-
ского упорядочения на множестве моно-
мов и представления полиномов в виде
суммы мономов. В нашем примере это уже
сделано;
4) процедуры анализа формулы P про-
граммы, заключающейся в выделении
главной операции программы, рекурсив-
ной обработке ее операндов и последую-
щей обработке главной операции.
Все эти процедуры легко реализу-
ются в системах алгебраического про-
граммирования, в частности, в системе
APS-1 [5].
Алгоритмы решения основных за-
дач основаны на построении базисов
Гребнера полиномиальных идеалов. Таким
образом, все идеалы, которые строятся в
алгоритме, должны быть представлены
своими базисами Гребнера. В дальнейшем
мы будем обозначать тот факт, что идеал I
представлен базисом Гребнера f1 , …, fk
равенством I = ( f1 , …, fk )Gr. Базис Греб-
нера идеала I будем обозначать Gr(I).
Наш алгоритм должен решать сле-
дующие задачи:
1. Для I = ( f1 , …, fk )Gr , J = ( g1 ,
… , gl )Gr найти I∩∩∩∩J = (h1 , . . . , hm)Gr.
2. Для I = ( f1 , …, fk )Gr , операто-
ра присваивания X := F(X), найти J = (g1 , .
. ., gl)Gr, т.е. найти Gr((f1(H(X)) , …,
fk(H(X)))).
3. Для I = ( f1 , …, fk )Gr , J = ( g1 ,
…, gl )Gr распознать I ⊆⊆⊆⊆ J.
Задачи 1 и 3 – классические задачи
теории полиномиальных идеалов, решение
которых в терминах базисов Гребнера хо-
рошо известно [6]. Для решения задачи 2
можно воспользоваться общим алгорит-
мом пополнения, который строит базис
Гребнера по произвольному конечному
множеству полиномов. Таким образом, в
системе алгебраического программирова-
ния должны быть реализованы вышеотме-
ченные вычисления в базисах Гребнера.
В нашем примере следует доказать
инвариантность полинома c*x + d*y – b.
Рассмотрим теперь вопросы, свя-
занные с реализацией алгоритма вычисле-
ния базиса векторного пространства )( M
pI
([C. Львов], теорема 1, б). Там предлагает-
ся подход, связанный с заданием общего
Формальні методи програмування
46
вида инварианта в виде полиномиальной
формы, т.е. многочлена «специального»
вида с неопределенными коэффициентами.
Например, можно определить общий вид
искомых инвариантов как линейную ком-
бинацию нескольких многочленов с неоп-
ределенными коэффициентами:
I(X) = a1*P1(X)+…+ak*Pk(X).
Если, например, требуется искать
линейные инварианты, следует положить
P1= x1, . . . , Pn = xn, Pn+1 = 1.
Можно, к примеру, искать все инва-
рианты вида I(X) = a1*x1
2 +…+an * xn
2
и т.п.
Таким образом, в проектируемой
системе следует реализовать процедуру
ввода и редактирования этой формы. Если
в нашем примере ограничиться поиском
инвариантов 2-ой степени, в качестве этой
формы нужно выбрать многочлен 2-ой
степени от всех переменных программы.
В результате вычислений получаем
базис )2(
pI :
i1 = c*x + d*y – b; i2 = u*x +v*y – a.
Следовательно, если нас интересу-
ют инварианты 2-ой степени в терминах
входных параметров программы, в каче-
стве этой формы нужно выбрать много-
член 2-ой степени от параметров програм-
мы, т.е множества ),,,,( dcbyxE = . В ре-
зультате вычислений получаем
i1 = c*x + d*y – b.
Проведение вычислительных экспе-
риментов такого рода с целью уточнения
функциональности системы представляет
определенный интерес.
4. Функциональные требования
Исходя из вышеприведенных рас-
смотрений, сформулируем общие функ-
циональные требования к системе.
Данные о задаче, обрабатывае-
мой системой, содержат следующие
компоненты:
• исходный код программы;
• математическую модель про-
граммы;
• результат вычислительного экс-
перимента.
Программная система, проектируе-
мая для выполнения выше описанного вы-
числительного эксперимента, должна под-
держивать следующие функции:
1) хранение библиотеки исходных
кодов, математических моделей программ,
а также результатов вычислительного экс-
перимента (функции Save, Load). Предпо-
лагается, что исходный код программы
синтаксически и семантически правель-
ный, а также удовлетворяет тем ограниче-
ниям, которые неизбежно возникают при
постановке задачи теоретического иссле-
дования. Эта библиотека используется как
для тестирования программной системы,
так и для проведения вычислительного
эксперимента;
2) трансляция исходного кода в мате-
матическую модель (функция Translate) c
возвратом результатов трансляции;
3) редактирование исходного кода с
клавиатуры (функция EditСоde) для обра-
ботки исходного кода перед построением
его математической модели;
4) редактирование математической
модели с клавиатуры (функция EditModel)
для обработки модели независимо от ис-
ходного кода;
5) интерфейс к среде алгебраического
программирования с передачей на испол-
нение математической модели программы
и возвратом результатов (функция
Execute);
6) ввод дополнительной информации
о задаче для вычислительного эксперимен-
та и настройках математической модели
(выбор компонентов математической мо-
дели, передаваемых на исполнение функ-
цией Execute). Пример: в задаче автомати-
ческого доказательства инвариантности
равенства такой дополнительной инфор-
мацией является равенство, инвариант-
ность которого доказывается;
7) стандартные сервисы ОС, такие, как
возможность распечатки результатов и т.п.
(рис. 2, 3).
Формальні методи програмування
47
Рис. 2. Общий вид главного окна системы с примером исходного кода программы
Рис. 3. Общий вид главного окна системы с примером математической модели
Формальні методи програмування
48
Выводы
Использование ПМ Транслятор и
программной системы, основная функцио-
нальность которой описана в работе, по-
зволяет сократить время и минимизиро-
вать подготовительную работу к проведе-
ниям вычислительных экспериментов в
задачах анализа и преобразования про-
грамм. Выбор алгебраической модели про-
граммы обусловлен возможностью ис-
пользования систем алгебраического про-
граммирования и, для многих классов за-
дач, методов компьютерной алгебры. Раз-
витие систем такого рода предполагает как
расширение и универсализацию модуля
Транслятор, так и развитие систем алгеб-
раического программирования, которые
являются главным инструментом исследо-
вания.
1. Летичевский А.А. Об одном подходе к ана-
лизу пограмм // Кибернетика. – 1979. – № 6.
– С. 1 – 8.
2. Годлевский А.Б., Капитонова Ю.В., Кривой
С.Л., Летичевский А.А. Итеративные мето-
ды анализа программ // Кибернетика. –
1984. – № 2. – С. 23 – 28.
3. Львов М.С. Инвариантные равенства малых
степеней в программах, опеределенных над
полем // Кибернетика. – 1988. – № 1. –
С. 108 – 110.
4. Львов С.М. О реализации вычислений в за-
дачах анализа программ, определенных над
векторными пространствами//Проблемы
программирования. – 2004. – № 2 – 3. Спец.
вып. С. 95 – 101.
5. Letichevsky А., Kapitonova J., Volkov V., Chu-
gajenko A., Chomenko V. Algebraic program-
ming system APS (user manual). Glushkov
Institute of Cybernetics, National Acad. of Sci-
ences of Ukraine. – Kiev. – 1998. – 50 р.
6. Бухбергер Б., Калме Ж., Калтофен Э. Ком-
пьютерная алгебра: символьные и алгеб-
раические вычисления: Пер. с англ. – М.:
Мир, 1986. – 392 с.
Получено 23.01.2007
Об авторе:
Львов Сергей Михайлович,
аспирант Института кибернетики
им. В.М. Глушкова НАН Украины.
Место работы автора:
Институт кибернетики им. В.М. Глушкова
НАН Украины,
Киев 187,
проспект Академика Глушкова, 40.
Тел.: 424 7804,
моб. +38(095)1751522,
еmail: askserg@yandex.ru.
|
| id | nasplib_isofts_kiev_ua-123456789-299 |
| institution | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
| issn | 1727-4907 |
| language | Russian |
| last_indexed | 2025-12-01T01:38:59Z |
| publishDate | 2007 |
| publisher | Інститут програмних систем, журнал "Проблеми програмування" |
| record_format | dspace |
| spelling | Львов, С.М. 2008-02-22T19:29:53Z 2008-02-22T19:29:53Z 2007 О технологиях построения и обработки математических моделей программ / С.М. Львов // Пробл. програмув. — 2007. — N 3. — С. 41-48. — Библиогр.: 6 назв. — рус. 1727-4907 https://nasplib.isofts.kiev.ua/handle/123456789/299 Показаны проблемы, связанные с построением математических моделей программ, предназначенных для использования в системах автоматизации решения задач анализа и преобразования программ. В качестве такой системы рассмотрена система автоматического поиска и доказательства инвариантных равенств в программах. Методы поиска программных инвариантов основаны на анализе свойств предметной области. Определена основная функциональность программного модуля Транслятор этой системы. ru Інститут програмних систем, журнал "Проблеми програмування" №3 С. 41-48 Формальні методи програмування О технологиях построения и обработки математических моделей программ Article published earlier |
| spellingShingle | О технологиях построения и обработки математических моделей программ Львов, С.М. Формальні методи програмування |
| title | О технологиях построения и обработки математических моделей программ |
| title_full | О технологиях построения и обработки математических моделей программ |
| title_fullStr | О технологиях построения и обработки математических моделей программ |
| title_full_unstemmed | О технологиях построения и обработки математических моделей программ |
| title_short | О технологиях построения и обработки математических моделей программ |
| title_sort | о технологиях построения и обработки математических моделей программ |
| topic | Формальні методи програмування |
| topic_facet | Формальні методи програмування |
| url | https://nasplib.isofts.kiev.ua/handle/123456789/299 |
| work_keys_str_mv | AT lʹvovsm otehnologiâhpostroeniâiobrabotkimatematičeskihmodeleiprogramm |