Software engineering: principles and practice
Software engineering: principles and practice
A unified computation model for functional and logic programming
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Systematic design of program analysis frameworks
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Testing Java Components based on Algebraic Specifications
ICST '08 Proceedings of the 2008 International Conference on Software Testing, Verification, and Validation
Discovering Documentation for Java Container Classes
IEEE Transactions on Software Engineering
Synthesizing intensional behavior models by graph transformation
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Operational semantics for declarative multi-paradigm languages
Journal of Symbolic Computation
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
Behavior model based component search: an initial assessment
Proceedings of 2010 ICSE Workshop on Search-driven Development: Users, Infrastructure, Tools and Evaluation
A property based specification formalism classification
Journal of Systems and Software
QuickSpec: guessing formal specifications using testing
TAP'10 Proceedings of the 4th international conference on Tests and proofs
Abstract diagnosis of first order functional logic programs
LOPSTR'10 Proceedings of the 20th international conference on Logic-based program synthesis and transformation
TRSynth: a tool for automatic inference of term equivalence in left-linear term rewriting systems
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
Automatic inference of specifications using matching logic
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
Hi-index | 0.00 |
This paper presents a technique to automatically infer algebraic property-oriented specifications from first-order Curry programs. Curry is a lazy functional logic language and the interaction between laziness and logical variables raises some additional difficulties with respect to other proposals for functional languages. Our technique statically infers from the source code of a Curry program a specification which consists of a set of equations relating (nested) operation calls that have the same behavior. We propose a (glass-box) semantic-based inference method which relies on a fully-abstract (condensed) semantics for achieving, to some extent, the correctness of the inferred specification, differently from other (black-box) approaches based on testing techniques.