Encapsulation and inheritance in object-oriented programming languages
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
The programming language jigsaw: mixins, modularity and multiple inheritance
The programming language jigsaw: mixins, modularity and multiple inheritance
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Enhancement for multiple-inheritance
OOPWORK '86 Proceedings of the 1986 SIGPLAN workshop on Object-oriented programming
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
Agile Software Development: Principles, Patterns, and Practices
Agile Software Development: Principles, Patterns, and Practices
Test Driven Development: By Example
Test Driven Development: By Example
Jam---designing a Java extension with mixins
ACM Transactions on Programming Languages and Systems (TOPLAS)
Applying traits to the smalltalk collection classes
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Supporting Java traits in Eclipse
eclipse '04 Proceedings of the 2004 OOPSLA workshop on eclipse technology eXchange
Removing duplication from java.io: a case study using traits
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Identifying traits with formal concept analysis
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Traits: A mechanism for fine-grained reuse
ACM Transactions on Programming Languages and Systems (TOPLAS)
Stateful traits and their formalization
Computer Languages, Systems and Structures
FeatherTrait: A modest extension of Featherweight Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Redesigning with traits: the Nile stream trait-based library
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
Extending FeatherTrait Java with Interfaces
Theoretical Computer Science
A trait based re-engineering technique for Java hierarchies
Proceedings of the 6th international symposium on Principles and practice of programming in Java
Traits at work: The design of a new trait-based stream library
Computer Languages, Systems and Structures
Featherweight Jigsaw: A Minimal Core Calculus for Modular Composition of Classes
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Implementing software product lines using traits
Proceedings of the 2010 ACM Symposium on Applied Computing
Verification of object-oriented software: The KeY approach
Verification of object-oriented software: The KeY approach
The spoofax language workbench: rules for declarative specification of languages and IDEs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Verifying traits: a proof system for fine-grained reuse
Proceedings of the 13th Workshop on Formal Techniques for Java-Like Programs
Chai: traits for Java-like languages
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Featherweight Jigsaw - Replacing inheritance by composition in Java-like languages
Information and Computation
Xbase: implementing domain-specific languages for Java
Proceedings of the 11th International Conference on Generative Programming and Component Engineering
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Combining traits with boxes and ownership types in a Java-like setting
Science of Computer Programming
TraitRecordJ: A programming language with traits and records
Science of Computer Programming
The Java Language Specification, Java SE 7 Edition
The Java Language Specification, Java SE 7 Edition
On flexible dynamic trait replacement for Java-like languages
Science of Computer Programming
Hi-index | 0.00 |
Traits provide a mechanism for fine-grained code reuse to overcome the limitations of class-based inheritance. A trait is a set of methods which is completely independent from any class hierarchy and can be flexibly used to build other traits or classes by means of a suite of composition operations. We present: (i) a formulation of traits which aims to achieve complete compatibility and interoperability with the Java platform without reducing the flexibility of traits, and (ii) an integration with Eclipse which aims to support an incremental adoption of traits in existing Java projects. Indeed, the proposed trait language can coexist with Java code. Single parts of a project can be refactored to use traits, without requiring a complete rewrite of the whole existing code-base.