Version space algebras are ways of representing spaces of programs which can be combined using union, intersection, and cross-product/``join" operators. In their reified form as ASTs with explicit union and join nodes, they have the ability to compactly represent exponentially-large spaces of programs, owing to which they have become become the most popular approach to enumerative program synthesis since the introduction of FlashFill in 2010. We present a linear-time semantics-preserving constructive embedding from version space algebras into nondeterministic finite tree automata, showing that the former are but a special case of the latter. Combined with recent results finding a correspondence between e-graphs and minimal deterministic tree automata, this shows that tree automata are strict generalizations of all recent major approaches to efficiently representing large spaces of programs by sharing.
翻译:版本空间代数是代表程序空间的方式,这些空间可以使用联合、交叉和交叉产品/“join”操作者组合。在它们作为具有明确结合和加入节点的AST的重新组合形式中,它们能够缩略地代表成指数式的大型程序空间,由于这些空间代数已成为自2010年采用闪电引信以来最受欢迎的点数程序合成方法,因此,它们已成为2010年引入闪电引信以来最受欢迎的数字程序合成方法。 我们提出了一个线性时间的语义,将版本空间代数建设性地嵌入非定型有限树自制式中,表明前者只是后者的一个特例。这与最近发现电子绘图和最小确定性树自制自动模型之间的对应结果相结合,表明树木自自动化是所有最近通过共享有效代表大程序空间的主要方法的严格概括。