Backus Naur Form

 

........ ´ëºÎºÐÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ¹®¹ý (syntax) ¸¦ ¹¦»çÇϴµ¥ »ç¿ëµÇ´Â ¹®¹ý ...........

BNF (Backus-Naur form) ; BNF´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ Á¤ÀÇÇϱâ À§ÇÑ ÃÖÃÊÀÇ ¸ÞŸ ¾ð¾î¿´´Ù. ALGOL 58 ¾ð¾îÀÇ ±¸¹® ±â¼úÀ» À§ÇØ 1959³â¿¡ John Backus¿¡ ÀÇÇØ Ã³À½ µµÀԵǾúÀ¸¸ç, Peter Naur¿¡ ÀÇÇØ °­È­µÇ¾î ALGOL 60À» Á¤ÀÇÇϴµ¥ »ç¿ëµÇ¾ú´Ù. BNF´Â ±¸¹® ¿ä¼Ò¸¦ ³ªÅ¸³»´Â ±âÈ£ < >, µÑ Áß ÇϳªÀÇ ¼±ÅÃÀ» ÀǹÌÇÏ´Â ±âÈ£ ¡«, Áº¯Àº ¿ìº¯¿¡ ÀÇÇØ Á¤ÀǵÊÀ» ÀǹÌÇÏ´Â ±âÈ£ ::= µîÀÇ ¸ÞŸ ±âÈ£µéÀ» »ç¿ëÇÏ¿© ±ÔÄ¢À» Ç¥ÇöÇÑ´Ù. BNFÀÇ ¿øÇüÀº ¿ø·¡ "Backus normal form"À̾úÀ¸³ª, Peter NaurÀÇ À̸§À» ³Ö¾î ¿À´Ã³¯°ú °°ÀÌ ¹Ù²î¾ú´Ù.

Backus-Naur form (BNF) (¶Ç´Â Backus normal form À¸·Î ¾Ë·ÁÁ® ÀÖ´Ù) Àº ¹®¸Æ ÀÚÀ¯ ¹®¹ý (context free grammar) À» Ç¥ÇöÇϱ⠻ç¿ëµÇ´Â Çü½ÄÀû metasyntax (¹®¹ýÀ» À§ÇÑ ¹®¹ý) ÀÌ´Ù : Áï ´Ù¸¥ Çü½Ä ¾ð¾î (Formal Language) ¸¦ ¹¦»çÇÏ´Â ÇϳªÀÇ Çü½ÄÀû ¹æ¹ýÀÌ´Ù. ±×°ÍÀº ÄÄÇ»ÅÍ ÇÁ·Î±×·¥ ¾ð¾î, command sets ±×¸®°í communication protocols ÀÇ ¹®¹ýÀ» À§ÇÑ Ç¥±â¹ýÀ¸·Î ³Î¸® »ç¿ëµÈ´Ù. ±×·¯³ª ±×°ÍÀº Á»Ã³·³ ¾îµ¥¼­µµ ¹®¼­È­ µÇ¾îÀÖÁö ¾Ê¾Æ¼­, Á¶±Ý¾¿ Á¶±Ý¾¿ ¹è¿ö³ª°¡´Â ¼ö¹Û¿¡ ¾ø´Ù. ±× º¯ÇüÀ¸·Î¼­ ¿¹¸¦µé¸é ABNF °°Àº °ÍÀº ¹®¼­È­ µÇ¾îÀÖ´Ù. ¿ø·¡´Â John Backus °¡ ¸í¸íÇÏ¿´Áö¸¸ ³ªÁß¿¡ (Donald Knuth °¡ Á¦¾ÈÇÏ¿©) Peter Naur ÀÇ À̸§ÀÌ Ãß°¡µÇ¾ú´Ù. Áï Algol 60 À» À§ÇÑ ±ÔÄ¢À» âÁ¶ÇÑ °Í°ú °°ÀÌ, ÁÖ·Î ÄÄÆÄÀÏ·¯ ¼³°è ±â¼ú¿¡ À־, µÑ´Ù ÄÄÇ»ÅÍ°úÇÐÀÇ °³Ã´ÀÚÀÌ´Ù.

