.
.
, , .
, , , . , . ( , , )
, , , .
, .
, .
, -, , .
( , ).
, . , . , , , , .
, , . , . , . , , , , , , .
, .
.
, , Basic, Pascal, C.
, . . .
.
- . .
- . .
. , , ( ) . ( - ) .
- , .
. , , . . , (, , , . .). , , (, , , . .).
( ). . .
, , . , . , , .
. , . , Plankalkuel ( plan calculus), 19451946 (Konrad Zuse).
50- 70- XX . 80- 90- , .
. , - . . , . .
(, ), , .
. . " . " [, 1991].
2.1. .
, , , , . , , , . , .
. :
. , . . . , , , , . , .
. , . :
- , . . ;
- , . . ;
- , . . , ;
- , . . , ;
- , . . .
. , . :
- . () ;
- ;
- ( ).
. .
- , .
- , ( ).
:
- , ;
- , .
. :
1) "" () , , , - . .
2) "" () , , , ( ), . "" :
a) Ada;
b) CLU;
c) C++ Java.
3) " () , "" "" . "" :
a) Modula-2;
b) Ada Java.
. :
1) ;
7 (+/-2) (, ). . "" , . 7 .
() 60 . .
2) () ;
, , . , goto. , .
() (cohesion) . , . , .
. - 2 .
. , , . , , .
() . , ( ), . .
, (, FORTRAN Pascal). , Ada, .
3) ;
(coupling) . . , . .
. . , . , , ( ) .
() , , , . (). .
.
. .
4) (, ) .
( ). , ( ).
, , . .
- , . . .
- , .
- , .
2.2. .
() .
. , - , , .
, . , , , , .
, - , , .
, , , .
:
- .
- .
, .
, . . ( , ) . . , .. , . .
, .
, . . .
, . .
. , .
. (, ) .
[ ., 1979] " . , , - ( ), : , . , . , ."
(- (Boem-Jacopini)): (.. ) - ,
1: goto.
2: , -, , .
3: , .
- . - ("") , goto : - .
, , . goto, (, Break Continue C).
. . , , .
. " " [ 1975]. " " [, , 1982]. " + = " [ 1985]. [ 1999].
- .
. , , , .
, . .
, . - . OOP , , , - .
, 70- , 80-, .
, ( ) , ( ) - . , , .
- , , , , .
- - . , .
- , . .
- . .
. , . .
( ). , . -, , . , , , . .
- . - , . . , .
- :
. () .
. - -. , .
, [, 1993]:
- , ;
- , ;
- - ;
- , .
( ) , , , .
, . . , . , , , .
. , , . . - , .
, .
Pascal- - , :
Type TCoordinates = class (TObject)
x, y: integer;
Constructor Init (_x, _y: integer);
Function GetX: integer;
Function GetY: integer;
Procedure SetX (_x: integer);
Procedure SetY (_y: integer);
Procedure Move (dx, dy: integer);
Destructor Done; virtual;
Constructor Init();
x:= _x; y:= _y
end;
Function GetX: integer;
begin
GetX:= x
end;
.............
End;
TPoint = class (TCoordinates)
Color: integer;
Constructor Init (_x, _y, _Color: integer);
Function SetColor (_Color: integer);
Function GetColor: integer;
Constructor Init(_x, _y, _Color: integer);
Inherited Init(_x, _y);
Color:= _Color
end;
.............
End;
TPoint, , -.
Var P1: Point;
P1.Init (0,0, 14); P1.Move (+2, -2);
-- . OOP .
, - . , .
, - .
, .
4. .
70- , , .
, . , - , , .
, , , . , , , , .
, (, ), .
.
, , .
, , , .
Prolog ( PROgramming in LOGic) Mercury.
5. .
.
, , 20- 30- XX . , , , , , .
, 50- XX LISP, .
, , , , , , .
, , , LISP. , 70- , ML, , , SML, . , , , 90- , Haskell.
. , , , .
. , . , , , , .
, , , . , .. , . .
, ML Haskell .
, .
. , , , SML, Microsoft.NET.
.
, .
, f A B
(a,b) A? B,
,
(a,b1) f (a,b2) f,
b1 = b2.
, , ( ) .
, -. -.
( ) . . , , , - , .. .
, , , , , , . - - , . .NET. , - ( ) .
, -.
, .
, LISP (LISt Processing), , , .. . , .
, ML, SML. ( ) .
, , SML, ( ), .
, .. ( ). , SML, Miranda Haskell.
: (Scheme, SML, Miranda, Haskell), (SML) ( ) (Haskell, Miranda, SML).
. , , . , LISP : Scheme, InterLisp, COMMON Lisp .
SML, ML . (Robin Milner) MIT (Massachusetts Institute of Technology) , , . , .
ML ( , , ). SML, , CaML, INRIA, SML/NJ SML New Jersey, mosml ( ML).
:
- ;
- ( , );
- : ;
- : ( );
- ( , ).
, , SML . , , :
- , .. ( ) , , ( C C++ );
- : ( , LISP Scheme);
- ( , , ).
SML ( ). (, , , ).
, ( , ), .
() ( ) , , .
, , , , .
, , , - .
.NET, , :
- ( , , Scheme , SML );
- Common Language Infrastructure, CLI ( , C# - SML , );
- Common Type System, CTS ( );
- , ( , ).