LambdaBeam is a state-of-the-art execution-guided algorithm for program synthesis that incorporates higher-order functions, lambda functions, and iterative loops into the Domain-Specific Language (DSL). LambdaBeam generates every program from the start. Yet, many program blocks or subprograms occur frequently in a given domain, e.g., loops to traverse a list. Thus, repeating programs can be used to enhance the synthesis algorithm. However, LambdaBeam fails to leverage this potential. For this purpose, we introduce AbstractBeam: A novel program synthesis framework that employs Library Learning to identify such program repetitions, integrates them into the DSL, and thus utilizes their potential to boost LambdaBeam's synthesis algorithm. Our experimental evaluations demonstrate that AbstractBeam significantly improves LambdaBeam's performance in the LambdaBeam integer list manipulation domain. Additionally, AbstractBeam's program generation is more efficient compared to LambdaBeam's synthesis. Finally, our findings indicate that Library Learning is effective in domains not specifically crafted to highlight its benefits.
翻译:LambdaBeam是一种最先进的执行引导程序综合算法,它将高阶函数、lambda函数和迭代循环融入领域特定语言(DSL)。LambdaBeam从起始点生成每个程序。然而,在特定领域中许多程序块或子程序频繁出现,例如遍历列表的循环。因此,重复出现的程序可用于增强综合算法。但LambdaBeam未能利用这一潜力。为此,我们提出AbstractBeam:一种新颖的程序综合框架,它采用库学习来识别此类程序重复模式,将其整合到DSL中,从而利用其潜力提升LambdaBeam的综合算法。我们的实验评估表明,在LambdaBeam整数列表操作领域中,AbstractBeam显著提高了LambdaBeam的性能。此外,与LambdaBeam的综合过程相比,AbstractBeam的程序生成效率更高。最后,我们的研究结果表明,库学习在非专门设计以凸显其优势的领域中同样有效。