Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Last revisionBoth sides next revision
fifty_questions_for_a_prospective_language_designer [2007-06-15 19:51] nikfifty_questions_for_a_prospective_language_designer [2007-07-10 18:19] 71.60.251.17
Line 1: Line 1:
 +
  
  
Line 96: Line 97:
  
  
- Here is how Jonathan Rees has characterized the very fuzzy term "OO". + Here is how Jonathan Rees has characterized the very fuzzy term "OO": 
- 1. Encapsulation -- the ability to hide the implementation of a type +  Encapsulation -- the ability to hide the implementation of a type 
- 2. Protection -- the inability of the client of a type to detect its implementation, guaranteeing that any changes to an implementation that preserve the behavior of the interface will not break any clients.  This also gives some measure of "security", because things like passwords can't leak out.  ) +  Protection -- the inability of the client of a type to detect its implementation, guaranteeing that any changes to an implementation that preserve the behavior of the interface will not break any clients.  This also gives some measure of "security", because things like passwords can't leak out.  )
   - Ad hoc polymorphism -- functions and data structures with parameters that can take on values of many different types.   - Ad hoc polymorphism -- functions and data structures with parameters that can take on values of many different types.
   - Parametric polymorphism -- functions and data structures that parameterize over arbitrary values, such as "a list of anything").  ML and Lisp both have this.  Java doesn't quite because of its non-Object primitive types.   - Parametric polymorphism -- functions and data structures that parameterize over arbitrary values, such as "a list of anything").  ML and Lisp both have this.  Java doesn't quite because of its non-Object primitive types.
  • fifty_questions_for_a_prospective_language_designer.txt
  • Last modified: 2007-07-10 18:21
  • by 71.60.251.17