Programming with sets; an introduction to SETL
Programming with sets; an introduction to SETL
Systematic software development using VDM (2nd ed.)
Systematic software development using VDM (2nd ed.)
KIDS: A Semiautomatic Program Development System
IEEE Transactions on Software Engineering
A Methodology for LISP Program Construction from Examples
Journal of the ACM (JACM)
Toward automatic program synthesis
Communications of the ACM
Object-Oriented Software Construction
Object-Oriented Software Construction
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
An overview of JML tools and applications
International Journal on Software Tools for Technology Transfer (STTT) - Special section on formal methods for industrial critical systems
CUTE: a concolic unit testing engine for C
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Combinatorial sketching for finite programs
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
EXE: automatically generating inputs of death
Proceedings of the 13th ACM conference on Computer and communications security
AIEE-IRE '56 (Western) Papers presented at the February 7-9, 1956, joint ACM-AIEE-IRE western computer conference
AFIPS '75 Proceedings of the May 19-22, 1975, national computer conference and exposition
Application of theorem proving to problem solving
IJCAI'69 Proceedings of the 1st international joint conference on Artificial intelligence
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
Oracle-guided component-based program synthesis
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Modeling in Event-B: System and Software Engineering
Modeling in Event-B: System and Software Engineering
Falling back on executable specifications
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Dafny: an automatic program verifier for functional correctness
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
Unifying execution of imperative and declarative code
Proceedings of the 33rd International Conference on Software Engineering
Synthesis of loop-free programs
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Spreadsheet table transformations from examples
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Path-based inductive synthesis for program inversion
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Synthesizing data structure manipulations from storyboards
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Boogie: a modular reusable verifier for object-oriented programs
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
PathCrawler: automatic generation of path tests by combining static and dynamic analysis
EDCC'05 Proceedings of the 5th European conference on Dependable Computing
Model-based, event-driven programming paradigm for interactive web applications
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
On the simplicity of synthesizing linked data structure operations
Proceedings of the 12th international conference on Generative programming: concepts & experiences
Hi-index | 0.00 |
The desired behavior of a program can be described using an abstract model. Compiling such a model into executable code requires advanced compilation techniques known as synthesis. This paper presents an object-based language, called Jennisys, where programming is done by introducing an abstract model, defining a concrete data representation for the model, and then being aided by automatic synthesis to produce executable code. The paper also presents a synthesis technique for the language. The technique is built on an automatic program verifier that, via an underlying SMT solver, is capable of providing concrete models to failed verifications. The technique proceeds by obtaining sample input/output values from concrete models and then extrapolating programs from the sample points. The synthesis aims to produce code with assignments, branching structure, and possibly recursive calls. It is the first to synthesize code that creates and uses objects in dynamic data structures or aggregate objects. A prototype of the language and synthesis technique has been implemented.