home *** CD-ROM | disk | FTP | other *** search
/ ftp.disi.unige.it / 2015-02-11.ftp.disi.unige.it.tar / ftp.disi.unige.it / pub / .person / GianuzziV / SysOp / C+-.txt next >
Text File  |  1998-10-29  |  2KB  |  61 lines

  1.  
  2.  C+- (pronounced "C more or less")
  3.  
  4. Unlike C++, C+- is a subject oriented language.  Each C+- class
  5. instance, known as a subject, holds hidden members, known as
  6. prejudices or undeclared preferences (which are impervious to outside
  7. messages), as well as public members known as claims or boasts.
  8. The following C operators are overridden as shown:
  9.  
  10.    >  better than
  11.    <  worse than
  12.    >> much better than
  13.    << forget it
  14.    !  not on your life
  15.    == comparable, other things being equal
  16.  
  17. C+- is a strongly typed language based on stereotyping and
  18. self-righteous logic.  The Boolean variables TRUE and FALSE (known as
  19. constants in less realistic languages) are supplemented with CREDIBLE
  20. and DUBIOUS, which are fuzzier than Zadeh's traditional fuzzy
  21. categories.  All Booleans can be declared with the modifiers strong
  22. and weak.  Weak implication is said to "preserve deniability" and was
  23. added at the request of the D.O.D. to ensure compatibility with future
  24. versions of Ada.  Well-formed falsehoods (WFFs) are
  25. assignment-compatible with all booleans.  What-if and why-not
  26. interactions are aided by the special conditional "evenifnot X then Y".
  27.  
  28. C+- supports information hiding and, among friend classes only, rumor
  29. sharing.  Borrowing from the Eiffel lexicon, non-friend classes can be
  30. killed by arranging contracts.  Note that friendships are
  31. intransitive, volatile, and non-symmetric.
  32.  
  33. Single and multiple inheritance mechanisms are implemented with random
  34. mutations.  Disinheritance rules are covered by a complex probate
  35. protocol.  In addition to base, derived, virtual, and abstract
  36. classes, C+- supports gut classes.  In certain locales, polygamous
  37. derivations and bastard classes are permitted.  Elsewhere, loose
  38. coupling between classes is illegal, so the marriage and divorce
  39. operators may be needed:
  40.  
  41.    marriage (MParent1, FParent1);
  42.    //child classes can now be derived
  43.    sclass MySclass:  public MParent1, FParent1
  44.    {  // define MySclass
  45.  
  46.    sclass YourSclass: public MParent1, FParent2
  47.    // illegitimate
  48.  
  49.    divorce (MParent1, FParent1);
  50.  
  51.    marriage (MParent1, FParent2);
  52.    sclass YourSclass: public MParent1, FParent2
  53.    {//OK now
  54.  
  55. Operator precedence rules can be suspended with the directive
  56. #pragma dwim, known as the "Do what I mean" pragma.
  57. ANSIfication will be
  58. firmly resisted. C+-'s slogan is "Be Your Own Standard."
  59.  
  60.     Carl Kugler III
  61.