(1)正則表達式理論基礎(chǔ)與語法樹構(gòu)建:深入理解正則表達式的基本語法元素:字符匹配、重復(fù)(*、+、?)、選擇(|)、分組(())。學(xué)習(xí)將正則表達式解析為語法樹的方法,掌握以正則表達式a(blcdc)+為例的語法樹構(gòu)建過程。掌握ε-NFA(帶空轉(zhuǎn)移的非確定有限自動機)的概念及其構(gòu)造方法,學(xué)習(xí)符號a的NTA(非確定測試自動機)生成原理。
(2)正則表達式運算的NFA構(gòu)造:掌握正則表達式基本運算對應(yīng)的NFA構(gòu)造規(guī)則。學(xué)習(xí)選擇運算(s|t)的NFA構(gòu)造方法,理解并聯(lián)狀態(tài)的分支選擇機制。掌握連接運算(st)的NFA構(gòu)造方法,理解串聯(lián)狀態(tài)的狀態(tài)轉(zhuǎn)移。學(xué)習(xí)重復(fù)運算(s*)的NFA構(gòu)造方法,掌握克林閉包對應(yīng)的循環(huán)狀態(tài)設(shè)計。
(3)形式語言與命令元素映射:理解形式語言的基本概念,掌握表達式R與其對應(yīng)的語言L(R)的映射關(guān)系。學(xué)習(xí)命令元素標(biāo)識符E與其對應(yīng)的語言L(E)的定義方法。掌握命令表達式中命令元素標(biāo)識符的替換規(guī)則,實現(xiàn)從抽象語法到具體命令元素的轉(zhuǎn)換。理解命令語言與正則語言的本質(zhì)聯(lián)系。
(4)命令行界面分析與命令元素識別:以Windows/Linux命令行界面下ping程序為例,掌握命令行幫助信息的結(jié)構(gòu)化分析方法。學(xué)習(xí)識別命令中的核心元素:命令名、選項、參數(shù)、標(biāo)志位。掌握<CR>(回車)作為命令結(jié)束符的命令元素建模方法。實踐完成ping命令的完全幫助信息解析。
(5)單命令元素的輸入狀態(tài)機設(shè)計:掌握單個命令元素的輸入狀態(tài)機設(shè)計方法。學(xué)習(xí)狀態(tài)機的狀態(tài)定義:初始狀態(tài)、中間狀態(tài)、接受狀態(tài)。理解輸入字符序列驅(qū)動的狀態(tài)轉(zhuǎn)移機制。實踐實現(xiàn)單個命令元素(如"-n"選項)的輸入狀態(tài)機。
(6)多命令元素的輸入狀態(tài)機設(shè)計:掌握兩個及以上命令元素的組合狀態(tài)機設(shè)計方法。學(xué)習(xí)如何處理命令元素的順序約束與可選性。理解狀態(tài)爆炸問題的應(yīng)對策略:分層狀態(tài)機設(shè)計。實踐實現(xiàn)包含多個選項和參數(shù)的ping命令完整狀態(tài)機。
(7)命令行自動幫助與錯誤處理機制:掌握以特定字符(如"p")開頭的所有命令幫助信息的生成機制。學(xué)習(xí)部分幫助信息的實現(xiàn)原理:前綴匹配與候選命令列表生成。掌握歧義錯誤信息的識別與提示策略。實現(xiàn)<TAB>鍵命令自動補全功能的有限狀態(tài)機設(shè)計。
(8)命令實現(xiàn)模塊的架構(gòu)設(shè)計:掌握命令實現(xiàn)模塊的三大組成部分:命令行解析模塊、命令執(zhí)行模塊、幫助生成模塊及其協(xié)作關(guān)系。學(xué)習(xí)命令行模塊的核心數(shù)據(jù)結(jié)構(gòu)設(shè)計,包括命令表、選項表、參數(shù)表。掌握命令行模塊的初始化流程與命令元素類型注冊機制。
(9)命令元素類型的基類設(shè)計:掌握命令元素類型的基類ElementType的抽象設(shè)計。學(xué)習(xí)虛函數(shù)在命令元素處理中的應(yīng)用:解析方法、驗證方法、幫助生成方法。理解面向?qū)ο笤O(shè)計在命令行框架中的應(yīng)用價值。掌握派生命令元素類型(如整數(shù)參數(shù)、枚舉選項)的實現(xiàn)方法。
(10)命令注冊與符號表管理:掌握命令元素注冊流程的實現(xiàn),理解局部句柄表與全局命令元素表的協(xié)同工作機制。學(xué)習(xí)命令注冊流程:命令名稱注冊、命令元素關(guān)聯(lián)、命令處理函數(shù)綁定。掌握從本地句柄表的引用到全局命令元素表的引用轉(zhuǎn)換機制。
(11)命令執(zhí)行流程與匹配樹構(gòu)建:掌握命令表達式的完整執(zhí)行流程:輸入獲取、詞法分析、語法分析、語義處理。學(xué)習(xí)命令表達式到命令匹配樹的轉(zhuǎn)換示意圖構(gòu)建方法。掌握命令元素標(biāo)識符到ElementExpression結(jié)點的轉(zhuǎn)換、RepetitionExpression結(jié)點的創(chuàng)建、AlternationExpression結(jié)點的創(chuàng)建、SequenceExpression結(jié)點的創(chuàng)建、括號的處理等關(guān)鍵技術(shù)。
(12)表達式類型與有限狀態(tài)機實現(xiàn):深入理解SequenceExpression與其基類RegularExpression的關(guān)系,掌握SequenceExpression的匹配樹及其表示的有限狀態(tài)機實現(xiàn)。學(xué)習(xí)AlternationExpression與其基類的繼承關(guān)系,實現(xiàn)AlternationExpression的匹配樹及其表示的有限狀態(tài)機。掌握RepetitionExpression與其基類的關(guān)系,實現(xiàn)RepetitionExpression的匹配樹及其表示的有限狀態(tài)機。通過完整范例程序驗證命令自動補全功能的有限狀態(tài)機設(shè)計,形成可運行的Expect建模實現(xiàn)原型系統(tǒng)。