Задача декомпиляции Java-байткода состоит в построении исходного кода на языке Java, эквивалентного данному байткоду. Байткод — линейная программа с условными и безусловными переходами, а язык Java содержит структуры управления, который образуют иерархию в исходном коде. Эту иерархию необходимо восстанавливать при декомпиляции, в частности, необходимо восстановить блоки обработки исключений try-catch-finally. В проекте Excelsior RVM (виртуальной машины Java со статическим компилятором) байткод декомпилируется для проведения оптимизирующих преобразований. При построении блоков обработки исключений декомпилятор системы Excelsior RVM полагает, что байткод был получен путем компиляции исходного кода стандартным компилятором языка Java, и пытается совершить обратное преобразование. Иногда это не удается для байткода, полученного другими инструментами. В данной работе предложен алгоритм декомпиляции, восстанавливающий блоки обработки исключений из произвольного корректного байткода. Этот алгоритм реализован, интегрирован в систему Excelsior RVM и протестирован на реальных приложениях.
В статье рассматриваются несколько популярных классических моделей анализа и прогнозирования временных рядов. Вначале описываются относительно простые модели усреднения и сглаживания, затем модели авторегрессии, скользящего среднего, а также «смешанная» модель авторегрессии-скользящего среднего, полученная путем скрещивания двух последних моделей. Последней рассматривается интегрированная модель авторегрессии-скользящего среднего для случая нестационарных временных рядов.
Цель данной работы – установить взаимосвязи между различными параллельными моделями реального времени. Для достижения данной цели мы определили категорию временных причинных деревьев и исследовали, какое место занимает эта категория среди других категорий временных моделей. В частности, мы установили существование сопряженных функторов между категорией временных причинных деревьев и категорией временных структур событий, используя для этого более выразительную модель временных деревьев событий. Тем самым мы показали, что временные причинные деревья проще временных структур событий в том, что они отражают только один аспект семантики истинного параллелизма, а именно причинную зависимость, и не используют понятие события для задания отношения причинной зависимости. С другой стороны, модель временных причинных деревьев более выразительна, чем модель временных структур событий по следующей причине: для нее множество всех возможных последовательностей выполнения может быть определено в терминах дерева без каких-либо ограничений, а множество всевозможных последовательностей выполнения для временной структуры событий должно быть замкнутыми относительно операции перестановки параллельных переходов.
Статья описывает применение системы проверки моделей SPIN к решению японской головоломки о переправе через реку (продвинутый вариант задачи о волке, козе и капусте) и головоломки "Irregular IQ Cube" (также называемой "Куб-1").