On the synthesis of a reactive module
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A practical algorithm for exact array dependence analysis
Communications of the ACM
Toward automatic program synthesis
Communications of the ACM
Deciding Boolean Algebra with Presburger Arithmetic
Journal of Automated Reasoning
Anzu: a tool for property synthesis
CAV'07 Proceedings of the 19th international conference on Computer aided verification
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Game programming by demonstration
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
Model-based synthesis of control software from system-level formal specifications
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
Synthesis of program fragments from specifications can make programs easier to write and easier to reason about We present Comfusy, a tool that extends the compiler for the general-purpose programming language Scala with (non-reactive) functional synthesis over unbounded domains Comfusy accepts expressions with input and output variables specifying relations on integers and sets Comfusy symbolically computes the precise domain for the given relation and generates the function from inputs to outputs The outputs are guaranteed to satisfy the relation whenever the inputs belong to the relation domain The core of our synthesis algorithm is an extension of quantifier elimination that generates programs to compute witnesses for eliminated variables We present examples that demonstrate software synthesis using Comfusy and illustrate how synthesis simplifies software development.