ÕýÔò±í´ïʽ£º
Àý2.1 ÔÚ½öÓÉ×Öĸ±íÖеÄ3¸ö×Ö·û×é³ÉµÄ¼òµ¥×Öĸ±í¡Æ={a, b, c}ÖУ¬¿¼ÂÇÔÚÕâ¸ö×Öĸ±íÉϵĽö°üÀ¨Ò»¸öbµÄËùÓд®µÄ¼¯ºÏ¡£
( a | c )* b ( a | c )*
Àý2.2 ÔÚÓëÉÏÃæÏàͬµÄ×Öĸ±íÖУ¬Èç¹û¼¯ºÏÊǰüÀ¨ÁË×î¶àÒ»¸öbµÄËùÓд®¡£
( a | c )* b? ( a | c )*
DFA£º
Àý2.6 ´®ÖнöÓÐÒ»¸öbµÄ¼¯ºÏµÄÕýÔò±í´ïʽ¶ÔÓ¦µÄDFAΪ£¿
Àý2.8 ¿ÆÑ§±íʾ·¨µÄÊý×Ö³£Á¿µÄÕýÔò±í´ïʽΪ£º nat = [0-9]+
signedNat = (+|-)? nat
number = signedNat(¡°.¡± nat)? (E signedNat)? ÈçºÎ»¶ÔÓ¦µÄDFA£¿
½â£ºÏÈÉèdigit = [0-9]£¬sig = (+|-)£¬µÃ£º
Àý2.9 ·ÇǶÌ××¢Ê͵ÄDFAÃèÊö¡£Pascal×¢ÊÍ{ ( ~} )* }¶ÔÓ¦µÄDFAΪ£º
C×¢ÊÍ /* ...( */²»Í¬Ê±³öÏÖ )... */ µÄDFAΪ£º
NFA£º
Àý2.12 ¸ù¾ÝThompson·½·¨½«ÕýÔò±í´ïʽ ab|aת»»ÎªNFA¡£
Àý2.13 ÀûÓÃThompson·½·¨»³öÕýÔò±í´ïʽletter(letter| digit)*¶ÔÓ¦µÄNFA¡£
Àý2.14 ÓëÕýÔò±í´ïʽa*Ïà¶ÔÓ¦µÄNFAΪ£º
NFAתDFA£º
Àý2.15 ½«ÏÂÃæµÄNFAת»»ÎªDFA£º
½â£º
Àý2.16 ½«ÏÂÃæµÄNFAת»»ÎªDFA£º
½â£º
Àý2.17 ÕýÔò±í´ïʽletter(letter| digit)*¶ÔÓ¦µÄNFAת»»³ÉDFA£º
½â£º
DFA×îС»¯£º
Àý2.18 ½«ÓëÕýÔò±í´ïʽletter(letter| digit)*Ïà¶ÔÓ¦µÄDFA×îС»¯£º£¨08¼¶µÄ´óÈýµÚ¶þѧÆÚ¿¼ÕâµÀ£©