<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="static/style.xsl"?><OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"><responseDate>2026-09-18T19:28:53Z</responseDate><request verb="GetRecord" identifier="oai:dspace.mit.edu:1721.1/140079" metadataPrefix="dim">https://dspace.mit.edu/server/oai/request</request><GetRecord><record><header><identifier>oai:dspace.mit.edu:1721.1/140079</identifier><datestamp>2022-02-08T03:18:48Z</datestamp><setSpec>com_1721.1_7582</setSpec><setSpec>com_1721.1_7581</setSpec><setSpec>col_1721.1_131022</setSpec></header><metadata><dim:dim xmlns:dim="http://www.dspace.org/xmlns/dspace/dim" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:doc="http://www.lyncode.com/xoai" xsi:schemaLocation="http://www.dspace.org/xmlns/dspace/dim http://www.dspace.org/schema/dim.xsd">
   <dim:field mdschema="dc" element="contributor" qualifier="advisor">Solar-Lezama, Armando</dim:field>
   <dim:field mdschema="dc" element="contributor" qualifier="author">Koppel, James</dim:field>
   <dim:field mdschema="dc" element="contributor" qualifier="department">Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science</dim:field>
   <dim:field mdschema="dc" element="date" qualifier="accessioned">2022-02-07T15:22:51Z</dim:field>
   <dim:field mdschema="dc" element="date" qualifier="available">2022-02-07T15:22:51Z</dim:field>
   <dim:field mdschema="dc" element="date" qualifier="issued">2021-09</dim:field>
   <dim:field mdschema="dc" element="date" qualifier="submitted">2021-09-21T19:30:25.869Z</dim:field>
   <dim:field mdschema="dc" element="identifier" qualifier="uri">https://hdl.handle.net/1721.1/140079</dim:field>
   <dim:field mdschema="dc" element="identifier" qualifier="orcid">0000-0002-3948-6904</dim:field>
   <dim:field mdschema="dc" element="description" qualifier="abstract">Programming languages researchers have developed many advanced tools that promise to greatly ease software engineering. Yet even conceptually simple tools are expensive to implement fully due to the complexity of the target language, and standard techniques tie an implementation to a particular target language. In order to make the development of advanced programming tools economical, these problems demand new techniques for decomposing the development of tools and automating portions of their construction, which I collectively dub "meta-metaprogramming."&#xd;
 &#xd;
In this thesis, I present three new meta-metaprogramming techniques reducing the work needed to build programming tools, each applicable to the specific problem of sharing implementation code between similar tools for different languages. These techniques respectively allow a single implementation of a transformation to losslessly rewrite code in many languages, automatically generate a family of programming tools from a language's semantics, and develop a new representation for sets of programs which is applicable to a variety of languages and synthesis tasks.</dim:field>
   <dim:field mdschema="dc" element="description" qualifier="degree">Ph.D.</dim:field>
   <dim:field mdschema="dc" element="publisher">Massachusetts Institute of Technology</dim:field>
   <dim:field mdschema="dc" element="rights">In Copyright - Educational Use Permitted</dim:field>
   <dim:field mdschema="dc" element="rights">Copyright MIT</dim:field>
   <dim:field mdschema="dc" element="rights" qualifier="uri">http://rightsstatements.org/page/InC-EDU/1.0/</dim:field>
   <dim:field mdschema="dc" element="title">Meta-metaprogramming</dim:field>
   <dim:field mdschema="dc" element="type">Thesis</dim:field>
   <dim:field mdschema="dc" element="format" qualifier="mimetype">application/pdf</dim:field>
   <dim:field mdschema="mit" element="thesis" qualifier="degree">Doctoral</dim:field>
   <dim:field mdschema="thesis" element="degree" qualifier="name">Doctor of Philosophy</dim:field>
   <dim:field mdschema="dspace" element="entity" qualifier="type">Publication</dim:field>
   <dim:field mdschema="others" element="access-status">unknown</dim:field>
   <dim:field mdschema="others" element="access-status">unknown</dim:field>
   <dim:field mdschema="cerif" element="openaire" authority="" confidence="-1">&lt;Publication xmlns="https://www.openaire.eu/cerif-profile/1.1/" id="bae7cf6a-1225-453f-af65-ed36aaaddee5">
	&lt;Type xmlns="https://www.openaire.eu/cerif-profile/vocab/COAR_Publication_Types">http://purl.org/coar/resource_type/c_1843&lt;/Type>
   	&lt;Title>Meta-metaprogramming&lt;/Title>
   	&lt;PublishedIn>
    	&lt;Publication>
      	&lt;/Publication>
   	&lt;/PublishedIn>
   	&lt;PublicationDate>2021-09&lt;/PublicationDate>
   	&lt;Authors>
      	&lt;Author>
        	&lt;DisplayName>Koppel, James&lt;/DisplayName>
         	&lt;Affiliation>
         		&lt;OrgUnit>
         		&lt;/OrgUnit>
         	&lt;/Affiliation>
      	&lt;/Author>
	&lt;/Authors>
   	&lt;Editors>
	&lt;/Editors>
    &lt;Publishers>
        &lt;Publisher>
            &lt;DisplayName>Massachusetts Institute of Technology&lt;/DisplayName>
            &lt;OrgUnit />
        &lt;/Publisher>
    &lt;/Publishers>
    &lt;License>http://rightsstatements.org/page/InC-EDU/1.0/&lt;/License>
   	&lt;Abstract>Programming languages researchers have developed many advanced tools that promise to greatly ease software engineering. Yet even conceptually simple tools are expensive to implement fully due to the complexity of the target language, and standard techniques tie an implementation to a particular target language. In order to make the development of advanced programming tools economical, these problems demand new techniques for decomposing the development of tools and automating portions of their construction, which I collectively dub &amp;quot;meta-metaprogramming.&amp;quot;&#xd;
 &#xd;
In this thesis, I present three new meta-metaprogramming techniques reducing the work needed to build programming tools, each applicable to the specific problem of sharing implementation code between similar tools for different languages. These techniques respectively allow a single implementation of a transformation to losslessly rewrite code in many languages, automatically generate a family of programming tools from a language&amp;apos;s semantics, and develop a new representation for sets of programs which is applicable to a variety of languages and synthesis tasks.&lt;/Abstract&gt;
	&lt;Access xmlns="http://purl.org/coar/access_right" 
    >
    &lt;/Access>
&lt;/Publication>
</dim:field>
</dim:dim>
</metadata></record></GetRecord></OAI-PMH>