Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Typestate: A programming language concept for enhancing software reliability
IEEE Transactions on Software Engineering
The mathematics of inheritance systems
The mathematics of inheritance systems
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Views: a way for pattern matching to cohabit with data abstraction
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
An efficient implementation of SELF a dynamically-typed object-oriented language based on prototypes
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Organizing programs without classes
Lisp and Symbolic Computation
Hermes: a language for distributed computing
Hermes: a language for distributed computing
Making pure object-oriented languages practical
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
A unified methodology for object-oriented programming
Inheritance hierarchies in knowledge representation and programming languages
Eiffel: the language
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Experimental classification facilities for Smalltalk
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
The design and implementation of the self compiler, an optimizing compiler for object-oriented programming languages
Some original features of the LAURE language
OOPSLA '92 Addendum to the proceedings on Object-oriented programming systems, languages, and applications (Addendum)
The Definition of Standard ML
Multi-Methods in a Statically-Typed Programming Language
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
Object-Oriented Multi-Methods in Cecil
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Attaching Second-Order Types to Methods in an Object-Oriented Language
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Conceptual modeling and programming languages
ACM SIGPLAN Notices
Exploiting style in architectural design environments
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Object-oriented state machines: subclassing, composition, delegation, and genericity
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
How and why to encapsulate class trees
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Towards reusable, extensible components
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
ACM Computing Surveys (CSUR)
Declarative specialization of object-oriented programs
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Contraint-based polymorphism in Cecil: towards a practical and static type system
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Contextual programming (doctoral symposium—extended abstract)
Proceedings of the 21st international conference on Software engineering
Efficient multiple and predicated dispatching
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Zones, contracts and absorbing changes: an approach to software evolution
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A debate on language and tool support for design patterns
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Object-oriented composition untangled
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Incremental programming with extensible decisions
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
More dynamic object reclassification: Fickle∥
ACM Transactions on Programming Languages and Systems (TOPLAS)
Expressing opposition in the object model, first step towards negation
ACM SIGPLAN Notices
Dynamic inheritance in a statically typed language
Nordic Journal of Computing
Aspects and polymorphism in AspectJ
Proceedings of the 2nd international conference on Aspect-oriented software development
Integrating Independently-Developed Components in Object-Oriented Languages
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
CCC: User-Defined Object Structure in C
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Fickle: Dynamic Object Re-classification
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Dynamically Composable Collaborations with Delegation Layers
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
A Generic Role Model for Dynamic Objects
CAiSE '02 Proceedings of the 14th International Conference on Advanced Information Systems Engineering
An Effective Translation of Fickle into Java
ICTCS '01 Proceedings of the 7th Italian Conference on Theoretical Computer Science
ECOOP '00 Proceedings of the Workshops, Panels, and Posters on Object-Oriented Technology
Inheritance Using Contracts & Object Composition
ECOOP '97 Proceedings of the Workshops on Object-Oriented Technology
Bringing Together Description Logics and Database in an Object Oriented Model
DEXA '02 Proceedings of the 13th International Conference on Database and Expert Systems Applications
Extending the Concept of Mixin to Multidimensional Objects
TOOLS '97 Proceedings of the Tools-23: Technology of Object-Oriented Languages and Systems
Automating Delegation in Class-Based Languages
TOOLS '00 Proceedings of the Technology of Object-Oriented Languages and Systems (TOOLS 34'00)
Specialization classes: an object framework for specialization
IWOOOS '96 Proceedings of the 5th International Workshop on Object Orientation in Operating Systems (IWOOOS '96)
Re-classification and multi-threading: FickleMT
Proceedings of the 2004 ACM symposium on Applied computing
A role model and its metaclass implementation
Information Systems
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using predicate fields in a highly flexible industrial control system
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Algorithm specialization in generic programming: challenges of constrained generics in C++
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
SysObjC: C extension for development of object-oriented operating systems
Proceedings of the 3rd workshop on Programming languages and operating systems: linguistic support for modern operating systems
A provenly correct translation of Fickle into Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Living it up with a live programming language
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
UpgradeJ: Incremental Typechecking for Class Upgrades
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Constrained types for object-oriented languages
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Expressive and modular predicate dispatch for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
On "Technomethodologyn";: foundational relationships between ethnomethodology and system design
Human-Computer Interaction
Automatic Protocol Conformance Checking of Recursive and Parallel Component-Based Systems
CBSE '08 Proceedings of the 11th International Symposium on Component-Based Software Engineering
Ferret: Programming language support for multiple dynamic classification
Computer Languages, Systems and Structures
Predicated generic functions: enabling context-dependent method dispatch
SC'10 Proceedings of the 9th international conference on Software composition
Loosely-separated “sister” namespaces in java
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Prototypes with multiple dispatch: an expressive and dynamic object model
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Automatic checking of component protocols in component-based systems
SC'06 Proceedings of the 5th international conference on Software Composition
Piecewise modelling with state subtypes
MODELS'07 Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems
Efficient support of dynamic inheritance for class- and prototype-based languages
Journal of Systems and Software
Hi-index | 0.00 |
Predicate classes are a new linguistic construct designed to complement normal classes in object-oriented languages. Like a normal class, a predicate class has a set of superclasses, methods, and instance variables. However, unlike a normal class, an object is automatically an instance of a predicate class whenever it satisfies a predicate expression associated with the predicate class. The predicate expression can test the value or state of the object, thus supporting a form of implicit property-based classification that augments the explicit type-based classification provided by normal classes. By associating methods with predicate classes, method lookup can depend not only on the dynamic class of an argument but also on its dynamic value or state. If an object is modified, the property-based classification of an object can change over time, implementing shifts in major behavior modes of the object. A version of predicate classes has been designed and implemented in the context of the Cecil language.