HOTGP -- Higher-Order Typed Genetic Programming

Matheus Campos Fernandes, Fabrício Olivetti de França, Emilio Francesquini
4/6/2023
cs.NEcs.AI

No confident code implementation found for this paper.

Abstract

Program synthesis is the process of generating a computer program following a set of specifications, which can be a high-level description of the problem and/or a set of input-output examples. The synthesis can be modeled as a search problem in which the search space is the set of all the programs valid under a grammar. As the search space is vast, brute force is usually not viable and search heuristics, such as genetic programming, also have difficulty navigating it without any guidance. In this paper we present HOTGP, a new genetic programming algorithm that synthesizes pure, typed, and functional programs. HOTGP leverages the knowledge provided by the rich data-types associated with the specification and the built-in grammar to constrain the search space and improve the performance of the synthesis. The grammar is based on Haskell's standard base library (the synthesized code can be directly compiled using any standard Haskell compiler) and includes support for higher-order functions, $λ$-functions, and parametric polymorphism. Experimental results show that, when compared to $6$ state-of-the-art algorithms using a standard set of benchmarks, HOTGP is competitive and capable of synthesizing the correct programs more frequently than any other of the evaluated algorithms.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. Any repos shown below are weak matches — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Similar Papers

Cite this paper

@article{fernandes2023hotgp,
  title  = {HOTGP -- Higher-Order Typed Genetic Programming},
  author = {Matheus Campos Fernandes and Fabrício Olivetti de França and Emilio Francesquini},
  year   = {2023},
  eprint = {2304.03200},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2304.03200v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2304.03200.svg)](https://codeofpaper.com/paper/2304.03200)

Discussion