¿¹Á¦) ¹Ì±¹ÀÇ ¿ìÆí¹° ÁÖ¼Ò¸¦ À§ÇØ BNF ¸¦ »ç¿ëÇغ¸ÀÚ

ÀÌ°ÍÀ» ¿µ¾î·Î ¹ø¿ªÇÏ¸é ´ÙÀ½°ú °°´Ù.

"postal-address ´Â name-part ¿Í µÚµû¸£´Â street-address part, zip-code part ·Î ±¸¼ºµÈ´Ù.
personal-part ´Â first name ¶Ç´Â initial, dot ·Î ±¸¼ºµÈ´Ù.
name-part ´Â  personal-part, last name, optional "jr-part" (Jr., Sr., or dynastic number), end-of-line ·Î ±¸¼ºµÇ°Å³ª  personal part , name part ·Î ±¸¼ºµÈ´Ù.(ÀÌ ±ÔÄ¢Àº BNF ¿¡¼­ÀÇ Àç±ÍÀÇ »ç¿ëÀ» º¸¿©ÁÖ´Â °ÍÀÌ¸ç ¿©·¯°³ÀÇ first, middle, initial À» »ç¿ëÇÏ´Â »ç¶÷µéÀÇ °æ¿ì¸¦ À§ÇÑ °ÍÀÌ´Ù)
street address ´Â optional apartment specifier, house number, street number ·Î ±¸¼ºµÈ´Ù.   
zip-part ´Â town-name, comma, state code, ZIP-code, end-of-line À¸·Î ±¸¼ºµÈ´Ù."

¸¹Àº °Íµé (personal-part, apartment specifier, ZIP-code ÀÇ Çü½Ä°°Àº) ÀÌ ¸í±âµÇ¾î ÀÖÁö ¾Ê´Ù. ÀÌ·¯ÇÑ ¾îÈÖÀû µðÅ×ÀÏÀº ¸Æ¶ôÀ» º¸°Å³ª °¡±îÀÌ¿¡ ¸í±âµÈ °ÍÀ¸·ÎºÎÅÍ ¾Ë ¸¸ÇÑ °ÍÀ¸·Î ÃßÁ¤µÈ´Ù.

º¯Çü .......... BNF ÀÇ ¸¹Àº º¯Çü°ú È®ÀåÀÌ Àִµ¥, ¿¹¸¦µé¸é "*" or "+" °°Àº regular expression ¿ÍÀϵå Ä«µå °°Àº °ÍµéÀ» Æ÷ÇÔÇÏ°í ÀÖ´Â °ÍµéÀÌ´Ù. Extended Backus-Naur form (EBNF) µµ ÈçÈ÷ »ç¿ëµÇ´Â °ÍÀÌ´Ù. À§¿¡¼­µç ¿¹Á¦´Â »ç½Ç ALGOL 60 À» À§ÇØ ¹ß¸íµÈ ¼ø¼öÇÑ ÇüÅ´ ¾Æ´Ï´Ù. "[ ]" Àº ¸î ³âÈÄ¿¡ IBM ¿¡¼­ PL/l Á¤ÀÇ¿¡ ¼Ò°³µÈ °ÍÀ¸·Î Áö±ÝÀº ³Î¸® ÀνĵǾî ÀÖ´Ù. Augumented BNF (ABNF) ´Â ¶Ç´Ù¸¥ È®ÀåÀÌ´Ù. ................. (Wikipedia : Backus-Naur form)

