Back to results

University of Illinois at Urbana-Champaign

Toward automatic programming

Abstract

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.

Degree

thesis:*
Name thesis:degree_name
Ph.D.
Level thesis:degree_level
Dissertation
Discipline thesis:degree_discipline
Computer Science
Grantor
University of Illinois at Urbana-Champaign
Year dc:date
2018

Author and committee

dc:creator, dc:contributor.*
Author dc:creator
  • Radoi, Cosmin A
Contributors dc:contributor
  • Roşu, Grigore
  • Padua, David
  • Dig, Danny
  • Sridharan, Manu

Subjects

dc:subject × 1

Rights

dc:rights
Statement dc:rights
  • Copyright 2018 Cosmin Radoi
Language dc:language
en

Identifiers

dc:identifier.*
Handle dc:identifier
http://hdl.handle.net/2142/101201
OAI identifier oai:identifier
oai:www.ideals.illinois.edu:2142/101201

Chain of custody

source
Harvested from
University of Illinois - Urbana-Champaign
Base URL
www.ideals.illinois.edu/oai-pmh
Last updated
2026-07-22
Source record
OAI-PMH GetRecord
citation

Radoi, Cosmin A. Toward automatic programming. Dissertation thesis, University of Illinois at Urbana-Champaign, 2018. http://hdl.handle.net/2142/101201