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
Organizing programs without classes
Lisp and Symbolic Computation
The programming language jigsaw: mixins, modularity and multiple inheritance
The programming language jigsaw: mixins, modularity and multiple inheritance
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
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
Objective ML: an effective object-oriented extension to ML
Theory and Practice of Object Systems - Third workshop on foundations of object-oriented languages (FOOL 3)
Extreme programming explained: embrace change
Extreme programming explained: embrace change
Enhancement for multiple-inheritance
OOPWORK '86 Proceedings of the 1986 SIGPLAN workshop on Object-oriented programming
Software product lines: practices and patterns
Software product lines: practices and patterns
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
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)
EMF: Eclipse Modeling Framework 2.0
EMF: Eclipse Modeling Framework 2.0
The Definitive ANTLR Reference: Building Domain-Specific Languages
The Definitive ANTLR Reference: Building Domain-Specific Languages
The java module system: core design and semantic definition
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
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
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
Derivation and Refinement of Textual Syntax for Models
ECMDA-FA '09 Proceedings of the 5th European Conference on Model Driven Architecture - Foundations and Applications
Featherweight Jigsaw: A Minimal Core Calculus for Modular Composition of Classes
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Accelerating the creation of customized, language-Specific IDEs in Eclipse
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Implementing software product lines using traits
Proceedings of the 2010 ACM Symposium on Applied Computing
Chai: traits for Java-like languages
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Pure delta-oriented programming
FOSD '10 Proceedings of the 2nd International Workshop on Feature-Oriented Software Development
Compositional type-checking for delta-oriented programming
Proceedings of the tenth international conference on Aspect-oriented software development
Verifying traits: a proof system for fine-grained reuse
Proceedings of the 13th Workshop on Formal Techniques for Java-Like Programs
A DSL for writing type systems for Xtext languages
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
TraitRecordJ: A programming language with traits and records
Science of Computer Programming
Hi-index | 0.00 |
Traits have been designed as units of fine-grained behavior reuse in the object-oriented paradigm. In this paper, we present the language Sugared Welterweight Record-Trait Java (SWRTJ), a Java dialect with records and traits. Records have been devised to complement traits for fine-grained state reuse. Records and traits can be composed by explicit linguistic operations, allowing code manipulations to achieve fine-grained code reuse. Classes are assembled from (composite) records and traits and instantiated to generate objects. We present the prototypical implementation of SWRTJ using Xtext, an Eclipse framework for the development of programming languages as well as other domain-specific languages. Our implementation comprises an Eclipse-based editor for SWRTJ with typical IDE functionalities, and a stand-alone compiler, which translates SWRTJ programs into standard Java programs.