U E D R , A S I H C RSS

Programming Pearls/Column4



1. Writing Correct Programms

  • For writing correct programms.
    • Problem Definition.
    • Algorithm Design.
    • Data Structure Selection.

1.1. The shallange of binary search

  • 100๋ช…˜ ”„๋กœŽ˜…”๋„ ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค—๊ฒŒ Binary search๋ฅผ งœ๋ณด๋ผ๊ณ  ‹œผฐ๋‹ค. ๊ฒฐ๊ณผ๋Š”? 90ผ„Šธ˜ ‚ฌ๋žŒ€ ๋ฒ„๊ทธ žˆ๋Š” Binary search๋ฅผ งฐ๋‹ค๊ณ  •œ๋‹ค.
  • ด นผ๋Ÿผ˜ ด•ผ๊ธฐ๋Š” —ฌ๊ธฐ„œ๋ถ€„ด–ด ธ ๋‚˜๊ฐ„๋‹ค.

1.2. Writing the Program

  • ๊ทธ๋ƒฅ Binary search ๋งŒ๋“ค–ด ๊ฐ€๋Š” ๊ณผ •„ ๋ณด—ฌฃผ๊ณ  žˆ๋‹ค.

1.3. Understanding the Program

  • ”„๋กœ๊ทธ๋žจ˜ correctness๋ฅผ Œ๋ณ„•˜๊ธฐ œ„•ด, ”„๋กœ๊ทธ๋žจ˜ ค‘๊ฐ„ค‘๊ฐ„— assert๋ฅผ ง‘–ด๋„ฃ๊ณ  žˆ๋‹ค.
  • Loop—„œ˜ correctness
    • Initialization
    • Preservation
    • Termintion
  • ”„๋กœ๊ทธ๋žจ„ •œ„•œ„”ฉ ๋”ฐ๋ผ ๋‚ด๋ ค๊ฐ€๋ฉด„œ Loop—„œ๋Š” œ„˜ ›น™„  šฉ•ด corret•œ๊ฐ€๋ฅผ ๊ฒ€‚ฌ•˜๊ณ  žˆ๋‹ค.

1.4. Principles

  • Verification„ œ„•œ general•œ principles„  œ๊ณต•˜๊ณ  žˆ๋‹ค.
    • Assertions : ž…๋ ฅ, ๋ณ€ˆ˜, ถœ๋ ฅ๊ฐ„˜ ๊ด€๊ณ„๋Š” ”„๋กœ๊ทธ๋žจ˜ ƒƒœ๋ฅผ ๋ฌ˜‚ฌ•ดค€๋‹ค. assertion€ ๊ทธ๋“ค˜ ๊ด€๊ณ„๋ฅผ  •™•žˆ ๋ง•ดค€๋‹ค.
    • Sequential Control Structures : ด ๋ฌธžฅ ๋‹คŒ—  € ๋ฌธžฅ. ๊ทธ ‚ฌด— assertion„ ง‘–ด๋„ฃ๋Š”๋‹ค. ๊ทธ๋Ÿผ ”„๋กœ๊ทธ๋žจ ๋ฌธžฅ •˜๋‚˜•˜๋‚˜˜ ๊ฐ๊ฐ˜ „–‰ƒ™ฉ„ ฒดฌ• ˆ˜๊ฐ€ žˆ๋‹ค.
    • Selection Control Structures : กฐ๊ด๋ฌธ—„œ “ฐธ๋‹ค. ๊ฐ๊ฐ˜ กฐ๊ด๋งˆ๋‹ค, ™•‹คžˆ ๋งž๋‹ค๋Š” assertion„ ง‘–ด๋„–ดค€๋‹ค.
    • Iteration Control Structures : œ„—„œ๋„ ๋ง–ˆ๋“ฏด, ˆ๊ธฐ™”, œ ง€, ข…๋ฃŒกฐ๊ด ™•‹ค•œ๊ฐ€๋ฅผ ฒดฌ•ด•ผ•œ๋‹ค.
    • Functions : precondition - •จˆ˜ ‹œž‘  „— ๋ณดžฅ๋˜–ด•ผ •  กฐ๊ด -๊ณผ postcondition - •จˆ˜ ๋๋‚ ๋•Œ— ๋ณดžฅ๋˜–ด•ผ •  กฐ๊ด -„ ๋ช…‹œ•ดค€๋‹ค.(...) ด๋Ÿฌ•œ ๋ฐฉ๋ฒ•„ "Programming by contract"๋ผ •œ๋‹ค.

1.5. The Roles of Program Verification

  • ๊ฐ€žฅ ๋งŽด “ฐ๋Š” verification๋ฐฉ๋ฒ•€ Test Caseด๋‹ค.
  • ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐ•˜๊ฒŒ œ ง€•˜๋Š” ๊ฒƒ€ ๋Œ€๊ฐœ correctness˜ —ด‡ ๊ฐ€ ๋œ๋‹ค.


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:24:03
Processing time 0.0123 sec