BNF´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ Á¤ÀÇÇϱâ À§ÇÑ ÃÖÃÊÀÇ ¸ÞŸ ¾ð¾î (¾ð¾î¸¦ Á¤ÀÇÇϱâ À§ÇÑ ¾ð¾î) ¿´´Ù. ALGOL 58 ¾ð¾îÀÇ ±¸¹® ±â¼úÀ» À§ÇØ 1959³â¿¡ John Backus ¿¡ ÀÇÇØ Ã³À½ µµÀԵǾúÀ¸¸ç, Peter Naur¿¡ ÀÇÇØ °­È­µÇ¾î ALGOL 60À» Á¤ÀÇÇϴµ¥ »ç¿ëµÇ¾ú´Ù. BNF´Â ±¸¹® ¿ä¼Ò¸¦ ³ªÅ¸³»´Â ±âÈ£ < >, µÑ Áß ÇϳªÀÇ ¼±Åà (or) À» ÀǹÌÇÏ´Â ±âÈ£ |, Áº¯Àº ¿ìº¯¿¡ ÀÇÇØ Á¤ÀÇµÊ (~·Î Á¤ÀǵÊ) À» ÀǹÌÇÏ´Â ±âÈ£ ::= µîÀÇ ¸ÞŸ ±âÈ£µéÀ» »ç¿ëÇÏ¿© ±ÔÄ¢À» Ç¥ÇöÇÑ´Ù. BNFÀÇ ¿øÇüÀº ¿ø·¡ "Backus normal form"À̾úÀ¸³ª, Peter NaurÀÇ À̸§À» ³Ö¾î ¿À´Ã³¯°ú °°ÀÌ ¹Ù²î¾ú´Ù. .............. (ÅÒ½º : BNF (Backus-Naur Form))

Backus-Naur ±âÈ£(º¸´Ù ÀϹÝÀûÀ¸·Î BNF³ª Backus-Naur Æû)´Â ¾ð¾îÀÇ Æ¯Â¡À» ¼öÇÐÀûÀ¸·Î Ç¥ÇöÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù ..... BNF´Â ¼öÇÐÀûÀÎ °ÔÀÓó·³ Á¤·ÄµË´Ï´Ù. ´ç½ÅÀº ±âÈ£(½ÃÀÛ±âÈ£¿Í ¿¹Á¦¿¡¼­ º¸Åë S¶ó°í ºÒ¸®´Â)·Î ½ÃÀÛÇÕ´Ï´Ù. ±×¸®°í ±ÔÄ¢¿¡ ÀÇÇØ ÀÌ ±âÈ£µéÀ» Àç¹èÄ¡ ÇÒ ¼ö ÀÖ½À´Ï´Ù. BNF ¹®¹ýÀ¸·Î Á¤ÀÇµÈ ¾ð¾î´Â ´ÙÀ½ÀÇ ±ÔÄ¢µé¿¡ ÀÇÇؼ­¸¸ ¸ðµç ¹®ÀÚ¿­À» »ý¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ±ÔÄ¢À» »ý¼º ±ÔÄ¢À̶ó ºÎ¸¨´Ï´Ù. ±×¸®°í ´ÙÀ½°ú °°½À´Ï´Ù.

»ý¼º ±ÔÄ¢Àº := ÀÇ ¿ÞÂÊ¿¡ ÀÖ´Â ±âÈ£´Â ¿À¸¥ÂÊ¿¡ ÀÖ´Â ¼±Åõé Áß Çϳª·Î Àç¹èÄ¡ µÈ´Ù´Â °ÍÀ¸·Î °£´ÜÇÏ°Ô ³ªÅ¸³³´Ï´Ù. ¼±ÅõéÀº | ·Î ±¸ºÐµË´Ï´Ù. (¿©±â¼­ÀÇ º¯È­´Â := ´ë½Å¿¡ ::=À» »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ±×·¯³ª ±× Àǹ̴ °°½À´Ï´Ù.) ¼±ÅõéÀº º¸Åë ±âÈ£¿Í Å͹̳ÎÀ̶ó°í ºÒ¸®´Â °ÍÀ¸·Î ÀÌ·ç¾îÁý´Ï´Ù. Å͹̳ÎÀº ±âÈ£°¡ ¾Æ´Ñ ¸¶Áö¸· ¹®ÀÚ¿­ÀÇ °£´ÜÇÑ Á¶°¢ÀÔ´Ï´Ù. ÀÌ°ÍÀ» À§ÇØÇÑ »ý¼º ±ÔÄ¢ÀÌ ¾ø±â ¶§¹®¿¡ Å͹̳ÎÀ̶ó°í ºÎ¸¨´Ï´Ù. À̰͵éÀº »ý¼º 󸮸¦ ¸¶Ä¨´Ï´Ù. (±âÈ£µéÀº ÀÚÁÖ non-terminal À̶ó°í ºÒ¸³´Ï´Ù.)

