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