The C++ programming language
Abstraction and specification in program development
Abstraction and specification in program development
Data types and data structures
Data types and data structures
Data structures with abstract data types and Modula-2
Data structures with abstract data types and Modula-2
Data structures with Modula-2
Type theories and object-oriented programmimg
ACM Computing Surveys (CSUR)
Issues in Ada Compiler Technology
Computer
The requirements of testing a class of reusable software modules
The requirements of testing a class of reusable software modules
Advances in computers
Analysis of pointer “rotation”
Communications of the ACM
Object-Oriented Software Construction
Object-Oriented Software Construction
Software Component with ADA
Reference Manual for the ADA Programming Language
Reference Manual for the ADA Programming Language
Programming without pointer variables
Proceedings of the 1976 conference on Data : Abstraction, definition and structure
The role of verification in software reusability
The role of verification in software reusability
The influence of software reuse on programming language design
The influence of software reuse on programming language design
Mechanisms and methods for performance tuning of reusable software components
Mechanisms and methods for performance tuning of reusable software components
The Geneva convention on the treatment of object aliasing
ACM SIGPLAN OOPS Messenger
Lively linear Lisp: “look ma, no garbage!”
ACM SIGPLAN Notices
Safe and leakproof resource management using Ada83 limited types
ACM SIGAda Ada Letters
TRI-Ada '93 Proceedings of the conference on TRI-Ada '93
ACM SIGPLAN Notices
The Boyer benchmark meets linear logic
ACM SIGPLAN Lisp Pointers
Linear logic and permutation stacks—the Forth shall be first
ACM SIGARCH Computer Architecture News - Special issue: panel sessions of the 1991 workshop on multithreaded computers
A Parallel Virtual Machine for Programs Composed of Abstract Data Types
IEEE Transactions on Computers
The Effects of Layering and Encapsulation on Software Development Cost and Quality
IEEE Transactions on Software Engineering
Models and languages for component description and reuse
ACM SIGSOFT Software Engineering Notes
Reverse engineering of legacy code exposed
Proceedings of the 17th international conference on Software engineering
On the Practical Need for Abstraction Relations to Verify Abstract Data Type Representations
IEEE Transactions on Software Engineering
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Checkmate: cornering C++ dynamic memory errors with checked pointers
Proceedings of the thirty-first SIGCSE technical symposium on Computer science education
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
Performance specification of software components
SSR '01 Proceedings of the 2001 symposium on Software reusability: putting software reuse in context
A system for predictable component-based software construction
High integrity software
Design and Specification of Iterators Using the Swapping Paradigm
IEEE Transactions on Software Engineering
On the Relationships Among the All-Uses, All-DU-Paths, and All-Edges Testing Criteria
IEEE Transactions on Software Engineering
Early-Reply Components: Concurrent Execution with Sequential Reasoning
ICSR-7 Proceedings of the 7th International Conference on Software Reuse: Methods, Techniques, and Tools
Capabilities for Sharing: A Generalisation of Uniqueness and Read-Only
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Simple Ownership Types for Object Containment
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Components-first approaches to CS1/CS2: principles and practice
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Encapsulating concurrency with Early-Reply
OOPSLA '02 Companion of the 17th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Experience with safe manual memory-management in cyclone
Proceedings of the 4th international symposium on Memory management
Safe manual memory management in cyclone
Science of Computer Programming - Special issue on five perspectives on modern memory management: Systems, hardware and theory
Performance analysis based upon complete profiles
Proceedings of the 2006 conference on Specification and verification of component-based systems
Simplifying reasoning about objects with Tako
Proceedings of the 2006 conference on Specification and verification of component-based systems
Verifying Component-Based Software: Deep Mathematics or Simple Bookkeeping?
ICSR '09 Proceedings of the 11th International Conference on Software Reuse: Formal Foundations of Reuse and Domain Engineering
Traditional assignment considered harmful
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Capabilities for uniqueness and borrowing
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
A type system for borrowing permissions
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The location linking concept: a basis for verification of code using pointers
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
The geneva convention on the treatment of object aliasing
Aliasing in Object-Oriented Programming
Aliasing in Object-Oriented Programming
Alias control for deterministic parallelism
Aliasing in Object-Oriented Programming
Hi-index | 0.01 |
The authors argue that a simple alternative to copying as a data movement primitive-swapping (exchanging) the values of two variables-has potentially significant advantages in the context of the design of generic reusable software components. Specifically, the authors claim that generic module designs based on a swapping style are superior to designs based on copying, both in terms of execution-time efficiency and with respect to the likelihood of correctness of client programs and module implementations. Furthermore, designs based on swapping are more reusable than traditional designs. Specific arguments and examples to support these positions are presented.