Reasoning about object-oriented programs that use subtypes
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Copying and Swapping: Influences on the Design of Reusable Software Components
IEEE Transactions on Software Engineering
Advanced C++ programming styles and idioms
Advanced C++ programming styles and idioms
Islands: aliasing protection in object-oriented languages
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
The Geneva convention on the treatment of object aliasing
ACM SIGPLAN OOPS Messenger
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Component-based software using RESOLVE
ACM SIGSOFT Software Engineering Notes
Reverse engineering of legacy code exposed
Proceedings of the 17th international conference on Software engineering
Experience report: using RESOLVE/C++ for commercial software
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
Verification of Array, Record, and Pointer Operations in Pascal
ACM Transactions on Programming Languages and Systems (TOPLAS)
Specification of Abstract Data Types in Modula
ACM Transactions on Programming Languages and Systems (TOPLAS)
STL tutorial and reference guide, second edition: C++ programming with the standard template library
STL tutorial and reference guide, second edition: C++ programming with the standard template library
Data abstraction and information hiding
ACM Transactions on Programming Languages and Systems (TOPLAS)
Modular Verification of Data Abstractions with Shared Realizations
IEEE Transactions on Software Engineering
Design and Specification of Iterators Using the Swapping Paradigm
IEEE Transactions on Software Engineering
A Simple and Practical Approach to Unit Testing: The JML and JUnit Way
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Aliasing in Object Oriented Systems
Proceedings of the Workshop on Object-Oriented Technology
A Case Study in Language Design: Euclid
Program Construction, International Summer Schoo
ECCOP '96 Proceedings of the 10th European Conference on Object-Oriented Programming
Simplifying reasoning about objects with Tako
Proceedings of the 2006 conference on Specification and verification of component-based systems
Hi-index | 0.00 |
Data movement in nearly all modern imperative languages is based on a single primitive: traditional assignment. (With traditional assignment, data are moved between variables by copying.) Unfortunately, traditional assignment poses many known software engineering drawbacks with respect to efficiency for value types, and with respect to modular reasoning for reference types. Moreover, its entrenched legacy has stifled serious regard of potentially superior data-movement primitives. Exploration of the complete design space for data-movement primitives supports the following conclusions: (1) traditional assignment is fundamentally flawed, and (2) any other data-movement primitive would be better.