Accession Number : ADA329934
Title : Generating Code for High-Level Operations through Code Composition
Descriptive Note : Doctoral thesis
Corporate Author : CARNEGIE-MELLON UNIV PITTSBURGH PA DEPT OF COMPUTER SCIENCE
Personal Author(s) : Stichnoth, James M.
PDF Url : ADA329934
Report Date : AUG 1997
Pagination or Media Count : 135
Abstract : A traditional compiler translates each expression or statement in a high-level language into a sequence of lower-level target statements (e.g., operations in an intermediate representation, or machine instructions), in a manner fixed by the compiler writer. The output is then subject to further optimization. This compilation strategy is called custom code generation, as the compiler generates custom code for each input construct. An alternative strategy is to generate a call to a runtime library for each high-level language construct. This approach is attractive if the source language contains complex, powerful constructs, like the distributed array assignment statement in High Performance FORTRAN (HPF). The decision between custom code generation and use of a runtime library involves tradeoffs between efficiency (performance of the generated code), maintainability (ease of developing and maintaining the algorithm), and generality (implementation of the general case, rather than merely a simplified canonical case). I introduce a new compilation strategy, high-level code composition, which combines the advantages of custom code generation and runtime libraries. The compilation of each construct is controlled by code templates, which contain both target code to be generated and compile-time control instructions that specify how the templates are composed together. The templates are external to the compiler, making them easy to write and modify.
Descriptors : *PARALLEL PROCESSING, *COMPILERS, ALGORITHMS, OPTIMIZATION, INFORMATION TRANSFER, DISTRIBUTED DATA PROCESSING, COMPUTER COMMUNICATIONS, THESES, FORTRAN, COMPUTER AIDED INSTRUCTION, C PROGRAMMING LANGUAGE.
Subject Categories : Computer Programming and Software
Distribution Statement : APPROVED FOR PUBLIC RELEASE