Thèse Année : 2024

Domain Agnostic Techniques for Scaling Up Program Synthesis

Techniques agnostiques au domaine pour l’accélération de la synthèse de programmes

Résumé

In recent years, the automated synthesis of programs from specifications, a holy grail of computer science, has seen tremendous interest. From developing code, automating proofs, optimisations to automatic discovery, the applications are numerous. In this thesis we focus on program synthesis in the programming by examples framework. We will focus on domain agnostic techniques which leads us to cost-guided search. We describe Heap Search the first best-first search algorithm with logarithmic delay. Then we investigate whether we can build a constant delay, or no-delay, best-first search algorithm. We answer positively with Eco Search the first such algorithm and prove it outperforms its competitors in practice. We also look into parallelising the search procedure with sampling algorithms and introduce the optimal best-first search algorithm among sampling algorithms. We also look into splitting the grammar into disjoint grammars in order to easily parallelise the search, and describe such an algorithm. Redundant programs can be eliminated with pruning, most of these redundancies are part of the grammar not the task. Therefore we develop a pre-processing technique enabling to find these redundant programs and compile them, once and for all, in a filter that enables to prune them at runtime. Finally we also look into knowledge powered programs: programs that talk about relational knowledge outside of the grammar. We show there are different difficulty levels for such tasks and describes a solution to solve the first level of difficulty.

Ces denières années, la synthèse automatique de programmes, un saint-graal de l'informatique, a vu un intérêt grandissant. Du développement de code à la découverte automatique, les applications sont nombreuses.

Dans cette thèse, nous nous intéressons à la synthèse de programmes dans le cadre de spécifications par des exemples. Nous nous concentrons sur des techniques indépendantes du domaine ce qui nous amène à de la recherche guidée par coûts. Les coûts permettent de guider l'énumération vers les programmes les plus probables comme solutions. Nous avons trois contributions principales. En premier, nous introduisons Heap Search le premier algorithme d'énumération par le bas par coût avec délai logarithmique. Puis nous cherchons à construire un algorithme avec délai constant, ce que nous faisons avec Eco Search, le premier, et nous montrons qu'il est aussi meilleur en pratique. Nous nous intéressons à la parallélisation de la recherche avec des algorithmes d'échantillonages et introduisons l'algorithme optimal parmi ceux-ci pour la recherche par coûts. Nous décrivons aussi un algorithme de division de grammaires en grammaires disjointes afin de facilement paralléliser la recherche. Les programmes redondants peuvent être éliminés par équivalence à l'exécution, néanmoins une majeur partie de ses équivalences sont dûes à la grammaire et non à la tâche. Nous proposons un processus qui trouve automatiquement ces programmes redondants en amont et les compile en un filtre pour les éliminer sans les exécuter. Enfin, nous nous intéressons à intégrer des connaissances en dehors de la grammaire dans les programmes. Nous décrivons plusieurs niveaux de difficulté pour ces tâches et résolvons le premier niveau.

Fichier principal
Vignette du fichier
thesis.pdf (5.38 Mo) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)
licence

Dates et versions

tel-04901297 , version 1 (20-01-2025)

Licence

Identifiants

  • HAL Id : tel-04901297 , version 1

Citer

Théo Matricon. Domain Agnostic Techniques for Scaling Up Program Synthesis. Computer Science [cs]. Université de Bordeaux, 2024. English. ⟨NNT : ⟩. ⟨tel-04901297⟩
0 Consultations
0 Téléchargements

Partager

More