文/劉悅芳
隨著社會(huì)科技水平的快速增長(zhǎng),C語言程序設(shè)計(jì)題自動(dòng)評(píng)分系統(tǒng)也如雨后春筍般層出不窮,現(xiàn)階段應(yīng)用最為廣泛的C語言程序設(shè)計(jì)題評(píng)分方式有以下三種:
(1)軟件質(zhì)量度量法;
(2)動(dòng)態(tài)分析法;
(3)源程序分析比較法。
相較于前兩者而言,源程序分析法在我國(guó)應(yīng)用時(shí)間較短,對(duì)學(xué)生C語言程序設(shè)計(jì)成績(jī)及知識(shí)內(nèi)容的檢測(cè)缺乏人性化,因此更需依據(jù)程序依賴關(guān)系匹配度,對(duì)C語言程序設(shè)計(jì)題評(píng)分方式進(jìn)行不斷的完善與改革。
從C語言程序設(shè)計(jì)題評(píng)分源程序語義理解的時(shí)間與功能上看,可分為動(dòng)態(tài)評(píng)閱及靜態(tài)評(píng)閱兩種方式:
對(duì)無結(jié)果考生程序,利用C語言程序設(shè)計(jì)題系統(tǒng)對(duì)其進(jìn)行模擬以獲得模擬結(jié)果;對(duì)語法錯(cuò)誤的考生,可通過動(dòng)態(tài)詞法分析及語法分析程序中找出錯(cuò)誤所在,同時(shí)設(shè)計(jì)改錯(cuò)算法最大限度的改正考生中錯(cuò)誤所在,并使C語言程序以運(yùn)行的方式保留錯(cuò)誤點(diǎn),基于錯(cuò)誤點(diǎn)扣除相應(yīng)的分?jǐn)?shù),確保評(píng)分結(jié)果的全面性及準(zhǔn)確性。
在C語言程序無法運(yùn)行或解決不正確的情況下,可利用靜態(tài)評(píng)閱法。對(duì)考生C語言程序中語句進(jìn)行靜態(tài)檢查以獲取到評(píng)閱信息。同時(shí),C語言程序設(shè)計(jì)題評(píng)分系統(tǒng)可事先在程序設(shè)計(jì)題的題庫(kù)中依據(jù)考試題目設(shè)置相應(yīng)的關(guān)鍵性語句,通過對(duì)考生C語言程序設(shè)計(jì)題關(guān)鍵語句的核對(duì),給予考生相應(yīng)的分?jǐn)?shù)。
通過程序依賴關(guān)系匹配度,對(duì)C語言程序設(shè)計(jì)題中的詞法及語法進(jìn)行分析。具體而言,C語言程序設(shè)計(jì)題詞法分析主要就是對(duì)TOKEN串及錯(cuò)誤處理的符號(hào)表等進(jìn)行查填。C語言程序設(shè)計(jì)題語句分析主要就是對(duì)程序中變量聲明語句、各函數(shù)界限等進(jìn)行填查符號(hào)表。詞法及語法中符號(hào)表具有變量名、層數(shù)、變量類型、變量地址等內(nèi)容,同時(shí),符號(hào)表還具有兩個(gè)域用表示自定義數(shù)據(jù)類型名稱、變量名稱等之間互為依賴的關(guān)系。
在繪制C語言程序設(shè)計(jì)題評(píng)分程序系統(tǒng)依賴圖的過程中,不同應(yīng)用需選擇與之相對(duì)應(yīng)的依賴圖定義形式。但就目前來看,無論何種程序系統(tǒng)依賴圖,均是從Kuck基礎(chǔ)上提出的,因此都具有控制依賴及數(shù)據(jù)依賴的特征。同時(shí),C語言程序設(shè)計(jì)題程序系統(tǒng)依賴圖繪制期間應(yīng)構(gòu)造起數(shù)據(jù)依賴邊算法來獲取各種數(shù)據(jù)依賴邊中節(jié)點(diǎn)間數(shù)據(jù),應(yīng)用更為先進(jìn)的數(shù)據(jù)流分析算法,在控制C語言程序設(shè)計(jì)題程序系統(tǒng)子依賴圖的基礎(chǔ)上,選擇適應(yīng)該程序標(biāo)準(zhǔn)化運(yùn)行操作方式。
在C語言程序設(shè)計(jì)題評(píng)分方式進(jìn)行改進(jìn)及優(yōu)化工程中,也應(yīng)在程序依賴關(guān)系匹配度關(guān)系下做好C語言程序設(shè)計(jì)題語義標(biāo)準(zhǔn)化轉(zhuǎn)換處理工作。具體而言,程序標(biāo)準(zhǔn)化主要包括表達(dá)式標(biāo)準(zhǔn)化、控制結(jié)果標(biāo)準(zhǔn)化、不相關(guān)語句標(biāo)準(zhǔn)化、指針變量標(biāo)準(zhǔn)化及結(jié)構(gòu)標(biāo)準(zhǔn)化等。在C語言程序設(shè)計(jì)題算術(shù)表達(dá)式中,需控制結(jié)果中的符合表達(dá)式及結(jié)構(gòu)等語法結(jié)構(gòu)來提升C語言程序設(shè)計(jì)題評(píng)分系統(tǒng)的標(biāo)準(zhǔn)化程度。而標(biāo)準(zhǔn)化轉(zhuǎn)換處理的C語言程序設(shè)計(jì)題評(píng)分系統(tǒng)依賴圖可由賦值節(jié)點(diǎn)、選擇節(jié)點(diǎn)經(jīng)過及循環(huán)節(jié)點(diǎn)三者構(gòu)成,最大限度的簡(jiǎn)化了C語言程序設(shè)計(jì)題系統(tǒng)依賴圖結(jié)構(gòu),切實(shí)提升了C語言程序設(shè)計(jì)題后期評(píng)分工作效率。
依據(jù)程序依賴關(guān)系匹配度對(duì)C語言程序設(shè)計(jì)題評(píng)分方式進(jìn)行優(yōu)化時(shí),還應(yīng)做好相應(yīng)的程序匹配工作??忌绦蚺c模板程序匹配在智能化評(píng)分系統(tǒng)中可最大限度的還原人工評(píng)閱流程及結(jié)果,同時(shí),C語言程序設(shè)計(jì)題評(píng)分程序標(biāo)準(zhǔn)化后,可顯示出使用統(tǒng)一解題方式的考生及模板程序與系統(tǒng)依賴圖中的相似之處。舉例而言,如果考生C語言程序設(shè)計(jì)題中系統(tǒng)不完整且存在部分錯(cuò)誤時(shí),考生程序系統(tǒng)依賴圖也只有一部分與模板程序相同。
在C語言程序設(shè)計(jì)題評(píng)分期間,程度匹配度也是評(píng)分的重要標(biāo)準(zhǔn)之一,需對(duì)考生程序中動(dòng)態(tài)運(yùn)行語義、程序規(guī)模、程序結(jié)構(gòu)及程序語句知識(shí)點(diǎn)等匹配度進(jìn)行系統(tǒng)匹配,以最大限度的提升C語言程序設(shè)計(jì)題評(píng)分質(zhì)量。
在依據(jù)程序依賴關(guān)匹配度的C語言程序設(shè)計(jì)題評(píng)分系統(tǒng)進(jìn)行實(shí)驗(yàn)研究的過程中,需從以下幾方面入手:
(1)收集并完善C語言程序設(shè)計(jì)題評(píng)分系統(tǒng)實(shí)驗(yàn)參數(shù)數(shù)據(jù);
(2)設(shè)定C語言程序設(shè)計(jì)題評(píng)分任務(wù),如以某次全國(guó)計(jì)算機(jī)等級(jí)考核的C語言程序設(shè)計(jì)填空為問題的評(píng)分為實(shí)驗(yàn)對(duì)象;
(3)設(shè)定C語言程序設(shè)計(jì)題標(biāo)準(zhǔn)答案,并將標(biāo)準(zhǔn)答案通過語義標(biāo)準(zhǔn)化轉(zhuǎn)換處理成程序系統(tǒng)依賴圖。并由程序系統(tǒng)依賴圖之間對(duì)比實(shí)現(xiàn)程序匹配目標(biāo),最后對(duì)考生答案準(zhǔn)確性進(jìn)行評(píng)估。
總而言之,依據(jù)程序依賴關(guān)系匹配度對(duì)C語言程序設(shè)計(jì)題評(píng)分方式進(jìn)行改革與創(chuàng)新的過程中,可利用靜態(tài)語義理解與動(dòng)態(tài)語義理解相結(jié)合的手段,更好的處理考生程序及答案模板程序中語義等價(jià)、規(guī)模及結(jié)構(gòu)等問題,確保C語言程序設(shè)計(jì)題評(píng)分結(jié)果更加人性化,并在接近人工閱卷結(jié)果的基礎(chǔ)上提升評(píng)分效率及質(zhì)量。