3GL   4GL   5GL  

-

  1. ?
  2. .
  3. ?

		 

	     , 
	 -,   ,  .
	,      .
	(  ) 

- -, . , . , , , , , , , .

, , . , , .

- :

. , . , , . , ( ), - . , , , .

, - . , , - ?

, , (  - ), . , . , .

. , .

, - , .

, "" , (instance). , - ( , , ), , 01.04.2003 - ;  - , , 8934 - .

- . , " ", " ", "", "", "", " ".

- , ( , ). , . , , , , , public-.

"" , .  - , , ..

- , .

- , , .  - .

, . .

 - , , . , , , , , . ( , ), . , , , / (.. , ), .

, , , , .

?  - . , . ( ).

- , X Y. "", , "", "", "". , .


1.

- ( Class4 Class3 Class5, Class5 Class3, Class1 Class2).

. , "" - "" - "" - "" , . , , .

- () . , COM-. , COM- (), , , . COM.


2.

- ( Class4 Class1, Class2 Class3).

. , , COM , "" . , :

Mixin- - , . .


3.

mixins - ( Class3 Class1 Class2, Class2 Class1 Self).

, , . , Class1<Class3> Class1_xp<Class3> ( , Class1_xp<> IClass1).

, "", :

 

I1

I2
  1I1 2I1 1I2 2I2
