Journal of the ACM (JACM)
Compiler Construction for Digital Computers
Compiler Construction for Digital Computers
Automatic recognition of vector and parallel operations in a higher level language
ACM '72 Proceedings of the ACM annual conference - Volume 2
Proceedings of a symposium on Compiler optimization
Semantic attributes and improvement of generated code
ACM '74 Proceedings of the 1974 annual conference - Volume 1
A globalizing transformation for attribute grammars
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
A Deterministic Attribute Grammar Evaluator Based on Dynamic Scheduling
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automatic generation of near-optimal linear-time translators for non-circular attribute grammars
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Alternating semantic evaluator
ACM '75 Proceedings of the 1975 annual conference
Automatic generation of efficient evaluators for attribute grammars
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
Global data flow analysis in Aldes
ACM SIGSAM Bulletin
Constant folding within an expression by semantic attributes
Computer Languages
Hi-index | 0.00 |
This document presents how one of the most important optimizations that a program may undergo is dealt with by means of attributes [7]. A semantic formalization of the classical method which consists of removing all loop-independent statements from the articulation blocks of a loop is given. The method is equally well applicable to algebraic languages or their intermediate code : in a high level language even very well constructed programs quite often contain in their intermediate code version invariant loop expressions where address evaluations are concerned. Whatever the level of nested-loop structure, the method proposed here would not require more than a single real compiler pass in contrast with classical methods which proceed from the innermost loop and shift the invariant statements just one level at each successive pass. Finally an interesting algorithm to determine the articulation blocks of a program is given in the annexe. This method has been so conceived as to take into account the evaluation of attributes by the system DELTA [6]. In this phase of the compiler possibilities of parallel execution are offered as the evaluation program is data oriented. The rigour of formalization attained together with a certain minimization of risks of erroneous optimization applications which it involves render this method indubitably efficient.