Advanced Symbolic Analysis for Compilers: New Techniques and by Thomas Fahringer

By Thomas Fahringer

The target of software research is to immediately be sure the p- perties of a software. instruments of software program improvement, akin to compilers, p- formance estimators, debuggers, reverse-engineering instruments, software veri?- tion/testing/proving structures, application comprehension structures, and application specializationtoolsarelargelydependentonprogramanalysis. Advancedp- gram research can: aid to ?nd software mistakes; become aware of and music performan- serious code areas; be certain assumed constraints on info usually are not violated; tailor a typical software to fit a speci?c program; reverse-engineer so- ware modules, and so forth. A widespread software research process is symbolic a- lysis, which has attracted enormous recognition for a few years because it isn't really depending on executing a software to envision the semantics of a software, and it could possibly yield very based formulations of many analyses. furthermore, the complexity of symbolic research should be mostly self reliant of the enter info measurement of a software and of the dimensions of the computing device on which this system is being accomplished. during this publication we current novel symbolic keep watch over and knowledge ?ow repres- tation suggestions in addition to symbolic concepts and algorithms to research and optimize courses. application contexts which de?ne a brand new symbolic - scription of software semantics for keep an eye on and information ?ow research are on the heart of our strategy. we've got solved a couple of difficulties encountered in software research through the use of application contexts. Our resolution equipment are e?cient, flexible, uni?ed, and extra basic (they do something about normal and abnormal codes) than so much present tools.

Show description

Read or Download Advanced Symbolic Analysis for Compilers: New Techniques and Algorithms for Symbolic Program Analysis and Optimization (Lecture Notes in Computer Science) PDF

Similar compilers books

A UML Pattern Language, Edition: illustrated edition

A UML development Language pairs the software program layout trend proposal with the Unified Modeling Language (UML) to provide a device set for software program execs working towards either procedure modeling and software program improvement. This publication presents: a set of styles within the area of approach modeling, together with those who are helpful to administration, operations, and deployment groups, in addition to to software program builders; a survey of the improvement of styles and the UML; a dialogue of the underlying thought of the styles and directions for utilizing the language; a radical exploration of the layout method and model-driven improvement.

Parallel Machines: Parallel Machine Languages: The Emergence of Hybrid Dataflow Computer Architectures (The Springer International Series in Engineering and Computer Science)

It really is universally accredited this day that parallel processing is right here to stick yet that software program for parallel machines continues to be tough to strengthen. even though, there's little acceptance of the truth that alterations in processor structure can considerably ease the improvement of software program. within the seventies the provision of processors which can handle a wide identify house without delay, eradicated the matter of brand administration at one point and prepared the ground for the regimen improvement of huge courses.

Semantics, Logics, and Calculi: Essays Dedicated to Hanne Riis Nielson and Flemming Nielson on the Occasion of Their 60th Birthdays (Lecture Notes in Computer Science)

This Festschrift quantity is released in honor of Hanne Riis Nielson and Flemming Nielson at the social gathering in their sixtieth birthdays in 2014 and 2015, respectively. The papers incorporated during this quantity take care of the large region of calculi, semantics, and research. The ebook good points contributions from colleagues, who've labored including Hanne and Flemming via their medical existence and are devoted to them and to their paintings.

Additional info for Advanced Symbolic Analysis for Compilers: New Techniques and Algorithms for Symbolic Program Analysis and Optimization (Lecture Notes in Computer Science)

Sample text

Besides that, numerous researchers [20, 98, 44, 18, 102, 67, 71, 29] have reported on the occurrence of complex and even non-linear symbolic expressions in practical codes and the need for effective techniques to analyze such expressions. Non-linear symbolic expressions are commonly caused by induction variable substitution, linearizing arrays, parameterizing parallel programs with symbolic machine and problem sizes, tiling with symbolic block sizes, recurrences, and so forth. Symbolic expressions can seriously hamper crucial compiler and performance analyses including testing for data dependences, optimizing communication, array privatization, expression simplification, dead code elimination, detecting zero-trip-loops, performance prediction, etc.

E. ρ(a(z), i). The symbolic expression z is the number of loop iterations determined by the loop exit condition and i is the index of the accessed element. Furthermore, the recurrence index k is bound to 0 ≤ k ≤ z. To determine a possible ⊕-function, where the accessed element is written, a potential index set Xl (i) of the l-th ⊕-function is computed. ∀1 ≤ l ≤ m : Xl (i) = { k| βl (k) = i ∧ 0 ≤ k ≤ z} Xl (i) contains all possible βl (k), equal to the index i (0 ≤ k ≤ z). If an index set has more than one element, the array element i is written in different loop iterations by the l-th ⊕-function.

5 shows the properties that hold for the folding operator. In case of a loop header node, we apply prep header(n) which updates cb (n) with additional information to model recurrences. c1 ⊙ c2 (c1 ⊙ c2 ) ⊙ c3 c⊙c c⊙⊤ = = = = c2 ⊙ c1 c1 ⊙ (c2 ⊙ c3 ) c c Fig. 5. Properties of the folding operator ⊙ (c, c1 , c2 and c3 are contexts). 4). 4. The recurrence relations and boundary conditions are derived from the preheader of L and the recurrence condition from pb (n). The values of recurrence variables are then replaced with their associated closed forms in cb (n).

Download PDF sample

Rated 4.47 of 5 – based on 47 votes