, , . - , .
.
-
.
, . . 4.1 .
. , [ 1986].
, , . .
[ 1999]. . (, ), (, ), (, ) (, ). , , - , , , . , . , , , , , . . - - , . , , " " (. 4. 2).
, , , , . , .
, , - . , [ 1986] (. 4. 3).
.
(, ). - , , , .
, , .
, , , .
[ 1986].
, . , -. - " , ".
- , .
- Ri, , Li, Ri , Ri [ 2000]. Li Ri . Li .
.
[ 1990]. - . - . .
. . , (http://progstone.nm.ru) , , . , , . . " " ( 1866 . . [ 1985]) " ?" (. 4.1).
4.1.
|
|
|
|
, | |||
! ! ! | |||
- , . , , , , .
- , , . , XX . , . - , . :
. -, , " , , , , " [ 1996].
- - , . - , , , ( , . . ). , , , .
. , . , .
[ 2000]. (. 4. 4). si Li. L1 si. S1 S2. , L1 - L2. , L2 S2. , S2, L2. L1->L2 , .
. , , . ,
- , ( ), . :
( ) - , , ( ) ( ).
- , , , , - .
[, 1991].
.
, , , .
. - [ 1985] 2570 , .
- .
.
.
, .
. .
. 4.5. , : '
.
, .
. , .
. .
80- XX . :
- (, ) , , . , . .
. , .
.
,
.
.
:
-, , . , -, .
-, , . , , - .
Java [ 1998].
, . , - "" [ 2001].
, , .
, , - , . .,
, . (, Microsoft, Sun Microsystems . .) , .
, .
, :
:
, ,
, .
( , )
. .
- . , , [, , 1984]. , . , ( ), . , , . . . ( 4.5) i , j .
. :
, . 4.6 , , , . ( ), .
. , . , , , [ 1999].
, , . 4.4.
, , . 4.5.
, .
. , . .
, , - () . .
, , .
, . ( ). :
,
,
,
.
.
. , , .
, - .
- . , .
, (Peter Denning) . - . , . , , ( ). [Appleby 1991].
, .
,
.
.
- , . ( , ).
.
. - , .
, [ 1990]. - ( - ) . - , , .
. - ? ( - ), . - , .
, , .
:
(.A.R. Hoare). , , , - . , .
.
- , . - , () .
[Cardelli, Wegner 1985].
. , :
3 + 4
3.0 + 4
3 + 4.0
3.0 + 4.0
+ .
.
.
. -. ,.|
. 4.8 () . , - , .
" " [ 1989]. . , 64 64- , . (, " ").
. .
. - , : , .
:
? 1965 , . , (, , ) .
[ 1975]. -, . - , . - . .
, - . - - -, , , . - -, , . - , , . , . . 4.10 - .
, , .
, .
:
if () then ;
switch case case ...;
:
, . - for. while ... do ... repeat . . . until.
. , CLU s elements (s) ( 4.1).
4.1.
setsum = proc(s:intset)returns(int)signals(NumOverFlow)
for i: int in intset$elements(s) do
return(sum)
. :
which (: )
, , .
, , - . , , , . , (, , ).
[ 2000]. , C++.
, .
, (, Pascal) .
PL/I. ( PL/I) , . PL/I :
, , . , :
(subscriptrange): begin
...
end;
" " , . , "goto ". " " :
" " :
c1, 2
...
2: < 2>
c1 , , : c1!.
. . , , , , .
:
if ( c1)
{ s1; } /* c1 */
.
S1: :=3;
S2: b:=a;
S3: :=+3;
S1: :=b+3;
S2: b:=47;
S1: a:=x+2;
S2: b:=a-3;
S3: :=-45;
, , .
- , , , , . - , , , . , - . .
.
:
, .
[Holt 1975]. .
[ 1980]. :
.
()
, , . , goto. , .
() (cohesion) - . - , . , .
. .
(coupling) - . . , . .
.
- ( ). , ( ).
, , . .
, . . 3.2.3. , ( , , ). .
. 4.11 -.
, 4.12 , .
. 4.13 .
. 4.14 .
. 4.15 "-".
, - . . 3.2.3. , , ( , , ). .
, .
- ACME [, 2001] 4.2.
4.2. ACME
System simple_cs={
Component server=(Port receive-request}
Connector rpc={ Roles {caller, receiver}}
Client.send-request to rpc-caller;
Server.receive-request to rpc-receiver}
. 4.16 --.
|
|
|
|
|
|
|
|
. 4.16. -
UML [, , 2000].
. 4.17 .
(. 4.17, ), - (. 4.17, ). . 4.17, .
. 4.18. .
. 4.19 .
. 4.20 .
(. 4.20, ), (. 4.20, ). . 4.20, , . 4.20, - .
. 4.21 .
. 4.21, . . 4.21, , . 4.21, 4.21, - .
. 4.22, . (. 4.22, ).
. 4.23 .
. 4.24 4.25 .
. 4.26 .
, . 4.27:
. 4.28 .
, - , . . "" "datum", "". , .
, . , , . .
. , , . .
, , :
:
- , . . ( ) ( ) [ 2000].
, , . , .
- , .
. . (Edgar Codd). . 4.29 .
, , , , , .
70- XX :
"" 1975 . .
- .
.
- , . - , . . . : .
. , [ 1986] :
- [ 1987].
(). , , . , , . - . - , . , .
, , . . .
- , , .
.
. , , - [, 1991]. , - .
, - . , , . . , . ,, , , - , .
. : , , . .
- , . , .
, , , . - " " , , . , , , - .
- , , - . ., - , .
, . - , , - , .
:
, . , , " .
60- XX (. 4.30).
:
, "", . (. 4.31) .
. . - 80- XX Object-Oriented Cobol.
, .
.
, . 2.4.1 2.4.2. :
for(;P("\n"),R-;P("|"))for(e=C;e-;P("_"+(*u++/8)%2))P("|"+(*u/4)%2);
(. 4.32) , , . - C++, , , C++ Java. , , Java ( , ), Java Oberon .
(. 4.33) , . " ". - - Oberon, .
Ada - , , . 1979 1983 (. 4.34). , " ", .
Simula . (. 4.35) -. , . Simula , a Smalltalk - - . BETA , , . ( ) , , , , .
(. 4.36) , . 2.2.3.
(. 4.37) , . 2.2.4.
, - . , - , , . .
, , , :
, .
- , . :
- . SGML (Standard Generalized Markup Language - ) , , . , :
- .
:
. . sh, bash, csh, ksh - Unix.
(. . 5.2.4.2) , . , . [Handbook 1998].
- . - , , , , , , . :
- . :
- . :
- , , . . :
- , . :
[, 1978].
. - , . . , [ 1984]. [Grune, Jacobs 1998] ( - 4), .
. 4.2 - () () [Grune, Jacobs 1998].
4.2.
() | () | |
0 | ( ) | |
1 | - ( ) | - |
2 | - | - |
3 | ( ) | , |
4 |
. , .
. 4.3 [Grune, Jacobs 1998].
4.3.
(, , ) | ||
predict/match | shift/reduce | |
- : , 1 | : - LL(k) |
: - - - - LR(k) - LALR(1) - SLR(1) |
: | ( ) |
. 4.38 [Grime, Jacobs 1998]. , . .
, . , , , " ". , . . - - .
- . , . , , , , , , .
, , . - , , , . . , , , . , , . - . , "" , , ( "") .
- . , "" . - , , " ". , - . , .
, , , - . . . , , - , , .
. . , , , , , , . , . , , , , , , , , .
, , , . - ( ) . , , . , , . , "", , , , . :
, , . , , , . , , . , , , , , . , , . , , , , - . , , .
, . . , , , . .
, . yacc, LR(1) , , LALR(1). . 5.2.4.3.
ASCII-, - (RBNF). :
%{
< >
%}
< >
%%
< >
%%
< >
%% - .
< C> . #include, . .
< > , , :
< > , , .
< C> . main (){...; yyparse () ; . . . }, yylex (){...} .
yyparse () . , .
:
,
.
, , .. :
. . , "locale", . " ". , , : atoi(), isainum(), strtod() .
- . , .
.
, Latin-1 ! (, " "), .
- ,
.
.
. .
[ 1962]. , , . . 60- XX :
. , , . : , . , . , , . , , J , .
, , .
. . [ 1985] - . , ( ), , . , , . , , , , . , "" "" : , , . , . , . . : . , , , , . .
. , . . . . . [ 1990] , . . 72 600 . .
- .
.
, .
- , . , .
, [Solaris 1995].
- , . , . , Unix LANG. - ru - .
. , , . , (). - . . 4.4 .
4.4.
|
|
|
. |
|
. (" , ") |
|
"". , |
|
. , :-(, , :-) . , ;-) |
|
- |
|
- |
|
|
|
|
|
|
|
|
|
|
|
|
|
() |
|
- :-) |
|
|
|
(. 4.5).
4.5.
|
|
|
|
|
, |
|
|
|
|
|
|
|
|
|
|
|
. 4.6.
4.6.
|
|
|
- |
|
... |
|
- |
|
... |
|
- |
|
-... |
|
- |
|
...! |
, , ,
, !
.
1. 1982 - . . . // . - .: , 1982.
2. 1984 - . . (). // . - .: , 1984.
3. 2001 - . . // , 3, 2001
4. , 1978 - ., . , . 2- . - .: , 1978.
5. , 2001 - . ., . . . // , 2001. . 2, . 33-48.
6. 1986 - . Unix. - .: , 1986.
7. - 2000 - . -. . - .: , 2000.
8. 1998 - . . // , 2, 1998, . 120-133.
9. 1998 - . - C++, 2- . - .: , .: , 1998.
10. , , 2000 - ., ., . UML. . - .: , 1998.
11. 1996 - . /. . - .: , 1996.
12. 1984 - . . . - : 1, 1984.
13. 1996- . "" . // , 6, 1996.
14. 1997 - ., . Java. - .: , 1999.
15. , 1991 - . . . . . -.: - , 1991.
16. 1975 - . . // ., ., . . - .: , 1975, . 7-97.
17. 1978 - . .- .: , 1978.
18. 2000 - , ., . , 6- . - .; .; '.: "", 2000.
19. , , 1989- ., ., . . - .: , 1989.
20. 1989 - . . - .: 1989.
21. 1985 - . . . - .: 1985.
22. , 1993 - . ., . . : . - .: , 1993.
23. 1990 - . . . - : , 1990.
24. 1985 - . . - .: , 1985.
25. , 1991 - . ., . . . . - .: , 1991.
26. 1986 - . . : . - .: - , 1986.
27. , , 1988 - . ., . ., . X. (). - .: , 1988.
28. 1993 - . . - : RDTEX, 1993.
29. 1975 - . . - .: , 1975.
30. 1986- . . . // . - : - , 1986, . 3-13.
31. 1991 - . - . // , 1990, 5, . 29-35.
32. 1989 - ., . . - .: , 1989.
33. 2001 - . . UML. - .: -, 2001.
34. 1999 - . . : . - .: -89, 1999.
35. 1980- . . - .: , 1980.
36. 2000 - . C++. 50 . - .: , 2000.
37. 1979 - . . . - .: , 1979.
38. 1999 - . . . - .: , 1999.
39. 1987 - . . . - .: , 1987.
40. 1979 - . : . - .: , 1979.
41. 1999 - . . . - .: , 1999.
42. 1989 - . . "". - .: , 1989.
43. 2001 - . . , 5- . - .: "", 2001.
44. 1996- , , . Java. . - .: " .", 1996.
45. 2000 - . C++,- .: , 2000.
46. 1990 - . . . - .: - . - 1990.
47. 1981 - . . - .: , 1981.
48. 2000 - . . : . - .: , 2000.
49. , - 1984 - ., - . . - .: , 1984.
50. 1984 - . . . - .: - . - 1984.
51. 1985 - . . ,- .: , 1985.
52. 1975 - . . // ., ., . . - .: , 1975. '
53. 1962 - . . // . . 11. - .: , 1962, . 412-527.
54. 1985 - . . . // , . 2. - .: , 1985.
55. 1990 - . . . // . - 1990. - 1, . 78-92.
56. , 1993 - ., . - : . - : , 1993.
57. 1989 - , , . . - .: , 1989.
58. Appleby 1991 - Doris Appleby. Programming Languages: Paradigm and Practice. McGraw-Hill, 1991.
59. Sal, Grune 1994- Henri E. Bal, Dick Game. Programming Language Essentials. Addison-Wesley Publishing Company, 1994.
60. Cardelli, Wegner 1985 - Luca Cardelli, Peter Wegner. On Understanding Types, Data Abstraction, and Polimorphism. // Computing Surveys, Vol 17, N 4, pp. 471-522 December 1985.
61. Grune, Jacobs 1998 - Dick Grime, Ceriel J. H. Jacobs. 1998.
62. Handbook 1998 - Handbook of Programming Languages. Macmillian Technical Publishing, 1998.
63. Holt 1975- R. C. Holt. Structure of Computer Programs: A Survey. // Proceedings of the IEEE, pp. 879-893, 63(6), 1975.
64. Morris 1973 - J. H. Morris, Jr. Types are not sets. // Conference Record of the ACM Symposium on Principles, of Programming Languages, pp. 120-124, Boston October 1973.
65. Solaris 1995 - Solaris 2.5. Developer's Guide to Internationalization. SunSoft Press 1995.
66. Terekhov, Verhoef 2000 - Andrey A. Terekhov, Chris Verhoef. The Realities of Language Conversions. // IEEE Software, November/December 2000.
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 -> - _. |