Abstract
This paper presents Classages, a novel interaction-centric object-oriented language. Classes and objects in Classages are fully encapsulated, with explicit interfaces for all interactions they might be involved in. The design of Classages touches upon a wide range of language design topics, including encapsulation, object relationship representation, and object confinement. An encoding of Java's OO model in Classages is provided, showing how standard paradigms are supported. A prototype Classages compiler is described.
- Abadi, M., and Cardelli, L. A Theory of Objects. Springer, 1996. Google ScholarDigital Library
- Aldrich, J., and Chambers, C. Ownership domains: Separating aliasing policy from mechanism. In Proceedings of the 18th ECOOP (2004), pp. 1--25.Google ScholarCross Ref
- Aldrich, J., Kostadinov, V., and Chambers, C. Alias annotations for program understanding. In OOPSLA '02, pp. 311--330. Google ScholarDigital Library
- Aldrich, J., Sazawal, V., Chambers, C., and Notkin, D. Language support for connector abstractions. In Proceedings of the 17th ECOOP (2003), pp. 74--102.Google ScholarCross Ref
- Allen, R., and Garlan, D. A formal basis for architectural connection. ACM Transactions on Software Engineering and Methodology 6, 3 (1997), 213--249. Google ScholarDigital Library
- Bierman, G., and Wren, A. First-class relationships in an object-oriented language. In FOOL '05: Proceedings of the 12th International Workshop on Foundations of Object-oriented Languages.Google Scholar
- Black, A. P., Schärli, N., and Ducasse, S. Applying traits to the smalltalk collection classes. In OOPSLA '03, pp. 47--64. Google ScholarDigital Library
- Boyapati, C., Liskov, B., and Shrira, L. Ownership types for object encapsulation. In POPL'03, pp. 213--223. Google ScholarDigital Library
- Bracha, G., and Cook, W. Mixin-based inheritance. In Proceedings of OOPSLA/ECOOP'90 (1990), pp. 303--311. Google ScholarDigital Library
- Clarke, D. Object Ownership and Containment. PhD thesis, University of New South Wales, July 2001. Google ScholarDigital Library
- Clarke, D., and Wrigstad, T. External uniqueness is unique enough. In Proceedings of the 17th ECOOP (2003), pp. 176--200.Google ScholarCross Ref
- Cobbe, R., and Felleisen, M. Environmental acquisition revisited. In POPL'05, pp. 14--25. Google ScholarDigital Library
- Ducasse, S., Blay-Fornarino, M., and Pinna, A.-M. A reflective model for first class dependencies. In OOPSLA'95, pp. 265--280. Google ScholarDigital Library
- Flatt, M., and Felleisen, M. Units: Cool modules for HOT languages. In PLDI'98, pp. 236--248. Google ScholarDigital Library
- Flatt, M., Krishnamurthi, S., and Felleisen, M. Classes and mixins. In POPL'98, pp. 171--183. Google ScholarDigital Library
- Gamma, E., Helm, R., Johnson, R., and Vlissides, J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995. Google ScholarDigital Library
- Guéhéneuc, Y.-G., and Albin-Amiot, H. Recovering binary class relationships: Putting icing on the uml cake. In OOPSLA'04, pp. 301--314. Google ScholarDigital Library
- Kristensen, B. Complex Associations: Abstractions in Object-Oriented Modeling. In OOPSLA'94, pp. 272--283. Google ScholarDigital Library
- Liu, Y. D., and Smith, S. F. Modules with interfaces for dynamic linking and communication. In Proceedings of the 18th ECOOP (2004), pp. 414--439.Google ScholarCross Ref
- Madsen, O. L., Moller-Pedersen, B., and Nygaard, K. Object-oriented programming in the BETA programming language. ACM Press/Addison-Wesley Publishing Co., 1993. Google ScholarDigital Library
- Medvidovic, N., Rosenblum, D. S., and Taylor, R. N. A language and environment for architecture-based software development and evolution. In Proceedings of the 1999 International Conference on Software Engineering, pp. 44--53. Google ScholarDigital Library
- Nystrom, N., Clarkson, M. R., and Myers, A. C. Polyglot: An extensible compiler framework for java. In Proceedings of the 12th International Conference on Compiler Construction (2003), pp. 138--152. Google ScholarDigital Library
- Object Management Group. The Object Management Group. URL: http://www.omg.org.Google Scholar
- Rinat, R., and Smith, S. F. Modular internet programming with cells. In Proceedings of the 16th ECOOP (2002), pp. 257--280. Google ScholarDigital Library
- Rumbaugh, J. Relations as semantic constructs in an object-oriented language. In OOPSLA'87, pp. 466--481. Google ScholarDigital Library
- Schärli, N., Black, A. P., and Ducasse, S. Object-oriented encapsulation for dynamically typed languages. In OOPSLA'04, pp. 130--149. Google ScholarDigital Library
- Schärli, N., Ducasse, S., Nierstrasz, O., and Black, A. P. Traits: Composable units of behaviour. In Proceedings of the 17th ECOOP (2003), pp. 248--274.Google ScholarCross Ref
- Schärli, N., Ducasse, S., Nierstrasz, O., and Wuyts, R. Composable encapsulation policies. In Proceedings of the 18th ECOOP (2004), pp. 26--50.Google ScholarCross Ref
- Srinivasan, R., and Rose, G. Linus: A hierarchic procedure to predict the fold of a protein. PROTEINS: Structure, Function, and Genetics 22 (1995), 81--99.Google Scholar
- Steyaert, P., Lucas, C., Mens, K., and D'Hondt, T. Reuse contracts: managing the evolution of reusable assets. In OOPSLA'96, pp. 268--285. Google ScholarDigital Library
- Tofte, M., and Talpin, J.-P. Region-based memory management. Information and Computation 132, 2 (1997), 109--176. Google ScholarDigital Library
Index Terms
- Interaction-based programming with classages
Recommendations
Interaction-based programming with classages
OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsThis paper presents Classages, a novel interaction-centric object-oriented language. Classes and objects in Classages are fully encapsulated, with explicit interfaces for all interactions they might be involved in. The design of Classages touches upon a ...
Object-oriented encapsulation for dynamically typed languages
OOPSLA '04: Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsEncapsulation in object-oriented languages has traditionally been based on static type systems. As a consequence, dynamically-typed languages have only limited support for encapsulation. This is surprising, considering that encapsulation is one of the ...
Understanding Object Oriented Programming Concepts in an Advanced Programming Course
ISSEP '08: Proceedings of the 3rd international conference on Informatics in Secondary Schools - Evolution and Perspectives: Informatics Education - Supporting Computational ThinkingTeaching Object Oriented Programming (OOP) is a difficult task, both for teachers who have to find the best way to illustrate the concepts and for students who have to understand them. Although the OOP paradigm and its concepts reflect the "real world",...
Comments