Group: access to data
Topic: data type as a set of variables
Topic: declaration scope
Topic: object-oriented data types
Topic: security by access rights
Topic: security by capabilities
| |
Summary
Data may have associated rights which permit only protected operations. Rights are given to the object by a creator, and removed by parameters using a sub-set of the object's rights. Thus parameters are given stronger protection than the corresponding arguments. The rights of an object may differ from the rights of the object's components. A variable may be declared with more rights than its type has. In the language Russell, rights are equivalent to a data type since a procedure may be called with any arguments as long as they provide the appropriate rights. This allows an additional degree of abstraction, but does not provide representation information for generic selection. In languages with both data types and rights, rights provide redundant information used in consistency tests. (cbb 5/80)
Subtopic: type accessibility
Quote: Java allows objects of a class to mutually access their private fields; undermines controlled access to individual objects [»knieG5_2001]
| Quote: C# defines five levels of accessibility; internal if limited to containing program, protected if limited to class and subclasses [»wiltS10_2000]
| Subtopic: opaque type
Quote: a subtype declaration is opaque; a REVEAL clause introduces information about an opaque type into a scope [»cardL_1991]
| Quote: the partially opaque type reveals some of an object's fields in its interface; e.g., used for I/O streams [»nelsG_1991]
| Subtopic: static member class
Quote: a nested, member class should be static; it has access to all of the enclosing class's members [»blocJ_2001]
| Subtopic: type as sealed representation
Quote: create a type by creating three operators: 'seal' to assign a type, 'testseal' to test a type, and 'unseal' to reveal an object's implementation or to use its parent type [»morrJH10_1973, OK]
| Quote: implement a type by sealing objects before they leave a module and testing the type seal on reentry to the module [»morrJH10_1973]
| Quote: allow static type checking by specifying the types, assigning a set of values for each type, and restricting 'seal', 'testseal', and 'unseal' to module boundaries [»morrJH10_1973]
| Subtopic: read-only type
Quote: for read-only types, use 'mutable' for variables and return values that are not part of the conceptual state; e.g., debugging output, counters, internal caches [»knieG5_2001]
| Subtopic: type by access rights
Quote: a right is name indicating a legal access to an object; e.g., via an operation [»joneAK5_1978]
| Quote: to legally apply an operator, the operands must carry appropriate rights [»joneAK5_1978]
| QuoteRef: joneAK4_1976 ;;22 can specify different rights for data structure and for each element
| Quote: once created, an object can not increase its rights; e.g., by parameter passing [»joneAK4_1976, OK]
| Quote: a block may grant (export) access rights of local variables to other blocks [»mcgrJR1_1979]
| QuoteRef: robiL9_1975 ;;6 rights to object only if created by legitimately given rights
| QuoteRef: joneAK4_1976 ;;9 rights of a variable are always fixed but object it references may change
| QuoteRef: joneAK4_1976 ;;7 each object has rights and requires certain rights for arguments, can create rights when create a new object
| QuoteRef: joneAK4_1976 ;;8 a variable declared with rights which is same or subset as rights of its type
| Quote: if a function's parameter requires additional rights, then all callers must indicate those rights. [»wulfWA4_1974, OK]
| Subtopic: consistency checks
QuoteRef: joneAK4_1976 ;;11 two variables may share an object iff 2nd has nor more rights than the first variable (done by a .replaceArrow. b)
|
Related Topics
Group: access to data (12 topics, 307 quotes)
Topic: data type as a set of variables (11 items)
Topic: declaration scope (16 items)
Topic: object-oriented data types (29 items)
Topic: security by access rights (38 items)
Topic: security by capabilities (65 items)
|