|
New
Subject Oriented Programming Language
C+- (pronounced "C
more or less")
Unlike C++, C+-
is a subject oriented language. Each C+- class instance,
known as a subject, holds hidden members, known
as prejudices or undeclared preferences, which are
impervious to outside messages, as well as public
members known as boasts or claims. The following
C operators are overridden as shown:
> better than
< worse than
>> much better than
<< forget it
! not on your life
== comparable, other things being equal
C+- is a strongly
typed language based on stereotyping and self-righteous
logic. The Boolean variables TRUE and FALSE (known
as constants in less realistic languages) are supplemented
with CREDIBLE and DUBIOUS, which are fuzzier than
Zadeh's traditional fuzzy categories. All Booleans
can be declared with the modifiers strong and weak.
Weak implication is said to "preserve deniability"
and was added at the request of the D.O.D. to ensure
compatability with future versions of Ada. Well-formed
falsehoods (WFFs) are assignment-compatible with
all booleans. What-if and why-not interactions are
aided by the special conditional evenifnot X then
Y.
C+- supports information
hiding and, among friend classes only, rumor sharing.
Borrowing from the Eiffel lexicon, non-friend classes
can be killed by arranging contracts. Note that
friendships are intransitive, volatile, and non-Abelian.
Single and multiple
inheritance mechanisms are implemented with random
mutations. Disinheritance rules are covered by a
complex probate protocol. In addition to base, derived,
virtual, and abstract classes, C+- supports gut
classes. In certain locales, polygamous derivations
and bastard classes are permitted. Elsewhere, loose
coupling between classes is illegal, so the marriage
and divorce operators may be needed:
marriage (MParent1, FParent1);
//child classes can now be derived
sclass MySclass: public MParent1, FParent1
{ // define MySclass
sclass YourSclass: public MParent1, FParent2
// illegitimate
divorce (MParent1, FParent1);
marriage (MParent1, FParent2);
sclass YourSclass: public MParent1, FParent2
{ // OK now
Operator precedence
rules can be suspended with the directive #pragma
dwim, known as the "Do what I mean" pragma. ANSIfication
will be firmly resisted. C+-'s slogan is "Be Your
Own Standard."
|