Download PDFOpen PDF in browserOn Unfolding for Programs Using Strings as a Data Type18 pages•Published: July 28, 2014AbstractAs a rule, program transformation methods based on semantics unfolda semantic tree of a given program. Sometimes that allows to optimize the program or to prove its certain properties automatically. Unfolding is one of the basic operations, which is a meta-extension of one step of the abstract machine executing the program. This paper is interested in unfolding for programs based on pattern matching and manipulating the strings. The corresponding computation model originates from Markov's normal algorithms and extends this theoretical base. Even though algorithms unfolding programs were being intensively studied for a long time in the context of variety of programming languages, as far as we know, the associative concatenation was stood at the wayside of the stream. We define a class of term rewriting systems manipulating with strings and describe an algorithm unfolding the programs from the class. The programming language defined by this class is algorithmic complete. Given a word equation, one of the algorithms suggested in this paper results in a description of the corresponding solution set. Keyphrases: markov s normal algorithms, program analysis, program specialization, program transformation, supercompilation, unfolding, word equations In: Alexei Lisitsa and Andrei Nemytykh (editors). VPT 2014. Second International Workshop on Verification and Program Transformation, vol 28, pages 66-83.
|