Lifting the Abstraction Level of Compiler Transformations

Production compilers implement optimizing transformation rules for built-in types. What justifies applying these optimizing rules is the axioms that hold for built-in types and the built-in operations supported by these types. Similar axioms also hold for user-defined types and the operations defin...

Full description

Bibliographic Details
Main Author: Tang, Xiaolong
Other Authors: Jarvi, Jaakko
Format: Others
Language:en
Published: 2013
Subjects:
C++
Online Access:http://hdl.handle.net/1969.1/151126
id ndltd-tamu.edu-oai-repository.tamu.edu-1969.1-151126
record_format oai_dc
spelling ndltd-tamu.edu-oai-repository.tamu.edu-1969.1-1511262013-12-18T03:55:18ZLifting the Abstraction Level of Compiler TransformationsTang, XiaolongCompiler optimizationProgram analysisProgramming languageGeneric programmingC++Production compilers implement optimizing transformation rules for built-in types. What justifies applying these optimizing rules is the axioms that hold for built-in types and the built-in operations supported by these types. Similar axioms also hold for user-defined types and the operations defined on them, and therefore justify a set of optimization rules that may apply to user-defined types. Production compilers, however, do not attempt to construct and apply these optimization rules to user-defined types. Built-in types together the axioms that apply to them are instances of more general algebraic structures. So are user-defined types and their associated axioms. We use the technique of generic programming, a programming paradigm to design efficient, reusable software libraries, to identify the commonality of classes of types, whether built-in or user-defined, convey the semantics of the classes of types to compilers, design scalable and effective program analysis for them, and eventually apply optimizing rules to the operations on them. In generic programming, algorithms and data structures are defined in terms of such algebraic structures. The same definitions are reused for many types, both built-in and user-defined. This dissertation applies generic programming to compiler analyses and transformations. Analyses and transformations are specified for general algebraic structures, and they apply to all types, both built-in and primitive types.Jarvi, JaakkoDos Reis, GabrielStroustrup, BjarneSottile, Frank2013-12-16T20:03:58Z2013-082013-08-08August 20132013-12-16T20:03:59ZThesistextapplication/pdfhttp://hdl.handle.net/1969.1/151126en
collection NDLTD
language en
format Others
sources NDLTD
topic Compiler optimization
Program analysis
Programming language
Generic programming
C++
spellingShingle Compiler optimization
Program analysis
Programming language
Generic programming
C++
Tang, Xiaolong
Lifting the Abstraction Level of Compiler Transformations
description Production compilers implement optimizing transformation rules for built-in types. What justifies applying these optimizing rules is the axioms that hold for built-in types and the built-in operations supported by these types. Similar axioms also hold for user-defined types and the operations defined on them, and therefore justify a set of optimization rules that may apply to user-defined types. Production compilers, however, do not attempt to construct and apply these optimization rules to user-defined types. Built-in types together the axioms that apply to them are instances of more general algebraic structures. So are user-defined types and their associated axioms. We use the technique of generic programming, a programming paradigm to design efficient, reusable software libraries, to identify the commonality of classes of types, whether built-in or user-defined, convey the semantics of the classes of types to compilers, design scalable and effective program analysis for them, and eventually apply optimizing rules to the operations on them. In generic programming, algorithms and data structures are defined in terms of such algebraic structures. The same definitions are reused for many types, both built-in and user-defined. This dissertation applies generic programming to compiler analyses and transformations. Analyses and transformations are specified for general algebraic structures, and they apply to all types, both built-in and primitive types.
author2 Jarvi, Jaakko
author_facet Jarvi, Jaakko
Tang, Xiaolong
author Tang, Xiaolong
author_sort Tang, Xiaolong
title Lifting the Abstraction Level of Compiler Transformations
title_short Lifting the Abstraction Level of Compiler Transformations
title_full Lifting the Abstraction Level of Compiler Transformations
title_fullStr Lifting the Abstraction Level of Compiler Transformations
title_full_unstemmed Lifting the Abstraction Level of Compiler Transformations
title_sort lifting the abstraction level of compiler transformations
publishDate 2013
url http://hdl.handle.net/1969.1/151126
work_keys_str_mv AT tangxiaolong liftingtheabstractionlevelofcompilertransformations
_version_ 1716620488082456576