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