構造化プログラミング

出典: フリー百科事典『ウィキペディア(Wikipedia)』

: structured programmingcontrol structures[1][2]structured statementcontrol flow statement

1968ACMGo To Statement Considered Harmful1969NATOStructured Programming1969[3]

制御構文[編集]


control structuresgotoifwhilegotoifwhilegoto(1)/(2)/

instruction codesubprogramstatementcode blocksubroutine

(一)sequence

(二)selection

(三)repetition
NS

1960ALGOL60使FORTRANCOBOL197719661968gotogoto1970gotoIBM1969IBM

1970gotoFORTRANCOBOLBASIC

構造化設計[編集]

構造化設計の一例

structured designsubroutinedata structureprogram module

1974IBMstructured1975 -Jackson structured programming(JSP)-1975 -structured design(SD)-1978 -structured analysis(SA)-1981 -structured analysis and design technique(SADT)-1980 -structured systems analysis and design method(SSADM)-1989 -modern structured analysis-1980

abstraction1970

[]




1960[ 1]1960[4]goto[5][6]1959goto1960ALGOL60BEGINENDIFFORstructured statement[7]1966[8][6]



1968ACMGo To Statement Considered Harmful -goto-[9]goto[10][11][12][13]1968NATO[14][15]69Structured Programming --[3]稿well-structuredgoto[ 2]goto[16][15]



1960control structuresIBMIBMImproved Programming TechnologiesIPT[17][18]197071Structure theorem --[19][ 3][20]IPTStructuredIBM[21]IBM1974Structured[22][23][24]IBM



[25][16]使[25]12[26]

[]


Structured Programming1969NATO2001[27]

19671968goto19691972[28][22][17]1972Simula67

1968年の投書「goto文は有害」[編集]


1968ACMGo To Statement Considered Harmful[9]

(一)

(二)

(三)dynamic indextextual indexgotoif B then Aif B then A1 else A2while B repeat Arepeat A until B

(四)gotogoto使

(五)clause使gotogoto

goto使gotoA case against goto statementgoto[29]

goto197080goto[30]

1969[]


1969NATO稿Structured Programming[3]

program correctnessdemonstration

if1ifN2Nif1step-wise abstractionNcontrol structuresabstractionrefinement

joint-refinement1(pearl)1

1972[]


1972Structured Programming[31]structured programmingdata structuringhierarchical program structuresSimula67Simula67Simula671983C++What Is Object-Oriented Programming?[32]Simula67

1974Structured Programming with go to Statements[6]goto-lessgotogoto19801970BASICgoto使[ 4]

1967[]


[33]well-structured[34][ 5][35]well-formed formulawell-structured1967Towards Correct Programsmental tool

(一)enumeration 

(二)mathematical induction while

(三)abstraction 

[3][ 6][7][37][3][38][39][40][41](assertion)使[4][31][7][37][42][43][44][45][46][ 7][46][15][46][6][ 8]

構造化定理との関係[編集]


19701966Structure theoremIBM[20]IBMIPTImproved Programming Technologies使gotogoto

NANDSK2NANDfolk theorem[20]

[]


