摘 要:隨著社會經濟的迅速發展,計算機學科中“編譯原理”工程化改造的重要性逐漸凸顯出來,在面向軟件工程專業工程化改造變異原理中,可以通過創建“編譯原理”課程工程化的實踐教學體系來實現,通過相關方法和措施,能夠有效幫助和解決編譯原理這門課程在面頰軟件工程專業工程化改造中所遇到的問題。本文就面向軟件工程專業工程化改造編譯原理進行分析,并提出一些可供參考的意見和措施。
關鍵詞:軟件工程;工程化改造;編譯原理;理論;實踐
1 面向軟件工程專業工程化改造編譯原理的重要性
本世紀初期,我國國家教育部等多個部門聯合發文批準了我國首批示范軟件學院成立,達35所院校,其目的就是為了我國的科技和經濟發展而培養具有高層次、應用型和復合型的軟件工程人才,提高我國這方面的國際競爭力。首批軟件學院自成立以來,有力的推動了我國軟件工程行業的發展,并促進相關的學科建設不斷成熟,基本上實現了我國軟件工程專業與國際接軌,使得我國的軟件工程教育實現的大的飛躍。
但不可忽視的是,軟件工程專業作為我國新興的科學技術方面的專業發展非常迅速,且這門課程的學習學科交叉性非常強,加上近年來科學技術的快速發展,與之相關的新技術、新概念不斷你的涌現出來,這從某種程度上來講也需要我國面向軟件工程專業要技術的調整方法和策略,從而面對快速的變化于激烈的競爭。我國的首批示范軟件學院很大一部分都是根植于計算機學院的,其教育內容原不能適應時代的發展,因此面向軟件工程專業的工程化改造的重要性也逐漸凸顯出來。下面就面向軟件工程專業工程化改造編譯原理的相關理論和實踐進行分析,并做一個基本的闡述。
2 面向軟件工程專業工程化改造編譯原理理論
2.1 編譯原理知識的先期注入
眾所周知,“編譯原理”作為計算機專業的一門基本學科,其理論性非常強,在軟件工程專業中的課程通常是由幾個功能模塊箱組合而成的,要想對編譯原理知識做出充分的了解必須要熟悉的掌握理論。考慮到編譯原理知識的特殊性,在軟件工程專業中可以安排“CO釋程序的面向對象設計與實現”這一項目作為前導實踐環節。從而在編譯原理理論知識注入前對程序設計語言的解釋和執行有一個深入的了解。比如在軟件工程專業工程化改造編譯原理的課程當中,讓學生自主的了解相關知識,通過先期注入編譯原理的知識,能夠有效的鍛煉工程化改造編譯原理中的實踐能力。
2.2 工程化理論教學
就變異原理本身而言就是非常復雜的,尤其是編譯程序更為龐大和繁雜,從而如何解釋和介紹編譯原理自身也成為了一個困難的問題。但是如果從工程化的角度來解釋編譯程序的實現過程和相關原理,進而對整個源程序到目標程序的轉換過程做出詳細解釋可以作為一個新的途徑。比如《編譯程序的實現原理》可以通過以下的編寫形式來實現:首先給出編譯器的輸入——C語言的程序,其次再給出編譯器的輸入——目標語言,在這一轉換過程中往往需要很多功能模塊進行工作,例如詞法分析功能模塊、語法分析功能模塊等。最后在根據每個功能模塊所給出的本模塊輸入輸出。例如詞法分析模塊分析得出為是一個C語言程序,其相關模塊的輸入形式應為TOKEN鏈表,這樣的轉換工作則需要由理論與實現兩個部分緊密結合而成。一定程度上來講,面向軟件工程專業工程化改造編譯原理體現了工程化,因為這一過程的本身就是對一個完整的源程序轉換為目標程序,并以教育載體完整的屆世界了編譯程序的原理和試下,明顯的反映出了編譯原理的工程化。
3 面向軟件工程專業工程化改造編譯原理的實踐
3.1 詞法分析程序
詞法分析是編譯程序的第一個處理階段,主要通過兩種途徑來構造詞法分析程序。其一是根據對語言中各類單詞的某種描述或定義(如BNF),用手工的方式(例如可用C語言)構造詞法分析程序。一般地,可以根據文法或狀態轉換圖構造相應的狀態矩陣,該狀態矩陣連同控制程序一起便組成了編譯器的詞法分析程序;也可以根據文法或狀態轉換圖直接編寫詞法分析程序。構造詞法分析程序的另外一種途徑是所謂的詞法分析程序的自動生成,即首先用正規式對語言中的各類單詞符號進行詞型描述,并分別指出在識別單詞時,詞法分析程序所應進行的語義處理工作,然后由一個所謂詞法分析程序的構造程序對上述信息進行加工。
3.2 語義分析程序
語法制導翻譯模式是在語法分析的基礎上,增加語義操作來實現的。對于給定文法中的每一產生式,編寫相應的語義子程序。在語法分析過程中,每當用一個產生式進行推導或歸約時,語法分析程序除執行相應的語法分析動作之外,還要調用相應的語義子程序,以便完成生成中間代碼、查填有關表格、檢查并報告源程序中的語義錯誤等工作。每個語義子程序需指明相應產生式中各個符號的具體含義,并規定使用該產生式進行分析時所應采取的語義動作。這樣,語法制導翻譯程序在對源程序從左到右進行的一遍掃描中,既完成語法分析任務,又完成語義分析和中間代碼生成方面的工作。
[參考文獻]
[1]王緯.《提高軟件工程能力的科學途徑[J].質量與可靠性》[J].1996,05.
[2]王緯.《軟件可靠性保證的新進展——開發過程改進和工程能力評價方法的標準化》[J].航空標準化與質量,1997,04.
[3]潘筱劍.《《編譯原理》CAI教學模式的研究[J].上海理工大學學報》[J].2002,03.