Communications of the ACM
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Theoretical Computer Science
Specification and transformation of programs: a formal approach to software development
Specification and transformation of programs: a formal approach to software development
Object-preserving class transformations
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
A logical theory of concurrent objects and its realization in the Maude language
Research directions in concurrent object-oriented programming
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Automatic inheritance hierarchy restructuring and method refactoring
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Algebra of programming
The Unified Modeling Language user guide
The Unified Modeling Language user guide
An inconsistency in procedures, parameters, and substitution in the refinement calculus
Science of Computer Programming
IEEE Transactions on Software Engineering
Proceedings of the 1999 international conference on Logic programming
Representation independence, confinement and access control [extended abstract]
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Discipline of Programming
The Theory and Practice of Concurrency
The Theory and Practice of Concurrency
Java Virtual Machine Specification
Java Virtual Machine Specification
The Java Language Specification
The Java Language Specification
A Weakest Precondition Semantics for Refinement of Object-Oriented Programs
IEEE Transactions on Software Engineering
Recursive Object Types in a Logic of Object-Oriented Programs
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
The UML as a Formal Modeling Notation
«UML» '98 Selected papers from the First International Workshop on The Unified Modeling Language «UML»'98: Beyond the Notation
Transformation Rules for UML Class Diagrams
«UML» '98 Selected papers from the First International Workshop on The Unified Modeling Language «UML»'98: Beyond the Notation
Semantics and Transformations for UML Models
«UML» '98 Selected papers from the First International Workshop on The Unified Modeling Language «UML»'98: Beyond the Notation
Class Refinement and Interface Refinement in Object-Oriented Programs
FME '97 Proceedings of the 4th International Symposium of Formal Methods Europe on Industrial Applications and Strengthened Foundations of Formal Methods
Forward Simulation for Data Refinement of Classes
FME '02 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods - Getting IT Right
Reasoning with UML Class Diagrams
WIFT '98 Proceedings of the Second IEEE Workshop on Industrial Strength Formal Specification Techniques
An object-oriented refinement calculus with modular reasoning
An object-oriented refinement calculus with modular reasoning
Practical analysis for refactoring
Practical analysis for refactoring
Static composition of refactorings
Science of Computer Programming - Special issue on program transformation
Static composition of refactorings
Science of Computer Programming - Special issue on program transformation
Deriving refactorings for AspectJ
Proceedings of the 4th international conference on Aspect-oriented software development
Deriving refactorings for AspectJ
Proceedings of the 4th international conference on Aspect-oriented software development
A model-driven approach to formal refactoring
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Formal refactorings for object models
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A Static Semantics for Alloy and its Impact in Refactorings
Electronic Notes in Theoretical Computer Science (ENTCS)
Refactoring Real-time Specifications
Electronic Notes in Theoretical Computer Science (ENTCS)
Modular Reasoning in Object-Oriented Programming
Verified Software: Theories, Tools, Experiments
A Minimal Set of Refactoring Rules for Object-Z
FMOODS '08 Proceedings of the 10th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
A Graph-Based Operational Semantics of OO Programs
ICFEM '09 Proceedings of the 11th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
Refactoring Towards a Layered Architecture
Electronic Notes in Theoretical Computer Science (ENTCS)
Formal model-driven program refactoring
FASE'08/ETAPS'08 Proceedings of the Theory and practice of software, 11th international conference on Fundamental approaches to software engineering
Extracting and evolving code in product lines with aspect-oriented programming
Transactions on aspect-oriented software development IV
A theory of software product line refinement
ICTAC'10 Proceedings of the 7th International colloquium conference on Theoretical aspects of computing
Refactoring and representation independence for class hierarchies: extended abstract
Proceedings of the 12th Workshop on Formal Techniques for Java-Like Programs
An introduction to software product line refactoring
GTTSE'09 Proceedings of the 3rd international summer school conference on Generative and transformational techniques in software engineering III
Synchronizing model and program refactoring
SBMF'10 Proceedings of the 13th Brazilian conference on Formal methods: foundations and applications
Investigating the safe evolution of software product lines
Proceedings of the 10th ACM international conference on Generative programming and component engineering
UTP'06 Proceedings of the First international conference on Unifying Theories of Programming
Assertion-based encapsulation, object invariants and simulations
FMCO'04 Proceedings of the Third international conference on Formal Methods for Components and Objects
A semantics for UML-RT active classes via mapping into circus
FMOODS'05 Proceedings of the 7th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Transformation laws for UML-RT
FMOODS'06 Proceedings of the 8th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Refactoring and representation independence for class hierarchies
Theoretical Computer Science
A theory of software product line refinement
Theoretical Computer Science
Comparing approaches to analyze refactoring activity on software repositories
Journal of Systems and Software
Hi-index | 0.00 |
We present algebraic laws for a language similar to a subset of sequential Java that includes inheritance, recursive classes, dynamic binding, access control, type tests and casts, assignment, but no sharing. These laws are proved sound with respect to a weakest precondition semantics. We also show that they are complete in the sense that they are sufficient to reduce an arbitrary program to a normal form substantially close to an imperative program; the remaining object-oriented constructs could be further eliminated if our language had recursive records. This suggests that our laws are expressive enough to formally derive behaviour preserving program transformations, we illustrate that through the derivation of provably-correct refactorings.