๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๊ตฌ๋ฌธ์˜ ํ‘œํ˜„ - BNF, EBNF, ๊ตฌ๋ถ„ ๋„ํ‘œ ํ‘œํ˜„๋ฒ• BNF ํ‘œํ˜„๋ฒ• BNF(Backus-Naur Form)๋Š” Algol์˜ ๊ตฌ๋ฌธ์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์ปค์Šค(Backus)์™€ ๋‚˜์šฐ์–ด(Naur)๊ฐ€ ์‚ฌ์šฉํ•œ ํ‘œํ˜„๋ฒ•์ด๋‹ค. BNF ๊ธฐํ˜ธ ๋ฉ”ํƒ€ ๊ธฐํ˜ธ BNF๋Š” ์„ธ ๊ฐ€์ง€ ๋ฉ”ํƒ€ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฉ”ํƒ€ ๊ธฐํ˜ธ ์˜๋ฏธ ::= ์ •์˜ | ํƒ์ผ(OR) ๋น„๋‹จ๋ง ๊ธฐํ˜ธ - BNF์—์„œ ๊ทœ์น™์€ ๋ฉ”ํƒ€ ๊ธฐํ˜ธ ::=๋ฅผ ์ด์šฉํ•˜์—ฌ ํ‘œํ˜„ํ•œ๋‹ค. - ::=๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ์„ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ •์˜ํ•œ๋‹ค. - ::=์˜ ์™ผ์ชฝ์—๋Š” ํ•˜๋‚˜์˜ ๋น„๋‹จ๋ง ๊ธฐํ˜ธ๊ฐ€, ์˜ค๋ฅธ์ชฝ์—๋Š” ๊ธฐํ˜ธ๋“ค์„ ํ™œ์šฉํ•˜์—ฌ ์ •์˜ํ•˜๋Š” ๋‚ด์šฉ์ด ๋‚˜์™€์•ผ ํ•œ๋‹ค. ๋‹จ๋ง/๋น„๋‹จ๋ง ๊ธฐํ˜ธ ๊ธฐํ˜ธ ์˜๋ฏธ ์˜ˆ ๋‹จ๋ง ๊ธฐํ˜ธ ๋ฉ”ํƒ€ ๊ธฐํ˜ธ ๋กœ ๋ฌถ์ธ ๊ธฐํ˜ธ , , , ... ๋น„๋‹จ๋ง ๊ธฐํ˜ธ ๋น„๋‹จ๋ง ๊ธฐํ˜ธ ๋ฐ ๋ฉ”ํƒ€ ๊ธฐํ˜ธ๊ฐ€ ์•„๋‹Œ ๊ธฐํ˜ธ A, B, a, b, 0, 1, if, then, +, -, ... BNF์˜ ์˜ˆ ::=.. 2019. 10. 16.
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ์„ค๊ณ„ ์›์น™ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์š”๊ตฌ์‚ฌํ•ญ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด์—์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ์–ด๋–ค ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งŒ์กฑํ•ด์•ผ ํ• ๊นŒ? ๋จผ์ € ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ž์‹ ์˜ ์•„์ด๋””์–ด๋ฅผ ์‰ฝ๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์•ผํ•œ๋‹ค. ๋˜ํ•œ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์€ ์‰ฝ๊ฒŒ ์œ ์ง€๋ณด์ˆ˜ ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ์ปดํ“จํ„ฐ์—์„œ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. (1) ํ‘œํ˜„ ํ’๋ถ€์„ฑ(expressiveness): ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ์•„์ด๋””์–ด๋ฅผ ์‰ฝ๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. (2) ์œ ์ง€ ๋ณด์ˆ˜์„ฑ(maintainability): ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์€ ์‰ฝ๊ฒŒ ์œ ์ง€๋ณด์ˆ˜ํ•  ์ˆ˜ ์žˆ๋‹ค. (3) ์‹คํ–‰ ๊ฐ€๋Šฅ์„ฑ(executability): ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์ด ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์„ค๊ณ„ ์›์น™ ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ๊ณผ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งŒ์กฑํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ๋ คํ•ด์•ผํ•˜๋Š” ์„ค๊ณ„ ์›์น™ ์ค‘ ๊ณตํ†ต์ ์œผ๋กœ ๊ฑฐ๋ก ๋˜๋Š” ๊ฒƒ์€.. 2019. 10. 16.
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ํ‰๊ฐ€ ๊ธฐ์ค€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋Œ€ํ‘œ์ ์ธ ํ‰๊ฐ€ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์Œ์˜ 9๊ฐ€์ง€๋ฅผ ๊ผฝ์„ ์ˆ˜ ์žˆ๋‹ค. ํ‰๊ฐ€ ๊ธฐ์ค€ ์˜๋ฏธ ์ž‘์„ฑ๋ ฅ ํ”„๋กœ๊ทธ๋žจ ์ˆ˜์‹์ด๋‚˜ ๋ฌธ์žฅ, ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์„ฑ ๊ฐ€๋…์„ฑ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ๋ณด๊ณ  ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํŠน์„ฑ ์‹ ๋ขฐ์„ฑ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์ด ์˜ค๋ฅ˜์— ๋น ์ง€๋Š” ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ด๋Š” ํŠน์„ฑ ์ง๊ต์„ฑ ์–ธ์–ด ๊ธฐ๋Šฅ์ด ์„œ๋กœ ๊ฐ„์„ญํ•˜์ง€ ์•Š๊ณ  ์ž์œ ๋กญ๊ฒŒ ์กฐํ•ฉ๋  ์ˆ˜ ์žˆ๋Š” ํŠน์„ฑ ์ผ๊ด€์„ฑ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ํŠน์„ฑ ํ™•์žฅ์„ฑ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์„ฑ ํšจ์œจ์„ฑ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์ด ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํŠน์„ฑ ์œ ์—ฐ์„ฑ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ์„ ์œ ์—ฐํ•˜๊ฒŒ ์ˆ˜์šฉํ•˜๋Š” ํŠน์„ฑ ์ด์‹์„ฑ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค๋ฅธ ์‹คํ–‰ ํ™˜๊ฒฝ์œผ๋กœ ์ด์ „ํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์„ฑ ์ž‘์„ฑ๋ ฅ ํ”„๋กœ๊ทธ๋žจ ์ˆ˜์‹์ด๋‚˜ ๋ฌธ์žฅ, ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š”.. 2019. 10. 16.