BNFºÍEBNFµÄº¬Òå¼°ÆäÓ÷¨(3)

2020-03-27 02:09

ÎÒÃÇ´ÓÊäÈëÖжÁÈ¡¡°.¡±²¢ÊÔͼ»¹Ô­Ëü£¬µ«ÊÇʧ°ÜÁË¡£ D DL DL .

Ëû²»ÄÜ»¹Ô­³ÉÆäËüµÄ¶«Î÷£¬ËùÒÔÎÒÃǼÌÐø¶ÁÈ¡ÆäËüÊäÈë¡°1¡±£¬²¢°ÑËü»¹Ô­³ÉD£¬ÔÚ¶ÁÈ¡ÏÂÒ»¸öÊäÈë¡°4¡±, ¡°4¡±Ò²¿ÉÒÔ»¹Ô­³ÉD£¬ÔÙ»¹Ô­³ÉDL£¬È»ºó£¬¡°D DL¡±ÐòÁпÉÒÔ½øÒ»²½»¹Ô­³ÉDL¡£ DL . DL . 1 DL . D DL . D 4 DL . D D DL . D DL DL . DL

¿´Ò»ÏÂÓï·¨¾Í»á·¢ÏÖFNÇ¡ºÃÄܹ»»¹Ô­¡°DL.DL¡±ÐòÁУ¬ÓÚÊǽ«Æä»¹Ô­¡£FNÊÇ´ÓS²úÉúµÄ£¬ËùÒÔFN¿ÉÒÔ»¹Ô­³ÉS£¬µ½´ËΪֹ¾ÍÍê³ÉÁ˽âÎö¡£ DL . DL FN S

Ò²ÐíÄã×¢Òâµ½ÎÒÃÇ¿ÉÒÔÏÈÔÚ×ö»¹Ô­£¬Ò²¿ÉÒԵȵ½Óжà¸ö·ûºÅÔÚ×ö²»Í¬µÄ»¹Ô­¡£ÕâÖÖÒÆÎ»»¹Ô­½âÎöËã·¨ÓÐÐí¶à¸´Ôӱ仯£¬°´ÕÕ¸´Ôӳ̶Ⱥ͹¦ÄÜ·ÖΪLR(0)¡¢SLR¡¢LALRºÍLR(1)¡£LR(1)ÐèҪ̫´óµÄ½âÎö±í£¬ËùÒÔLALRÊÇ×î³£ÓõÄËã·¨£¬

¶øSR(0)ºÍSLR¶Ô¶àÊý±à³ÉÓïÑÔ¶¼²»¹»Ç¿´ó¡£

LALR ºÍLR(1)ʵÔÚÌ«¸´ÔÓÁË£¬ÕâÀïû·¨ÌÖÂÛ£¬µ«ÄãÒѾ­Á˽âÁËÆä»ù±¾Ë¼Ïë¡£

LL»¹ÊÇLR£¿

Õâ¸öÎÊÌâÒѾ­±»È˻شðÁË£¬ÕâÀïÒýÓÃËûµÄÐÂÏûÏ¢£º

Ï£Íû²»ÒªÒý·¢ÕùÒ飬Ê×ÏÈ£¬µ±Frank¿´µ½Õâ¸öʱ²»Òª´òÎÒ£¨ÎÒÀϰå¾ÍÊÇFrank DeRmer£¬LALR½âÎöµÄ´´Ê¼ÈË¡­£©¡£

£¨½èÓÃÒ»ÏÂFischer&LeBlanc's \µÄÕªÒª£© ¼òµ¥ÐÔSimplicity - - LL ͨÓÃÐÔGenerality - - LALR ²Ù×÷Actions - - LL ´íÎó»Ö¸´Error repair - - LL ±í´óСTable sizes - - LL

½âÎöËÙ¶ÈParsing speed - - comparable (me: and tool-dependent) ¼òµ¥ÐÔ- - LL Õ¼ÓÅ ==========

LL½âÎöÆ÷¸ü¼òµ¥£¬Èç¹ûÒªµ÷ÊÔÒ»¸ö½âÎöÆ÷£¬¿¼ÂǵݹéϽµ½âÎöÆ÷£¨±àдLL½âÎöÆ÷µÄ³£Ó÷½·¨£©Òª±ÈLALR½âÎöÆ÷µÄ±í¼òµ¥¶àÁË¡£ ͨÓÃÐÔ - - LALR Õ¼ÓÅ ==========

Ôڹ淶¶¨ÒåµÄ¼òÒ×ÐÔ£¬LALRÇáËÉȡʤ¡£LLºÍLALRµÄ×î´ó²»Í¬ÊÇLLÓï·¨±ØÐëÓÃ×óÒò×Ó·¨ÔòºÍÏû³ý×óµÝ¹é¡£

ÌáÈ¡×óÒò×ÓÊDZØÐëµÄ£¬ÒòΪLL½âÎöÆ÷ÐèÒª»ùÓڹ̶¨µÄÊäÈëÊýÑ¡ÔñÌæ»»¡£ ×󻨹éÊÇÓÐÎÊÌâµÄ£¬ÒòΪ¹æÔòǰµ¼±ê¼Ç×ÜÊÇͳһ¹æÔòµÄǰµ¼±ê¼Ç¡£Õ⽫µ¼ÖÂÎÞÇîµÝ¹é¡£

²Î¿¼ÒÔÏÂÁ¬½ÓÁ˽âLALRת»»³ÉLLÓï·¨µÄ·½·¨£º http://www.jguru.com/thetick/articles/lalrtoll.html