BNF ¹®¹ýÀÇ ´Ù¸¥ º¯È­´Â ±âÈ£µé°ú ±¸º°µÇ´Â ÀÎ¿ë ºÎÈ£·Î Å͹̳ÎÀ» µÑ·¯½Î´Â °ÍÀÔ´Ï´Ù. ¾î¶² BNF ¹®¹ýÀº µ¶ÀÚ°¡ Ãß·ÐÇϱâ À§ÇØ ´Ù¸¥ ¹®¹ýµéÀÌ ¶°³ª´Â µ¿¾È ±âÈ£°¡ °¡Áö°í Àִ°Ϳ¡ ÀÇÇØ ¾îµð¼­ °ø¹éÀÌ Çã¿ëµÇ´ÂÁö¸¦ ºÐ¸íÇÏ°Ô º¸¿©ÁÝ´Ï´Ù......

BNF¿¡´Â Ưº°ÇÑ ±âÈ£°¡ ÀÖ½À´Ï´Ù. @´Â Áö¿ï¼ö ÀÖ´Â ±âÈ£¶ó´Â ¶æÀ» °¡Áý´Ï´Ù. ´ç½ÅÀÌ @ ±âÈ£¸¦ ÀçÁ¤ÀÇ ÇÏ·Á¸é ´ç½ÅÀº ±âÈ£¸¦ Áö¿ì´Â °ÍÀ¸·Î ÇÒ¼ö ÀÖ½À´Ï´Ù. ÀÌ°ÍÀº ¾î¶² °æ¿ì¿¡´Â ÀÌ ²Ç¼ö¸¦ »ç¿ëÇÏÁö ¾Ê°í´Â ÀçÁ¤ÀÇ Ã³¸®¸¦ ³¡³»±â°¡ ¾î·Æ±â ¶§¹®¿¡ À¯¿ëÇÕ´Ï´Ù.

±×·¸°Ô ¾ð¾î´Â »ý¼º ±ÔÄ¢°ú ÇÔ²² ´ç½ÅÀÌ »ý¼ºÇÒ ¼ö ÀÖ´Â ¸ðµç ¹®ÀÚ¿­ ÁýÇÕÀÇ ¹®¹ý¿¡ ÀÇÇØ ¼³¸íµË´Ï´Ù. ¹®ÀÚ¿­ÀÌ ±ÔÄ¢À» »ç¿ëÇÑ ¾î¶°ÇÑ ¹æ¹ýÀ¸·Îµµ »ý¼ºÇÒ ¼ö ¾ø´Â ¹®ÀÚ¿­À̶ó¸é ¾ð¾î¿¡¼­ Çã¿ëµÇÁö ¾Ê½À´Ï´Ù. .................... (Gnome Çѱ¹ À§Å° : BNF)

term :

ÄÄÇ»ÅÍ (Computer)   ¾ð¾î (Language)   Backus Naur Form (BNF)   John Backus   Peter Naur

site :

Backus Normal Form vs. Backus Naur Form (long) : µÎ°¡Áö À̸§°ú °ü·ÃµÈ ¿ª»ç

BNF and EBNF: What are they and how do they work?

About BNF Notation : BNF ¾ð¾î¿¡ ´ëÇÑ ¼Ò°³