Results 1 - 10
of
20
Fine-grained dynamic instrumentation of commodity operating system kernels
, 1999
"... We have developed a technology, fine-grained dynamic instrumentation of commodity kernels, which can splice (insert) dynamically generated code before almost any machine code instruction of a completely unmodified running commodity operating system kernel. This technology is well-suited to performan ..."
Abstract
-
Cited by 107 (5 self)
- Add to MetaCart
We have developed a technology, fine-grained dynamic instrumentation of commodity kernels, which can splice (insert) dynamically generated code before almost any machine code instruction of a completely unmodified running commodity operating system kernel. This technology is well-suited to performance profiling, debugging, code coverage, security auditing, runtime code optimizations, and kernel extensions. We have designed and implemented a tool called KernInst that performs dynamic instrumentation on a stock production Solaris kernel running on an UltraSPARC. On top of KernInst, we have implemented a kernel performance profiling tool, and used it to understand kernel and application performance under a Web proxy server workload. We used this information to make two changes (one to the kernel, one to the proxy) that cumulatively reduce the percentage of elapsed time that the proxy spends opening disk cache files from 40 % to 7%. 1
A Control-Flow Normalization Algorithm and Its Complexity
- IEEE Transactions on Software Engineering
, 1992
"... We present a simple method for normalizing the control-flow of programs to facilitate program transformations, program analysis, and automatic parallelization. While previous methods result in programs whose control flowgraphs are reducible, programs normalized by this technique satisfy a stronger c ..."
Abstract
-
Cited by 38 (0 self)
- Add to MetaCart
We present a simple method for normalizing the control-flow of programs to facilitate program transformations, program analysis, and automatic parallelization. While previous methods result in programs whose control flowgraphs are reducible, programs normalized by this technique satisfy a stronger condition than reducibility and are therefore simpler in their syntax and structure than with previous methods. In particular, all control-flow cycles are normalized into single-entry, single-exit while loops, and all goto's are eliminated. Furthermore, the method avoids problems of code replication that are characteristic of node-splitting techniques. This restructuring obviates the control dependence graph, since afterwards control dependence relations are manifest in the syntax tree of the program. In this paper we present transformations that effect this normalization, and study the complexity of the method. Index Terms: Continuations, control-flow, elimination algorithms, normalization,...
Derivation of Data Intensive Algorithms by Formal Transformation: The Schorr-Waite Graph Marking Algorithm
, 1996
"... In this paper we consider a particular class of algorithms which present certain difficulties to formal verification. These are algorithms which use a single data structure for two or more purposes, which combine program control information with other data structures or which are developed as a comb ..."
Abstract
-
Cited by 34 (23 self)
- Add to MetaCart
In this paper we consider a particular class of algorithms which present certain difficulties to formal verification. These are algorithms which use a single data structure for two or more purposes, which combine program control information with other data structures or which are developed as a combination of a basic idea with an implementation technique. Our approach is based on applying proven semantics-preserving transformation rules in a wide spectrum language. Starting with a set theoretical specification of "reachability" we are able to derive iterative and recursive graph marking algorithms using the "pointer switching" idea of Schorr and Waite. There have been several proofs of correctness of the Schorr-Waite algorithm, and a small number of transformational developments of the algorithm. The great advantage of our approach is that we can derive the algorithm from its specification using only general-purpose transformational rules: without the need for complicated induction arg...
Formal Methods to Aid the Evolution of Software
- International Journal of Software Engineering and Knowledge Engineering
, 1995
"... There is a vast collection of operational software systems which are vitally important to their users, yet are becoming increasingly difficult to maintain, enhance and keep up to date with rapidly changing requirements. For many of these so called legacy systems the option of throwing the system awa ..."
Abstract
-
Cited by 16 (5 self)
- Add to MetaCart
There is a vast collection of operational software systems which are vitally important to their users, yet are becoming increasingly difficult to maintain, enhance and keep up to date with rapidly changing requirements. For many of these so called legacy systems the option of throwing the system away an re-writing it from scratch is not economically viable. Methods are therefore urgently required which enable these systems to evolve in a controlled manner. The approach described in this paper uses formal proven program transformations, which preserve or refine the semantics of a program while changing its form. These transformations are applied to restructure ans simplify the legacy systems and to extract higher-level representations. By using an appropriate sequence of transformations, the extracted representation is guaranteed to be equivalent to the code. The method is based on a formal wide spectrum language, called WSL, with accompanying formal method. Over the last ten years we h...
RATFOR --- A Preprocessor for a Rational Fortran
- SOFTWARE − PRACTICE & EXPERIENCE
, 1975
"... Although Fortran is not a pleasant language to use, it does have the advantages of universality and (usually) relative efficiency. The Ratfor language attempts to conceal the main deficiencies of Fortran while retaining its desirable qualities, by providing decent control flow statements: . stateme ..."
Abstract
-
Cited by 14 (0 self)
- Add to MetaCart
Although Fortran is not a pleasant language to use, it does have the advantages of universality and (usually) relative efficiency. The Ratfor language attempts to conceal the main deficiencies of Fortran while retaining its desirable qualities, by providing decent control flow statements: . statement grouping . if-else and switch for decision-making . while, for, do, and repeat-until for looping . break and next for controlling loop exits and some "syntactic sugar": . free form input (multiple statements/line, automatic continuation) . unobtrusive comment convention . translation of >, >=, etc., into .GT., .GE., etc. . return(expression) statement for functions . define statement for symbolic parameters . include statement for including source files Ratfor is implemented as a preprocessor which translates this language into Fortran. Once the control flow and cosmetic deficiencies of Fortran are hidden, the resulting language is remarkably pleasant to use. Ratfor programs a...
Pigs from Sausages? Reengineering from Assembler to C via FermaT Transformations
- Science of Computer Programming, Special Issue on Program Transformation 52
, 2004
"... Software reengineering has been described as being "about as easy as reconstructing a pig from a sausage" [11]. But the development of program transformation theory, as embodied in the FermaT transformation system, has made this miraculous feat into a practical possibility. This paper describes the ..."
Abstract
-
Cited by 13 (2 self)
- Add to MetaCart
Software reengineering has been described as being "about as easy as reconstructing a pig from a sausage" [11]. But the development of program transformation theory, as embodied in the FermaT transformation system, has made this miraculous feat into a practical possibility. This paper describes the theory...
A Recursion Removal Theorem
, 1993
"... In this paper we briefly introduce a Wide Spectrum Language and its transformation theory and describe a recent success of the theory: a general recursion removal theorem. Recursion removal often forms an important step in the systematic development of an algorithm from a formal specification. We us ..."
Abstract
-
Cited by 7 (3 self)
- Add to MetaCart
In this paper we briefly introduce a Wide Spectrum Language and its transformation theory and describe a recent success of the theory: a general recursion removal theorem. Recursion removal often forms an important step in the systematic development of an algorithm from a formal specification. We use semantic-preserving transformations to carry out such developments and the theorem proves the correctness of many different classes of recursion removal. This theorem includes as special cases the two techniques discussed by Knuth [13] and Bird [7]. We describe some applications of the theorem to cascade recursion, binary cascade recursion, Gray codes, and an inverse engineering problem.
Academic Legitimacy of the Software Engineering Discipline
, 1992
"... Abstract: This article examines the academic substance of software engineering. It identifies the basic research questions and the methods used to solve them. What is learned during this research constitutes the body of knowledge of software engineering. The article then discusses at length what abo ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Abstract: This article examines the academic substance of software engineering. It identifies the basic research questions and the methods used to solve them. What is learned during this research constitutes the body of knowledge of software engineering. The article then discusses at length what about software makes its production so difficult and makes software engineering so challenging an intellectual discipline. 1
Iterative Procedures for Computing Ackerman's Function
, 1993
"... This paper uses Ackerman's function as a testbed to illustrate the operation of various program transformations which take recursive procedures to equivalent iterative forms. The transformations are taken from the author's DPhil thesis [19]. In this paper we illustrate that they can be successfully ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
This paper uses Ackerman's function as a testbed to illustrate the operation of various program transformations which take recursive procedures to equivalent iterative forms. The transformations are taken from the author's DPhil thesis [19]. In this paper we illustrate that they can be successfully applied to even the most convoluted recursion. For many programs a recursive function is the most natural and clear specification while an iterative (or tail-recursive) form is the most efficient implementation. This paper illustrates how an efficient iterative program can be developed and verified by starting with a simple recursive program and using proven transformations to remove the recursion. The resulting iterative program will be correct by construction, so the problem of a direct verification of the iterative algorithm is avoided. This process can also throw light on the nature of the recursive specification. Several interesting properties of Ackermann's function and the iterative algorithms are derived in the course of this development.

