Author: particle Date: Sat Nov 4 08:30:37 2006 New Revision: 15108 Modified: trunk/docs/pdds/clip/pdd15_objects.pod
Log: [PDD15]: pod formatting fixes Modified: trunk/docs/pdds/clip/pdd15_objects.pod ============================================================================== --- trunk/docs/pdds/clip/pdd15_objects.pod (original) +++ trunk/docs/pdds/clip/pdd15_objects.pod Sat Nov 4 08:30:37 2006 @@ -6,6 +6,7 @@ docs/pdds/pdd15_objects.pod - Object and Class semantics for Parrot =head1 REQUIREMENTS + This PDD is due an overhaul. This requirements section is for language implementers to list the OO-related needs of their language in so as to aid that. @@ -29,6 +30,7 @@ garbage collection schemes. =head2 Classes + A class is a collection of methods and attributes. It would be desirable, for those classes whose definition is fully known at compile time, to have a convenient way to have the class along with its attributes and methods stored @@ -36,9 +38,11 @@ classes at runtime will be needed too. =head2 Meta-classes + Ruby: Ruby has meta classes. It would be nice if classes were objects in Parrots OO model. =head2 Attributes + Attributes are instance data associated with a class (or role, however those are supported). They may not always be of a type specified by a PMC, though boxing/unboxing is of course an option. @@ -58,6 +62,7 @@ Ruby: Attributes can be dynamically added and removed at runtime. =head2 Methods + Perl 6: Methods may be public (anyone can invoke them) or private (only invokable by the class they are defined in). Additionally, submethods are methods that do not get inherited. @@ -68,6 +73,7 @@ Methods can be dynamically added and removed at runtime. =head2 Constructors + A constructor is run when an object is instantiated. .Net: There may be many constructors for an object (provided they all have @@ -75,6 +81,7 @@ parameters. =head2 Inheritance + Perl 6: Multiple inheritance. .Net: Single inheritance. @@ -82,6 +89,7 @@ Ruby: Single inheritance but support for mixins of ruby modules. =head2 Interfaces + An interface specifies a set of methods that must be implemented by a class that inherits (or implements) the interface, but does not provide any form of implementation for them. @@ -90,6 +98,7 @@ check behavior of you implement two interfaces with methods of the same name. =head2 Roles + A role consists of a set of methods and attributes. It cannot be instantiated on its own, but must be composed into a class. When this happens its methods and attributes become of that classes methods and attributes. This may happen @@ -106,6 +115,7 @@ for runtime composition, that's not so easy though. =head2 Introspection (aka Reflection) + Perl 6: Reflection provides access to a list of methods that a class has, its parent classes and the roles it does, as well as the name of the class and its memory address. For methods, their name, signature, return type and whether @@ -116,6 +126,7 @@ methods are also available. =head2 Inner Classes + An inner class is essentially a class defined within a class. Therefore it has access to things private to its outer class. @@ -125,6 +136,7 @@ internal. =head2 Delegation + Delegation is where a method call is "forwarded" to another class. Parrot may provide support for simple cases of it directly, or could just provide a "no method matched" fallback method that the compiler fills out to implement the