A comparison of designs for extensible and extension-oriented compilers

Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2008.

Bibliographic Details
Main Author: Clements, Austin T., S.M. Massachusetts Institute of Technology
Other Authors: M. Frans Kaashoek.
Format: Thesis
Language:eng
Published: Massachusetts Institute of Technology 2009
Subjects:
Online Access:http://hdl.handle.net/1721.1/45630
_version_ 1826201691229257728
author Clements, Austin T., S.M. Massachusetts Institute of Technology
author2 M. Frans Kaashoek.
author_facet M. Frans Kaashoek.
Clements, Austin T., S.M. Massachusetts Institute of Technology
author_sort Clements, Austin T., S.M. Massachusetts Institute of Technology
collection MIT
description Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2008.
first_indexed 2024-09-23T11:55:13Z
format Thesis
id mit-1721.1/45630
institution Massachusetts Institute of Technology
language eng
last_indexed 2024-09-23T11:55:13Z
publishDate 2009
publisher Massachusetts Institute of Technology
record_format dspace
spelling mit-1721.1/456302019-04-11T02:54:00Z A comparison of designs for extensible and extension-oriented compilers Clements, Austin T., S.M. Massachusetts Institute of Technology M. Frans Kaashoek. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Electrical Engineering and Computer Science. Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2008. This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections. Includes bibliographical references (p. 67-69). Today's system programmers go to great lengths to extend the languages in which they program. For instance, system-specific compilers and errors in Linux and other systems, and add support for specialized control flow to Qt and event-based programs. These compilers are difficult to build and cannot always understand each other's language changes. However, they can greatly improve code understandability and correctness, advantages that should be accessible to all programmers. This thesis considers four extensible and extension-oriented compilers: CIL, Polyglot, xtc, and Xoc. These four compilers represent four distinctly different approaches to the problem of bridging the gap between language design and system implementation. Taking an extension author's point of view, this thesis compares the design of each compiler's extension interface in terms of extension structure, syntactic analysis, semantic analysis, and rewriting. To perform the comparison, this thesis uses three extensions implemented variously in the four compilers: a bitwise rotation operator, function expressions, and lock checking. These extensions are designed to span a representative space of analysis and rewriting needs. (cont.) Based on this comparison, this thesis identities the following implications of the design decisions of each extension interface: the expressiveness, understandability, and correctness of extension implementations can benefit from domain specific languages and language features tailored to the extension interface; compiler-managed scheduling trades loss of control for automatic extension composability; unifying internal and external program representation improves ease of use and extension composability, but gives up potentially useful control over the internal representation; concrete syntax patterns provide a natural interface to internal program representation, but must be more powerful than simple tree matching to be practical; grammars, types, and syntax interfaces have a natural correspondence; and accounting for semantic information in the final output enables hygienic rewriting, which can simplify extensions. by Austin T. Clements. M.Eng. 2009-06-25T20:36:26Z 2009-06-25T20:36:26Z 2008 2008 Thesis http://hdl.handle.net/1721.1/45630 351452432 eng M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission. http://dspace.mit.edu/handle/1721.1/7582 69 p. application/pdf Massachusetts Institute of Technology
spellingShingle Electrical Engineering and Computer Science.
Clements, Austin T., S.M. Massachusetts Institute of Technology
A comparison of designs for extensible and extension-oriented compilers
title A comparison of designs for extensible and extension-oriented compilers
title_full A comparison of designs for extensible and extension-oriented compilers
title_fullStr A comparison of designs for extensible and extension-oriented compilers
title_full_unstemmed A comparison of designs for extensible and extension-oriented compilers
title_short A comparison of designs for extensible and extension-oriented compilers
title_sort comparison of designs for extensible and extension oriented compilers
topic Electrical Engineering and Computer Science.
url http://hdl.handle.net/1721.1/45630
work_keys_str_mv AT clementsaustintsmmassachusettsinstituteoftechnology acomparisonofdesignsforextensibleandextensionorientedcompilers
AT clementsaustintsmmassachusettsinstituteoftechnology comparisonofdesignsforextensibleandextensionorientedcompilers