For a compiler writer, generating good machine code for a variety of platforms is hard work. One might try to reuse a retargetable code generator, but code generators are complex and diicult to use, and they limit one's choice of implementation language. One might try to use C as a portable assembly language, but C limits the compiler writer's exibility and… (More)
This paper identifies high-level program properties that can be discovered by static analysis in a compiler front end, and that are useful for classical low-level optimizations. We suggest how intermediate language code could be annotated to convey these properties to the code generator.
Current Fortran optimizing compilers often include source to source transformations for automatic parallelization or vectorization of loops. Lower level optimizations , such as those that aim to exploit ILP, are performed at later stages at the assembly language level and do not profit from information available at the source code level, such as array… (More)
An emerging trend in programming language design is to allow for more properties about values and computations to be expressed in the language so that they can be checked automatically. This paper presents a flow-sensitive type checking algorithm for a type system of type qualifiers. We show that our type checker can detect common programming errors that… (More)