2001What led to Notes on Structured Programming(

1968A case against goto statement(gotoarticleCommunications of the ACMACM稿letter to the EditorThe goto statement considered harmful(gotogoto

[]





(一)^ [4]23

(二)^ "statements transferring control to labelled points"  goto [3]

(三)^ Harel,David (1980)."On Folk Theorems"(PDF)P381Harlan Mills "The Structure Theorem" [67]19721970

(四)^ BASIC1970BASICwikiquote:Edsger W. Dijkstra#How do we tell truths that might hurt? (1975)

(五)^ 

(六)^ D.使[36]

(七)^ [47]

(八)^  [43]

出典



(一)^  - IT. IT e-Words. 202061

(二)^  -  : ASCII.jp. yougo.ascii.jp. 202061

(三)^ abcdefE. W. Dijkstra, Structured Programming, In Software Engineering Techniques, B. Randell and J.N. Buxton, (Eds.), NATO Scientific Affairs Division, Brussels, Belgium, 1970, pp. 8488.

(四)^ abc, D. (1991). . . ISBN 4563007943 

(五)^ , "", , , 1990, pp.110-113. ISBN 4320023781

(六)^ abcdKnuth, D. E. (1974). Structured Programming with go to Statements Computing Surveys. ACM, New York, NY, USA 6 (4): 261-301. CiteSeerx: 10.1.1.103.6084. 

(七)^ abcN., /, , ,  , , 1978. 

(八)^ Böhm, C.; Jacopini, G (1966). Flow Diagrams, Turing Machines And Languages With Only Two Formation Rules. Communications of the ACM (ACM, New York, NY, USA) 9 (5): 366-371. CiteSeerx: 10.1.1.119.9119. 

(九)^ abE. Dijkstra (1968). Go To Statement Considered Harmful. Communications of the ACM 11 (3): 147-148. CiteSeerx: 10.1.1.132.875. 

(十)^ E.W. (1975), GO TO 1 go to , 7, , pp. 6-9 

(11)^ B., ed. (1975), GO TO 2 GO TO , bit () 7 (5): 10-26 

(12)^ , "GO TO 3 ", bit, Vol.7, Issue 5, 1975, pp.27-39, .

(13)^ p.45

(14)^ B. Randell and J.N. Buxton, (Eds.), Software Engineering, NATO Scientific Affairs Division, Brussels, Belgium, 1969.

(15)^ abcE.W. (1977), , () 18 (12): 1248-1256, NAID 110002753409 

(16)^ ab, "", bit, Vol.9, Issue 1, 1977, pp.4-6, . 

(17)^ ab, "", , , 1990, pp.113-142. 

(18)^  (2008), 40 (PDF), 49 (7): 777-784, NAID 110006830060, http://www.graco.c.u-tokyo.ac.jp/~tamai/pub/40yearsSE.pdf 

(19)^ Linger,R.C., Mills, H.D., Witt, B.I., Structured Programming: Theory and Practice, Addison-Wesly, 1979. 

(20)^ abcHarel, David (1980-07-01). On folk theorems. Communications of the ACM 23 (7): 379389. http://portal.acm.org/citation.cfm?doid=358886.358892. 

(21)^ Edward Nash Yourdon ed., "Introduction (Chief Programmer Team Management of Production Programming)", Classics in Software Engineering, YOURDON inc., 1979, pp.63-64. 

(22)^ ab (1975). . () 16 (10): 841-847. NAID 110002720277. 

(23)^ , , , , 1982. 

(24)^ D., C., "W", ,  ,  , BP, 1998, pp.61-74. ISBN 4822280462

(25)^ ab, "3", bit, Vol.9, Issue 1, 1977, pp.7-9, . 

(26)^ Edward Nash Yourdon, , ,  , BP, 1987. 

(27)^ What led to Notes on Structured Programming. 20201

(28)^ , (1975). . () 16 (10): 856-863. NAID 110002720279. 

(29)^ E.W. Dijkstra Archive: What led to "Notes on Structured Programming" (EWD1308). www.cs.utexas.edu. 2021816

(30)^ E.W., W.H.J., ,  , , 1991.

(31)^ abO.-J. Dahl and E. W. Dijkstra and C. A. R. Hoare, Structured Programming, Academic Press, London, 1972

(32)^ Bjarne Stroustrup, What Is Object-Oriented Programming?, In IEEE Software, Vol. 5, Issue. 3, IEEE Computer Society Press, Los Alamitos, CA, USA, 1988, pp. 10-20

(33)^ (1975) p.6

(34)^ D.使
 , " ", bit, Vol.7, Issue 7, 1975, pp.6-13, .

(35)^ 
E.W.Dijkstra, "Programming methodologies, their objectives and their nature", Structured Programming, Infotech state of the art report, 1976, pp.205-212, Infotech International.

(36)^  , " ", bit, Vol.7, Issue 7, 1975, pp.6-13, .

(37)^ abR.Geoff Dromey, How to Solve it by Computer, Prentice Hall, 1982. 

(38)^ E.W., , ACM,  , , 1989, pp.23-43. 

(39)^ E.W.Dijkstra, "The Programming Task Considered as an Intellectual Challenge", 1969.

(40)^ E.W.Dijkstra, "Concern for Correctness as a Guiding Principle for Program Composition", 1970.

(41)^ E.W.Dijkstra, "Programming as a discipline of mathematical nature", 1973.

(42)^ John C. Reynolds, The Craft of Programming, Prentice-Hall, 1981.

(43)^ ab B., ,  , , 1980. 

(44)^ , , , 1975. 

(45)^ E.W.Dijkstra, "Programming methodologies, their objectives and their nature", Structured Programming, Infotech state of the art report, 1976, pp.205-212, Infotech International.

(46)^ abcE.W.,   , , , 1983. 

(47)^  , , , 1997. 

参考文献[編集]

関連項目[編集]

関連人物

外部リンク[編集]