CC11 X   X  
CC12 X     X
CC21   X X  
CC22   X   X
  if (Self.I1_GetVersion() == 1) {...

, Mixin- , . Mixins , , C++.

?

.

, . , , .

, . "",  - "",  - "",  - "",  - "",  - "", ,  - "User". , .

, , . . , , , . , , : ", 4- ?". "" - " ". , .  - , .

, () ( ). . .  - "" . :

  1. , (, , , , ). UML- "Generalization", - .
  2. , ( , ; , ).
  3. (  - , , , , ).
  4. , , ( , "" 18).
  5. , , .. . .

2 , 4 5 - , .

(-) :

- .

:

- , .

-. :  - , ;  - , (, , ). , , .


4.

, , (, ). , :

- , . . - , , , , .

:

  1. ( ) , , , . - , , . 100% . .
  2. . .

, , , , (Button, ComboBox, Stack, Connection, 3DLine ..), . " " . :

, , . .

. , .

. , .

.

, , X Y .

  1. Ix Iy X Y.
  2. Ix , , X, Y.

X Y XY, X Y. , , . , 4,  - 10,  - 1013. .

. , . .

, , . , Clients, - Orders. clPersistent, Read() Save(), clClient clOrder (, ) Persistent.

clPersistent, Read() Save() clClient clOrder, . Save() (clPersistent, clClient),  - , (clPersistent, clOrder).

 - . ( ). , , ( , - ).


The man thinks, the horse thinks,
the sheep thinks, the cow thinks,
the dog thinks. The fish doesn't think.
The fish is mute. Expressionless.
The fish doesn't think, because the fish knows everything.
Iggy Pop, "This is a Film"

. , . -... .

,  - , , , -. , , . .  - .

, . , ( ), . :

, - , , , , .


4.

. X Y. X M, X (Mx) XY (Mxy). M A, X Y, (Mx Mxy) ? "Mxy" - . Z M (Mxz), Mxy Mxz B, X, Y Z, .

 - . ? :

- , ,  - , . : Mxyz - Mxy - Mxz - Mx

  1. : Mx - Mxy - Mxz - Mxyz
  2. ( ).

, , . , :

. ,  - , , ... . , .

"" . , . :

  1. . CALL.
  2. inline-.

. , Mx Mxy Mxz, CALL?

- .

, , .. . , , .

- , , . .

, . , , , - , :

CFoo *Foo = new CFoo();
Foo->Name = "My Foo";
DoSomethingStrange(&Foo); //  Foo   CBar*
cout << Foo->Name; //  !  CBar    Name.

, Foo CFoo*, , Name, - Name, GPF.

, Variant ( , ), :

MyVar = 1;
Message(MyVar + 1); // "2"
MyVar = "Text string";
Message(MyVar + 1); // "Text string1"

, , . , .

, (.. ), . Foo CFoo CBar, :

. , ( -?) . .

enum eGender 
{
  Male, Female
}

class cMale 
{
  //    ,  cMale = (cHuman, cMale)
  autoclassify as cHuman;
  public
    var Wife as cFemale;
}

class cFemale 
{
  autoclassify as cHuman;
  public
    var Husband as cMale;
}

class cHuman 
{
  private
    var Geneder as eGender;
  public
    var Name as String;

    function GetGender() as eGender 
    {
      Result = Gender;
    }

    procedure SetGender(AGender as eGender) 
    {
      if (AGender = Female) 
      {
        declassify this as cMale;
        classify this as cFemale;
      } 
      else if (AGender = Male) 
      {
        declassify this as cFemale;
        classify this as cMale;
      } 
      else 
      {
        declassify this as cMale;
        declassify this as cFemale;
      }
    }
} // cHuman
...
 // ,     
procedure QueryAndSetGender(Somebody as cHuman) 
{
  var Choice as eGender;
  Choice = App.AskUserChoice("Somebody is", Somebody.GetGender(),
           eGender::Male, "male",
           eGender::Female, "female"); //   
  if (Choice <> null)
    Somebody.SetGender(Choice);
  //   . Somebody -   cHuman
  // declassify Somebody as cHuman;  
  // <<<<      
} // QueryAndSetGender

// ,     
procedure Male2Female(AMale as cMale) 
{
  if (App.MessageBox("Are you sure?", MB_YES + MB_NO + MB_DEFBUTTON2) = IDYES)
    // :    ?
    AMale.SetGender(eGender::Female);
  if (AMale.Wife <> null) // , ...
    App.MessageBox(AMale.Name + " is married to " + AMale.Wife.Name, MB_OK);
  else
    App.MessageBox(AMale.Name + " isn`t married", MB_OK);
} // Male2Female

- .

, :

  1. , . . . , .
  2. , . NULL. .. , , NULL, . , Male2Female , .
  3. declassify, classify.

: , . , .

, , , , ..

, , , . . , , . .

, objWindow. clDialog ( , Open) clFoldingWindow ( , , Open) :

  objWindow.Open();

, , objWindow clDialog clFoldingWindow ( , ). ? ? . , . , objWindow :

Var objWindow as (clDialog, clFoldingWindow);

clDialog::(objWindow.Open());

objWindow :

Var objWindow as clDialog;

:

objWindow.Open();

, objWindow clFoldingWindow. , .

.

, - . . , , .

, , , , , , .

, , , , . ( ) , , , , .

, . (mapping) ( !):  - ( ). , .

, .

, . , ( , , , .):

  1. , . , , , , , , , , , , , , , , . , , ..
  2. . . , , ,  - , ,  - ,  - . , , , . , () , .
  3. . ,  - , , , , ,  - .
  4. ( ) . , , .
  5. .

, . , , . , .

, ( , ) . , ,  - , , ?

( , , mixin- .) , .

, , . -  - , , .

:

  1. , . ?
  2. . (). , . , .
  3. .
  4. ( ) .
  5. .

. , , . , , , , . , , , , , , "" .

?

:

-   ? -  .
- ! - .

, . , . : , , .

, :

, .

            3GL   4GL   5GL  

, , - . , , . , .




 10.11.2021 - 12:37: - Personalias -> WHO IS WHO - - _.
10.11.2021 - 12:36: - Conscience -> . ? - _.
10.11.2021 - 12:36: , , - Upbringing, Inlightening, Education -> ... - _.
10.11.2021 - 12:35: - Ecology -> - _.
10.11.2021 - 12:34: , - War, Politics and Science -> - _.
10.11.2021 - 12:34: , - War, Politics and Science -> . - _.
10.11.2021 - 12:34: , , - Upbringing, Inlightening, Education -> , - _.
10.11.2021 - 09:18: - New Technologies -> , 5G- - _.
10.11.2021 - 09:18: - Ecology -> - _.
10.11.2021 - 09:16: - Ecology -> - _.
10.11.2021 - 09:15: , , - Upbringing, Inlightening, Education -> - _.
10.11.2021 - 09:13: , , - Upbringing, Inlightening, Education -> - _.
Bourabai Research -  XXI Bourabai Research Institution