Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
A semantics of multiple inheritance.
Proc. of the international symposium on Semantics of data types
The C++ programming language
Object-oriented programming with flavors
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
An introduction to Trellis/Owl
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
CommonLoops: merging Lisp and object-oriented programming
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Common LISP: the language
The Programming Language Aspects of ThingLab, a Constraint-Oriented Simulation Laboratory
ACM Transactions on Programming Languages and Systems (TOPLAS)
SIMULA: an ALGOL-based simulation language
Communications of the ACM
Lisp machine manual
An object oriented extension to APL
APL '87 Proceedings of the international conference on APL: APL in transition
Dimensions of object-based language design
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Object-oriented programming in Smalltalk and ADA
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Modules and type checking in PL/LL
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
The design and implementation of distributed Smalltalk
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Issues in the design of object-oriented database programming languages
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Relations as semantic constructs in an object-oriented language
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
A law-based approach to object-oriented programming
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
IEEE Transactions on Software Engineering
Tactical simulation in an object-oriented animated graphics environment
ACM SIGSIM Simulation Digest
Orwell—a configuration management system for team programming
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
Data abstraction mechanisms in SINA/ST
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
Keynote address - data abstraction and hierarchy
OOPSLA '87 Addendum to the proceedings on Object-oriented programming systems, languages and applications (Addendum)
Object-oriented programming in scheme
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
The common Lisp object system metaobject kernel: a status report
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Designing families of data types using exemplars
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Information Systems (TOIS)
Object-oriented design: a responsibility-driven approach
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
OROS: toward a type model for software development environments
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
A denotational semantics of inheritance and its correctness
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Interfaces for strongly-typed object-oriented programming
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
APL '89 Conference proceedings on APL as a tool of thought
Understanding object-oriented: a unifying paradigm
Communications of the ACM
Class management for software communities
Communications of the ACM
Surveying current research in object-oriented design
Communications of the ACM
The object-oriented systems life cycle
Communications of the ACM
Extending Objects to Support Multiple Interfaces and Access Control
IEEE Transactions on Software Engineering
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
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Specification of an object to object protocol in Abstract Syntax Notation One (ASN.1)
IEA/AIE '90 Proceedings of the 3rd international conference on Industrial and engineering applications of artificial intelligence and expert systems - Volume 2
An extension of PROLOG for object-oriented programming in logic
IEA/AIE '90 Proceedings of the 3rd international conference on Industrial and engineering applications of artificial intelligence and expert systems - Volume 2
F-bounded polymorphism for object-oriented programming
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
An extension of standard ML modules with subtyping and inheritance
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Using annotations to support multiple kinds of versioning in an object-oriented database system
ACM Transactions on Database Systems (TODS)
The hierarchical simulation language HSL: a versatile tool for process-oriented simulation
ACM Transactions on Modeling and Computer Simulation (TOMACS)
Object-oriented programming through type extension in Ada 9X
ACM SIGAda Ada Letters
The architecture of a memory management unit for object-oriented systems
ACM SIGARCH Computer Architecture News
CLOStrophobia: its etiology and treatment
ACM SIGPLAN OOPS Messenger
Introduction to the literature on object-oriented design, programming, and languages
ACM SIGPLAN OOPS Messenger
Representing Software Engineering Models: The TAME Goal Oriented Approach
IEEE Transactions on Software Engineering
Interfaces and specifications for the Smalltalk-80 collection classes
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Monotonic conflict resolution mechanisms for inheritance
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Eoops: an object-oriented programming system for Emacs-Lisp
ACM SIGPLAN Lisp Pointers
HOPL-II The second ACM SIGPLAN conference on History of programming languages
The object-oriented brewery: a comparison of two object-oriented development methods
ACM SIGSOFT Software Engineering Notes
Parametrized programming in LILEANNA
SAC '93 Proceedings of the 1993 ACM/SIGAPP symposium on Applied computing: states of the art and practice
Filtering import: a basic mechanism for reusability
SAC '93 Proceedings of the 1993 ACM/SIGAPP symposium on Applied computing: states of the art and practice
Dynamic selection and reuse of implementations in the object-oriented programming paradigm
SAC '93 Proceedings of the 1993 ACM/SIGAPP symposium on Applied computing: states of the art and practice
Is object-oriented programming structured programming?
ACM SIGPLAN Notices
Equal rights for functional objects or, the more things change, the more they are the same
ACM SIGPLAN OOPS Messenger
Typing the specialization interface
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Value propagation in object-oriented database part hierarchies
CIKM '93 Proceedings of the second international conference on Information and knowledge management
Object-oriented logical specification of time-critical systems
ACM Transactions on Software Engineering and Methodology (TOSEM)
A type system for prototyping languages
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Polymorphism and subtyping in interface
IDL '94 Proceedings of the workshop on Interface definition languages
Inheritance of interface specifications (extended abstract)
IDL '94 Proceedings of the workshop on Interface definition languages
Typechecking and modules for multi-methods
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
An algebraic theory of class specification
ACM Transactions on Software Engineering and Methodology (TOSEM)
Removing implementation details from C++ class declarations
SIGCSE '95 Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education
Object orientation in multidatabase systems
ACM Computing Surveys (CSUR)
A reflective model for first class dependencies
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Typechecking and modules for multimethods
ACM Transactions on Programming Languages and Systems (TOPLAS)
Environmental acquisition: a new inheritance-like abstraction mechanism
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Implementing signatures for C++
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Computing Surveys (CSUR)
An object-oriented environment for simulation and evaluation of architectures
ANSS '92 Proceedings of the 25th annual symposium on Simulation
OOPWORK '86 Proceedings of the 1986 SIGPLAN workshop on Object-oriented programming
Implementing semantics of object oriented languages using attribute grammars
CSC '91 Proceedings of the 19th annual conference on Computer Science
A Formal Specification Framework for Object-Oriented Distributed Systems
IEEE Transactions on Software Engineering
Communications of the ACM
Object-oriented nets with algebraic specifications: the CO-OPN/2 formalism
Concurrent object-oriented programming and petri nets
A Hierarchical Model for Object-Oriented Design Quality Assessment
IEEE Transactions on Software Engineering
What Is Object-Oriented Programming?
IEEE Software
Object-Oriented Databases: Definition and Research Directions
IEEE Transactions on Knowledge and Data Engineering
Reusing Software: Issues and Research Directions
IEEE Transactions on Software Engineering
Interfaces with default implementations in Java
PPPJ '02/IRE '02 Proceedings of the inaugural conference on the Principles and Practice of programming, 2002 and Proceedings of the second workshop on Intermediate representation engineering for virtual machines, 2002
The Recursive Record Semantics of Objects Revisited
ESOP '01 Proceedings of the 10th European Symposium on Programming Languages and Systems
Supporting Lists in a Data Model (A Timely Approach)
VLDB '92 Proceedings of the 18th International Conference on Very Large Data Bases
Versions of Simple and Composite Objects
VLDB '93 Proceedings of the 19th International Conference on Very Large Data Bases
VLDB '94 Proceedings of the 20th International Conference on Very Large Data Bases
Derivation of Safety Requirements for Safety Analysis of Object-Oriented Design Documents
COMPSAC '97 Proceedings of the 21st International Computer Software and Applications Conference
Inheritance and Subtyping in a Parallel Object-Oriented Language
ECOOP '87 Proceedings of the European Conference on Object-Oriented Programming
What is "Object-Oriented Programming?"
ECOOP '87 Proceedings of the European Conference on Object-Oriented Programming
ECOOP '88 Proceedings of the European Conference on Object-Oriented Programming
Inheritance as an Incremental Modification Mechanism or What Like Is and Isn't Like
ECOOP '88 Proceedings of the European Conference on Object-Oriented Programming
A Marriage of Class- and Object-Based inheritance Without Unwanted Children
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
Sealing, Encapsulation, and Mutability
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
The Fragile Base Class Problem and Its Impact on Component Systems
ECOOP '97 Proceedings of the Workshops on Object-Oriented Technology
Towards a Colimit-Based Semantics for Visual Programming
COORDINATION '02 Proceedings of the 5th International Conference on Coordination Models and Languages
Techniques for Modeling Workflows and Their Support of Reuse
Business Process Management, Models, Techniques, and Empirical Studies
Overview of a Parallel Object-Oriented Language CLIX
ECOOP '87 Proceedings of the European Conference on Object-Oriented Programming
AGATE, Access Graph-Based Tools for Handling Encapsulation
Proceedings of the 16th IEEE international conference on Automated software engineering
OOPAL: integrating array programming in object-oriented programming
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
A specification logic for concurrent object-oriented programming
Mathematical Structures in Computer Science
The recursive record semantics of objects revisited
Journal of Functional Programming
Object-oriented encapsulation for dynamically typed languages
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
History of programming languages---II
Abstract behavior types: a foundation model for components and their composition
Science of Computer Programming - Formal methods for components and objects pragmatic aspects and applications
Supporting software composition at the programming language level
Science of Computer Programming - Special issue on new software composition concepts
Traits: A mechanism for fine-grained reuse
ACM Transactions on Programming Languages and Systems (TOPLAS)
The impact of research on middleware technology
ACM SIGSOFT Software Engineering Notes
The impact of research on middleware technology
ACM SIGOPS Operating Systems Review
Implementing signatures for C++
CTEC'94 Proceedings of the 6th conference on USENIX Sixth C++ Technical Conference - Volume 6
Asynchronous notifications among distributed objects
COOTS'96 Proceedings of the 2nd conference on USENIX Conference on Object-Oriented Technologies (COOTS) - Volume 2
COOTS'01 Proceedings of the 6th conference on USENIX Conference on Object-Oriented Technologies and Systems - Volume 6
Stateful traits and their formalization
Computer Languages, Systems and Structures
Programming with Live Distributed Objects
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
The cognitive consequences of object-oriented design
Human-Computer Interaction
An Interface-Based Ontology Modularization Framework for Knowledge Encapsulation
ISWC '08 Proceedings of the 7th International Conference on The Semantic Web
Machine learning for software reuse
IJCAI'87 Proceedings of the 10th international joint conference on Artificial intelligence - Volume 1
CZ: multiple inheritance without diamonds
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
ISC'06 Proceedings of the 14th international conference on Advances in smalltalk
Modular specification and verification of object-oriented programs
Modular specification and verification of object-oriented programs
Design and evaluation of C++ open multi-methods
Science of Computer Programming
A prototypical Java-like language with records and traits
Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
Generating a catalog of unanticipated schemas in class hierarchies using Formal Concept Analysis
Information and Software Technology
Traits.js: robust object composition and high-integrity objects for ecmascript 5
Proceedings of the 1st ACM SIGPLAN international workshop on Programming language and systems technologies for internet clients
A fully abstract semantics for UML components
FMCO'04 Proceedings of the Third international conference on Formal Methods for Components and Objects
A Use Case Interpretation of B AMN
IW-FM'98 Proceedings of the 2nd Irish conference on Formal Methods
A browser for incremental programming
Computer Languages, Systems and Structures
Systematizing pragmatic software reuse
ACM Transactions on Software Engineering and Methodology (TOSEM)
A relational model of object collaborations and its use in reasoning about relationships
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
A higher abstraction level using first-class inheritance relations
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
TraitRecordJ: A programming language with traits and records
Science of Computer Programming
Automatic testing of sequential and concurrent substitutability
Proceedings of the 2013 International Conference on Software Engineering
Pure trait-based programming on the Java platform
Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools
What programmers do with inheritance in java
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
The impact of research on the development of middleware technology
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.08 |
Object-oriented programming is a practical and useful programming methodology that encourages modular design and software reuse. Most object-oriented programming languages support data abstraction by preventing an object from being manipulated except via its defined external operations. In most languages, however, the introduction of inheritance severely compromises the benefits of this encapsulation. Furthermore, the use of inheritance itself is globally visible in most languages, so that changes to the inheritance hierarchy cannot be made safely. This paper examines the relationship between inheritance and encapsulation and develops requirements for full support of encapsulation with inheritance.