学位论文详细信息
Toward automatic programming
program transformationautomatic programminggeneralizationevolutionary algorithms
Radoi, Cosmin A
关键词: program transformationautomatic programminggeneralizationevolutionary algorithms;   
Others  :  https://www.ideals.illinois.edu/bitstream/handle/2142/101201/RADOI-DISSERTATION-2018.pdf?sequence=1&isAllowed=y
美国|英语
来源: The Illinois Digital Environment for Access to Learning and Scholarship
PDF
【 摘 要 】

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.

【 预 览 】
附件列表
Files Size Format View
Toward automatic programming 2174KB PDF download
  文献评价指标  
  下载次数:14次 浏览次数:9次