A simple, iterative bit propagation algorithm for solving global data flow analysis problems such as “available expressions” and “live variables” is presented and shown to be quite comparable in speed to the corre...
详细信息
A simple, iterative bit propagation algorithm for solving global data flow analysis problems such as “available expressions” and “live variables” is presented and shown to be quite comparable in speed to the corresponding interval analysis algorithm. This comparison is facilitated by a result relating two parameters of a reducible flow graph (rfg). Namely, if G is an rfg, d is the largest number of back edges found in any cycle-free path in G, and k is the length of the interval derived sequence of G, then k≧d. (Intuitively, k is the maximum nesting depth of loops in a computer program, while d is a measure of the maximum loop-interconnectedness.) The node ordering employed by the simple algorithm is the reverse of the order in which a node is last visited while growing any depth-first spanning tree of the flow graph. In addition, a dominator algorithm for an rfg is presented which takes O(edges) bit vector steps.
In an earlier paper, the authors have defined type 1 and type 2 dataflow anomalies to be, respectively, the reference to an undefined variable and the definition of a variable without subsequent reference. It is not ...
详细信息
This paper describes DAVE, a system for analysing Fortran programs. DAVE is capable of detecting the symptoms of a wide variety of errors In programs, as well as assuring the absence of these errors. In addition, DAVE...
详细信息
Kildall [1] has recently developed lattice theoretic techniques for solving many data flow analysis problems. It is the purpose of this paper to demonstrate that many of the loop optimization such as 'code motion&...
详细信息
An algorithm is given for finding where the variables of a program are active or live. While the algorithm is modeled after that of Kennedy, it is based on the flow graph straightening procedure of Earnest, Balke, and...
详细信息
An algorithm is given for finding where the variables of a program are active or live. While the algorithm is modeled after that of Kennedy, it is based on the flow graph straightening procedure of Earnest, Balke, and Anderson, rather than on Cocke-Allen intervals. Thus it can be applied to any program, without appeal to any additional mechanism such as node splitting.
There is an ordering of the nodes of a flow graph G which topologically sorts the dominance relation and can be found in 0(edges) steps. This ordering is the reverse of the order in which a node is last visited while ...
详细信息
Methods of analyzing the control flow and dataflow of programs during compilation are applied to transforming the program to improve object time efficiency. Dominance relationships, indicating which statements are ne...
详细信息
Methods of analyzing the control flow and dataflow of programs during compilation are applied to transforming the program to improve object time efficiency. Dominance relationships, indicating which statements are necessarily executed before others, are used to do global common expression elimination and loop identification. Implementation of these and other optimizations in OS/360 FORTRAN H are described. [ABSTRACT FROM AUTHOR]
Cílem této práce je vytvoření systému pro statickou analýzu skriptů některého unixového shellu. Zmožných alternativ je jako hlavní předmět zájmu zvolen Bo...
详细信息
Cílem této práce je vytvoření systému pro statickou analýzu skriptů některého unixového shellu. Zmožných alternativ je jako hlavní předmět zájmu zvolen Bourne-again shell. Součástí projektu je seznámení se sprincipy statické analýzy, prostudování současných aplikací, které se touto problematikou zabývají, a také probádání syntaxe a architektury vybraného shellu. Výsledkem projektu je návrh a realizace modulárního systému, který umožní zásuvným modulům provádět různé analýzy skriptů. Systém zahrnuje správu zásuvných modulů, prostředky pro jejich interakci, zpracování výstupů a nastavení vstupu. Také je popsáno několik zásuvných modulů, které jsou schopny některé základní analýzy provádět.
Táto práca popisuje proces a jednotlivé časti dekompilácie. Dekompilácia je opačný proces ku kompilácii. Jej úlohou je transformácia vstupného programu, obyčajne v str...
详细信息
Táto práca popisuje proces a jednotlivé časti dekompilácie. Dekompilácia je opačný proces ku kompilácii. Jej úlohou je transformácia vstupného programu, obyčajne v strojovom kóde, do funkčne ekvivalentnej podoby vo vyššom programovacom jazyku. Práca popisuje jednotlivé fázy dekompilácie: disasembler, generátor vnútornej reprezentácie programu, analýza základných blokov, optimalizácia, analýza dátových a riadiacich tokov a generovanie výsledného kódu.
暂无评论