Flight of the FINCH Through the Java Wilderness

Flight of the FINCH Through the Java Wilderness
复制标题

DOI:
10.1109/tevc.2010.2052622
复制
发表时间:
2011-04-01
影响因子:
14.3
通讯作者:
Sipper, Moshe
Sipper, Moshe
中科院分区:
计算机科学1区
文献类型:
--
作者:
Orlov, Michael;Sipper, Moshe

文献摘要

被引文献

相似文献

我们描述了肥沃的达尔文语字节码收割机(Finch),这是一种发展Java字节码的方法,使现有,无限制的Java程序或其他语言的程序的演变能够演变为Java bytecode的其他语言。我们的方法基于兼容交叉的概念,该概念通过执行基于操作数堆栈的,基于本地变量的局部变量和基于控制流的兼容性检查来产生正确的程序,并在源和目标字节码部分上进行基于控制流程。这与使用Java字节码指令集的限制子集作为基因编程中个体的表示语言相反。我们展示了Finch在解决许多问题方面取得的无限成功,包括简单和复杂的回归,跟踪导航,图像分类,阵列和TIC-TAC-TOE。 Finch利用Java虚拟机架构和类型系统的丰富性,最终以Java程序的形式发展了人类可读的解决方案。发展Java程序的能力有望在软件工程师工具包中带来有价值的新工具。
We describe Fertile Darwinian Bytecode Harvester (FINCH), a methodology for evolving Java bytecode, enabling the evolution of extant, unrestricted Java programs, or programs in other languages that compile to Java bytecode. Our approach is based upon the notion of compatible crossover, which produces correct programs by performing operand stack-based, local variables-based, and control flow-based compatibility checks on source and destination bytecode sections. This is in contrast to existing work that uses restricted subsets of the Java bytecode instruction set as a representation language for individuals in genetic programming. We demonstrate FINCH's unqualified success at solving a host of problems, including simple and complex regression, trail navigation, image classification, array sum, and tic-tac-toe. FINCH exploits the richness of the Java virtual machine architecture and type system, ultimately evolving human-readable solutions in the form of Java programs. The ability to evolve Java programs will hopefully lead to a valuable new tool in the software engineer's toolkit.