Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Metaclasses are first class: The ObjVlisp Model
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
A parallel object-oriented language with inheritance and subtyping
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Emerald: a general-purpose programming language
Software—Practice & Experience
The C++ programming language (2nd ed.)
The C++ programming language (2nd ed.)
Eiffel: the language
ACM SIGPLAN Notices
Prototype-based languages (panel): object lessons from class-free programming
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Minimizing row displacement dispatch tables
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The Java Language Specification
The Java Language Specification
Generalising the BETA Type System
ECCOP '96 Proceedings of the 10th European Conference on Object-Oriented Programming
Reflection for Statically Typed Languages
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Explicit Metaclasses as a Tool for Improving the Design of Class Libraries
ISOTAS '96 Proceedings of the Second JSSST International Symposium on Object Technologies for Advanced Software
Experiences in building a compiler for an object-oriented language
ACM SIGPLAN Notices
Computer Languages, Systems and Structures
Hi-index | 0.00 |
A programming language that considers basic values and classes as objects brings more opportunities of code reuse and it is easier to use than a language that does not support this feature. However, popular statically typed object-oriented languages do not consider classes as first-class objects because this concept is difficult to integrate with static type checking. They also do not consider basic values as objects for sake of efficiency. This article presents the Green language type system which supports classes as classless objects and offers a mechanism to treat basic values as objects. The result is a reasonably simple type system which is statically typed and easy to implement. It simplifies several other language mechanisms and prevents any infinite regression of metaclasses.