A critique of Abelson and Sussman or why calculating is better than scheming
ACM SIGPLAN Notices
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Views: a way for pattern matching to cohabit with data abstraction
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Abstract types have existential type
ACM Transactions on Programming Languages and Systems (TOPLAS)
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
On the equivalence of data representations
Artificial intelligence and mathematical theory of computation
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Polymorphic type inference and abstract data types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Theory and Practice of Object Systems - Special issue: type systems
A new look at pattern matching in abstract data types
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Objects and classes, co-algebraically
Object orientation with parallelism and persistence
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Final Data Types and Their Specification
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communications of the ACM
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Types and programming languages
Types and programming languages
Shortcut fusion for accumulating parameters & zip-like functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Elementary Strong Functional Programming
FPLE '95 Proceedings of the First International Symposium on Functional Programming Languages in Education
PADL '00 Proceedings of the Second International Workshop on Practical Aspects of Declarative Languages
A Logic for Parametric Polymorphism
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
Categorical Programming with Abstract Data Types
AMAST '98 Proceedings of the 7th International Conference on Algebraic Methodology and Software Technology
Concurrency and Automata on Infinite Sequences
Proceedings of the 5th GI-Conference on Theoretical Computer Science
Towards a theory of type structure
Programming Symposium, Proceedings Colloque sur la Programmation
Object-Oriented Programming Versus Abstract Data Types
Proceedings of the REX School/Workshop on Foundations of Object-Oriented Languages
A Note on Categorical Datatypes
Category Theory and Computer Science
Programming with abstract data types
Proceedings of the ACM SIGPLAN symposium on Very high level languages
Hidden coinduction: behavioural correctness proofs for objects
Mathematical Structures in Computer Science
FUNCTIONAL PEARL: Unfolding pointer algorithms
Journal of Functional Programming
Proof Methods for Corecursive Programs
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 1
Extensible pattern matching via a lightweight language extension
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Stream fusion: from lists to streams to nothing at all
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
Matching objects with patterns
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Generic programming for indexed datatypes
Proceedings of the seventh ACM SIGPLAN workshop on Generic programming
Type-changing rewriting and semantics-preserving transformation
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.09 |
We argue that abstract datatypes-- with public interfaces hiding private implementations -- represent a form of codatarather than ordinary data, and hence that proof methods for corecursiveprograms are the appropriate techniques to use for reasoning with them. In particular, we show that the universal properties of unfold operators are perfectly suited for the task. We illustrate with solutions to two problems the solution to a problem in the recent literature.