Synteza programów, która wraz z rozwiązaniami uczy się nowych prymitywów języka dziedzinowego, refaktoryzując wspólne fragmenty znalezionych programów.
Program synthesis that, alongside solutions, learns new DSL primitives by refactoring fragments shared across found programs.
System rozwiązujący zadania programami sam wydziela z nich powtarzalne kawałki i dokłada je do swojego zestawu narzędzi.
A system that solves tasks with programs pulls out the recurring pieces and adds them to its own toolkit.
Za każdym razem budowanie rozwiązania od zera jest wolne, a gotowe narzędzia rzadko pasują do nowej dziedziny.
Building every solution from scratch is slow, and ready-made tools rarely fit a new domain.
Jak rzemieślnik, który po dziesiątym podobnym zleceniu robi sobie przyrząd i odtąd każde kolejne idzie mu szybciej.
Like a craftsman who, after the tenth similar job, makes a jig so each later job goes faster.
Program rysujący figury po wielu zadaniach sam tworzy polecenie „narysuj wielokąt” i dalej używa go jako jednego kroku.
A drawing program, after many tasks, creates its own 'draw a polygon' command and then uses it as a single step.