Results 1 -
7 of
7
Program Development Schemata as Derived Rules
, 2000
"... This paper makes several contributions towards a clarified view of schema-based program development. First, we propose that schemata can be understood, formalized, and used in a simple way: program development schemata are derived rules. We mean this in the standard sense of a derived rule of infere ..."
Abstract
-
Cited by 9 (2 self)
- Add to MetaCart
This paper makes several contributions towards a clarified view of schema-based program development. First, we propose that schemata can be understood, formalized, and used in a simple way: program development schemata are derived rules. We mean this in the standard sense of a derived rule of inference in logic. A schema like Figure i can be formulated as a rule stating that the conclusion follows from the premises defining F, G, and the applicability conditions. By deriving the rule in an axiomatic theory, we validate a semantic statement about it: the conclusion of the rule holds in every model where both the axioms of the theory and the premises of the rule are true. Hence, by selecting a language to work in we control which development schemata are formalizable, and by selecting a theory we determine which schemata are derivable
A Transformational Approach to Binary Translation of Delayed Branches
, 1998
"... This paper presents a disciplined method for deriving such case analyses. The method identies problematic cases, shows the translations for the non-problematic cases, and gives con- dence that all cases are considered. The method supports such common architectures as SPARC, MIPS, and PA-RISC, and it ..."
Abstract
-
Cited by 6 (2 self)
- Add to MetaCart
This paper presents a disciplined method for deriving such case analyses. The method identies problematic cases, shows the translations for the non-problematic cases, and gives con- dence that all cases are considered. The method supports such common architectures as SPARC, MIPS, and PA-RISC, and it should apply to any tool that analyzes machine instructions. We begin by writing a very simple interpreter for the source machine's code. We then transform the interpreter into an interpreter for a target machine without delayed branches. To maintain the semantics of the program being interpreted, we simultaneously transform the sequence of sourcemachine instructions into a sequence of target-machine instructions. The transformation of the instructions becomes our algorithm for binary translation. We show the translation is correct by reasoning about corresponding states on source and target machines. Categories and Subject Descriptors: D.3.4 [Programming Languag
Using hammock graphs to structure programs
- IEEE Transactions on Software Engineering
, 2004
"... Abstract—Advanced computer architectures rely mainly on compiler optimizations for parallelization, vectorization, and pipelining. Efficient code generation is based on a control dependence analysis to find the basic blocks and to determine the regions of control. However, unstructured branch statem ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
Abstract—Advanced computer architectures rely mainly on compiler optimizations for parallelization, vectorization, and pipelining. Efficient code generation is based on a control dependence analysis to find the basic blocks and to determine the regions of control. However, unstructured branch statements, such as jumps and goto’s, render the control flow analysis difficult, time-consuming, and result in poor code generation. Branches are part of many programming languages and occur in legacy and maintenance code as well as in assembler, intermediate languages, and byte code. A simple and effective technique is presented to convert unstructured branches into hammock graph control structures. Using three basic transformations, an equivalent program is obtained in which all control statements have a well-defined scope. In the interest of predication and branch prediction, the number of control variables has been minimized, thereby allowing a limited code replication. The correctness of the transformations has been proven using an axiomatic proof rule system. With respect to previous work, the algorithm is simpler and the branch conditions are less complex, making the program more readable and the code generation more efficient. Additionally, hammock graphs define single entry single exit regions and therefore allow localized optimizations. The restructuring method has been implemented into the parallelizing compiler FPT and allows to extract parallelism in unstructured programs. The use of hammock graph transformations in other application areas such as vectorization, decompilation, and assembly program restructuring is also demonstrated.
Reverse Engineering Goal Models from Legacy Code
- in Proceedings of the 13th IEEE International Conference on Requirements Engineering: IEEE Computer Society
, 2005
"... ..."
Adapting Functional Programs to Higher-Order Logic
"... Abstract. Higher-order logic proof systems combine functional programming with logic, providing functional programmers with a comfortable setting for the formalization of programs, specifications, and proofs. However, a possibly unfamiliar aspect of working in such an environment is that formally es ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract. Higher-order logic proof systems combine functional programming with logic, providing functional programmers with a comfortable setting for the formalization of programs, specifications, and proofs. However, a possibly unfamiliar aspect of working in such an environment is that formally establishing program termination is necessary. In many cases, termination can be automatically proved, but there are useful programs that diverge and others that always terminate but have difficult termination proofs. We discuss techniques that support the expression of such programs as logical functions. 1.
Quicksort via Bird's Tree Fusion Transformation
"... In this paper we present a Nuprl formalization and proof of Bird's fusion theorem for trees. ..."
Abstract
- Add to MetaCart
In this paper we present a Nuprl formalization and proof of Bird's fusion theorem for trees.

