<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/oai-pmh.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-19T02:36:02Z</responseDate>
  <request identifier="oai:www.ideals.illinois.edu:2142/101201" metadataPrefix="etdms" verb="GetRecord">https://www.ideals.illinois.edu/oai-pmh</request>
  <GetRecord>
    <record>
      <header>
        <identifier>oai:www.ideals.illinois.edu:2142/101201</identifier>
        <datestamp>2023-07-11</datestamp>
        <setSpec>col_2142_5131</setSpec>
        <setSpec>col_2142_10761</setSpec>
        <setSpec>com_2142_5130</setSpec>
        <setSpec>com_2142_10755</setSpec>
        <setSpec>com_2142_234</setSpec>
      </header>
      <metadata>
        <thesis xmlns="http://www.ndltd.org/standards/metadata/etdms/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dc="http://purl.org/dc/elements/1.1/" xsi:schemaLocation="http://www.ndltd.org/standards/metadata/etdms/1.1/ http://www.ndltd.org/standards/metadata/etdms/1.1/etdms11.xsd http://purl.org/dc/elements/1.1/ http://www.ndltd.org/standards/metadata/etdms/1.1/etdmsdc.xsd">
          <dc:contributor>Roşu, Grigore</dc:contributor>
          <dc:contributor>Roşu, Grigore</dc:contributor>
          <dc:contributor>Padua, David</dc:contributor>
          <dc:contributor>Dig, Danny</dc:contributor>
          <dc:contributor>Sridharan, Manu</dc:contributor>
          <dc:creator>Radoi, Cosmin A</dc:creator>
          <dc:date>2018-09-04T20:36:49Z</dc:date>
          <dc:date>2018-09-04T20:36:49Z</dc:date>
          <dc:date>2020-09-05T09:15:13Z</dc:date>
          <dc:date>2018-04-20</dc:date>
          <dc:date>2018-05</dc:date>
          <dc:description>Programming, the act of creating and changing software source code, should be a collaborative process between humans and computers. This dissertation shows a general approach and two techniques that bring us closer to this goal. The general approach is inspired by human programmers: they learn how to transform code by looking at similar past transformation instances, then they change new code by stringing together several fine-grained transformations.
First, we give a technique for inferring abstract program transformations from concrete code examples. The transformations are expressed as formal rules in a term rewriting language with contexts, and they are inferred from examples via a novel anti-unification algorithm. For evaluation, we use the technique to successfully infer 15 JavaScript linting rules.
Second, we give a technique for searching through compositions of program transformations to satisfy a goal. The search is an evolutionary algorithm with the fitness function defined over the code and the code transformations as mutations. For evaluation, we apply the technique to the problem of automatically translating imperative, sequential programs to functional MapReduce programs. The algorithm successfully finds efficient MapReduce implementations for programs with complex indirect accesses, such as WordCount.</dc:description>
          <dc:description>Submission published under a 24 month embargo labeled 'U of I Access', the embargo will last until 2020-05-01</dc:description>
          <dc:description>The student, Cosmin Radoi, accepted the attached license on 2018-04-20 at 16:10.</dc:description>
          <dc:description>The student, Cosmin Radoi, submitted this Dissertation for approval on 2018-04-20 at 16:15.</dc:description>
          <dc:description>This Dissertation was approved for publication on 2018-04-20 at 16:49.</dc:description>
          <dc:description>DSpace SAF Submission Ingestion Package generated from Vireo submission #12392 on 2018-08-31 at 17:21:07</dc:description>
          <dc:description>Made available in DSpace on 2018-09-04T20:36:49Z (GMT). No. of bitstreams: 2
RADOI-DISSERTATION-2018.pdf: 2226442 bytes, checksum: 4c05bf717b9d797f97a22ca31f3f078f (MD5)
LICENSE.txt: 4209 bytes, checksum: e26b01367961da755c486f984ddf7211 (MD5)
  Previous issue date: 2018-04-20</dc:description>
          <dc:description>Embargo set by: Seth Robbins for item 107285
Lift date: 2020-09-04T20:37:00Z
Reason: Author requested U of Illinois access only (OA after 2yrs) in Vireo ETD system</dc:description>
          <dc:description>Embargo set by: Seth Robbins for item 107285
Lift date: 2020-09-04T20:42:08Z
Reason: Author requested U of Illinois access only (OA after 2yrs) in Vireo ETD system</dc:description>
          <dc:description>U of I Only Restriction Lifted for Item 107285 on 2020-09-05T09:15:13Z.</dc:description>
          <dc:format>application/pdf</dc:format>
          <dc:identifier>http://hdl.handle.net/2142/101201</dc:identifier>
          <dc:language>en</dc:language>
          <dc:rights>Copyright 2018 Cosmin Radoi</dc:rights>
          <dc:subject>program transformation
automatic programming
generalization
evolutionary algorithms</dc:subject>
          <dc:title>Toward automatic programming</dc:title>
          <dc:type>text</dc:type>
          <dc:type>text</dc:type>
          <degree>
            <department>Computer Science</department>
            <discipline>Computer Science</discipline>
            <grantor>University of Illinois at Urbana-Champaign</grantor>
            <level>Dissertation</level>
            <name>Ph.D.</name>
          </degree>
        </thesis>
      </metadata>
    </record>
  </GetRecord>
</OAI-PMH>
