32
Поступила в редакцию 02.11.2022
Подписана в печать
05.12.2022
27 с.
PDF |
И. А.
Адамович, Ю. А. Климов
Исследование эффективности специализации
интерпретаторов на объектно-ориентированном
языке Java методами частичных вычислений
с BT-объектами
Барьеры на пути специализации реальных программ,
написанных в объектно-ориентированной парадигме, часто могут быть
преодолены при помощи современных методов метавычислений. Один
из барьеров — необходимость разрешения полиморфизма на этапе анализа
программы, до ее исполнения. Эта проблема успешно решается для ряда
случаев в специализаторе JaSpe, что показано в данной статье. Работа
посвящена компиляции программ с использованием метода специализации,
без использования компилятора. Мы применили специализатор JaSpe,
основанный на методе частичных вычислений, к двум интерпретаторам
языка арифметических выражений, написанным на Java. Интерпретаторы
были реализованы методом рекурсивного спуска и с использованием
шаблона
«посетитель». В результате успешной специализации данных
интерпретаторов
по программе вычисления квадратного корня на языке арифметических
выражений были получены скомпилированные версии программы на языке
Java. При этом скорость полученных версий программы по сравнению
с исходной увеличилась в 12-22 раза.
Ключевые слова: интерпретаторы, компиляторы, частичные
вычисления, специализация, метавычисления. |
34
Поступила в редакцию 14.10.2022
Подписана в печать
10.11.2022
17 с.
PDF |
Ю. М.
Сметанин
Фронтальный алгоритм решения SAT задачи
Алгоритм вычисления семантического значения
конъюнктивных формул вида U = F(X1, X2,
..., Xn) в неклассической пропозициональной логике
LS₂ [1–3] также вычисляет множество всех решений
логического уравнения
F(x1, x2, ..., xn)
= 1,
где F(X1, X2, ..., Xn)
— формула булевой алгебры множеств, составляющих дискретную
диаграмму Венна. Элементы этих множеств являются неотрицательными
целыми числами. На основе этого алгоритма строится новый алгоритм
для решения задачи SAT. Существенная разница между ним и
семейством алгоритмов, основанных на DPLL, и CDCL, —
замена булевых переменных множествами. Это позволяет эффективно
проверить выполнимость не одного, а многих наборов значений
логических переменных x1, x2, ..., xn.
Ключевые слова: неклассическая
пропозициональная логика, основанная на модели с невырожденной
булевой алгеброй, исчисление дискретных диаграмм Венна, задача SAT. |