Ðí¶àÓïÑÔÒѾ­ÓÐÁËLALRÓï·¨£¬µ«»¹ÐèÒª·­Òë¡£Èç¹ûÓïÑÔûÓÐÕâÑùµÄÓï·¨£¬Ð´Ò»¸öLLÓï·¨Ò²²»ÊÇʲôÄÑÊ¡£ ²Ù×÷ÐÔ - - LL Õ¼ÓÅ =======

ÔÚLL½âÎöÆ÷ÖпÉÒ԰ѲÙ×÷·ÅÔÚÈκεط½¶ø²»»áÒýÆð³åÍ»¡£ ´íÎóÐÞ¸´ - - LL Õ¼ÓÅ ============

LL½âÎöÆ÷¾ßÓзḻµÄ»·¾³ÐÅÏ¢£¨ÉÏÏÂÎÄÐÅÏ¢£©£¬¶ÔÐÞ¸´´íÎóºÜÓаïÖú¶ø·Ç±¨¸æËùÎÞ¡£ ±í´óС - - LL ===========

¼ÙÉèÄã±àдһ¸ö±íÇý¶¯LL½âÎöÆ÷£¬ËüµÄ±íÖ»ÓÐÆäËûµÄÒ»°ë´óС¡££¨Æ½ÐĶøÂÛ£¬Óкܶ෽·¨ÓÅ»¯LALR±í£¬Ê¹Æä±äС£© ½âÎöËÙ¶È ¨C ±È½Ï(ÎҵĹ۵㣺ÊÓ¹¤¾ß¶ø¶¨)

--Scott Stanchfield in article <33C1BDB9.FC6D86D3@scruz.net> on comp.lang.java.softwaretools Mon, 07 Jul 1997.

¸ü¶àÐÅÏ¢

John AycockÓÃPython¿ª·¢ÁËÒ»¸ö·Ç³£ºÃ¶øÇÒ¼òµ¥Ò×ÓõĽâÎö¿ò¼Ü½Ð×öSPARK ,ÓÿɶÁÐԷdz£Ç¿µÄÂÛÎÄÃèÊö¡£

±àÒëÆ÷ºÍ½âÎöÆ÷·½ÃæÈ¨Íþ¹¤×÷ÊÇ'The Dragon Book'£¬Ò²½ÐCompilers : Principles, Techniques, and Tools£¬×÷ÕßAho, Sethi and Ullman¡£Çë×¢ÒâÕâÊÇÒ»±¾¸ß¼¶µÄÊýѧÊé¡£

ÔÚÏßµÄÃâ·Ñ×ÊÁϽϺõÄÊÇÕâ±¾£ºhttp://www.cs.vu.nl/~dick/PTAPG.html¡£ Frank BoumphreyµÄanother EBNF tutorial£¬£¨http://www.hypermedic.com/style/xml/ebnf.htm£© Henry BakerµÄan article about parsing in Common Lisp

£¨http://home.pipeline.com/~hbaker1/Prag-Parse.html £©³ÊÏÖµÄÊÇÒ»¸ö¼òµ¥¡¢¸ßЧ¶øÇÒÊ®·Ö·½±ãµÄ½âÎö¿ò¼Ü¡£·½·¨ÀàËÆÓÚ±àÒëÆ÷±àÒëÆ÷£¬µ«ËüÒÀÀµÓÚÒ»¸öÊ®·ÖÇ¿´óµÄCommon Lispºêϵͳ¡£

¶¨ÒåBNFÓï·¨µÄ¾ä·¨¹æÔòÔÚRFC 2234£¨http://www.ietf.org/rfc/rfc2234.txt£©ÖпÉÒÔÕÒµ½£¬the ISO 14977 standardÖÐÒ²ÓС£

¸½Â¼

ÖÂл Thanks to:

? Jelks Cabaniss, for encouraging me to turn the news article into a web article,

and for providing very useful criticism of the article once it appeared in web form.

? C. M. Sperberg-McQueen for extra historical information about the name of BNF.

? Scott Stanchfield for writing the great comparison of LALR and LL. I have asked for permission to quote this, but have received no reply, unfortunately. ? James Huddleston for correcting me on John Backus' name.


BNFºÍEBNFµÄº¬Òå¼°ÆäÓ÷¨(3).doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ ÏÂÔØÊ§°Ü»òÕßÎĵµ²»ÍêÕû£¬ÇëÁªÏµ¿Í·þÈËÔ±½â¾ö£¡

ÏÂһƪ£ºÄÏ»ª´óѧMATLABʵÑ鱨¸æ1

Ïà¹ØÔĶÁ
±¾ÀàÅÅÐÐ
¡Á ×¢²á»áÔ±Ãâ·ÑÏÂÔØ£¨ÏÂÔØºó¿ÉÒÔ×ÔÓɸ´ÖƺÍÅŰ棩

ÂíÉÏ×¢²á»áÔ±

×¢£ºÏÂÔØÎĵµÓпÉÄÜ¡°Ö»ÓÐĿ¼»òÕßÄÚÈݲ»È«¡±µÈÇé¿ö£¬ÇëÏÂÔØÖ®Ç°×¢Òâ±æ±ð£¬Èç¹ûÄúÒѸ¶·ÑÇÒÎÞ·¨ÏÂÔØ»òÄÚÈÝÓÐÎÊÌ⣬ÇëÁªÏµÎÒÃÇЭÖúÄã´¦Àí¡£
΢ÐÅ£º QQ£º