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.0120 sec