Abstract. We introduce the notion of a perfect process tree as a model for the full prop agation of in forma tion in metacomputation. Starting with constant propagation we construct step-by-step the driving mechanism used in su percompila tion which ensures the perfect propagation of information. The concept of a simple super compil er based on perfect driving coupled with a simple folding strategy is explained. As an example we demonstrate that specializing a naive pattern matcher with respect to a fixed pattern obtains the efficiency of a matcher generated by the Knuth, Morris & Pratt al gorithm.
Как создавать параллельные программы, детерминированные по построению? Постановка проблемы и обзор работАннотация. Одна из основных проблем, делающих параллельное про-граммирование ненадежным, трудозатратным, подверженным ошибкам, а программы трудно отлаживаемыми, --недетерминированность процессов и результатов вычислений, когда несколько исполнений одной программы с одинаковыми входными данными могут выдавать разные результаты из-за другого порядка взаимодействия параллельных процессов. В связи с бурным ростом сложности программ для суперкомпьютеров, в последнее десятилетие приобретает популярность и становится всё более актуальной идея параллельных вычислений с детерминированностью, гарантированной языком и системой программирования. В статье анализируется проблема, как сделать параллельное програм-мирование как можно более детерминированным, и дается обзор некоторых подходов к ее решению. Также обсуждается задача разработки системы, предоставляющей возможность писать как детерминированный, так и неде-терминированный код с гарантиями прикладному программисту, что его программа будет детерминированной.Ключевые слова и фразы: модели параллельных вычислений, детерминированные про-граммы, функциональное программирование, объектно-ориентированное программирование.
ВведениеОдна из фундаментальных причин, почему параллельное програм-мирование существенно сложнее последовательного, к которому при-выкли разработчики за десятилетия развития информационных техно-логий, --то, что оно в общем случае недетерминированное: несколько исполнений программы с одними и теми же исходными данными могут давать различные результаты из-за различающегося порядка Исследование выполнено в рамках НИР (госзадание ФАНО РОССИИ, регистра-ционный номер АААА-А17-117040610375-5) (1) .Исследование выполнено при поддержке РФФИ (проект № 16-01-00813-а) (2) .
Abstract. The Java Supercompiler (JScp) is a specializer of Java programs based on the Turchin's supercompilation method and extended to support imperative and object-oriented notions absent in functional languages. The results of successful application of the Java Supercompiler for verification of a number of parameterized models of cache-coherence protocols are reported. Protocols are modeled in Java following the known method by G. Delzanno and experiments by A. Lisitsa and A. Nemytykh on verification of protocol models by means of the Refal Supercompiler SCP4. The part of the supercompilation method relevant to the protocol verification is described. It deals with an imperative subset of Java.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.