唐仕喜
文章編號:1672-5913(2009)02-0040-03
摘要:本文探討了我院編譯技術可擴展式課程設計改革中的編譯技術與工程的關系、可擴展式課程設計改革指導思想與內容、實施方案和評價體系。
關鍵詞:編譯技術;可擴展式課程設計;軟件工程
中圖分類號:G642
文獻標識碼:A
編譯技術是計算機及其相關專業一門重要的核心課程,是學習計算機軟件的重要課程。從實際工作需要來看,僅靠教學計劃安排的課內實驗時間是不夠的,課內的實驗是側重于對某一方面知識的學習,在解決實際問題時,可能涉及并運用多個方面的知識,具有較強的綜合性,這就需要進行一些綜合性的設計練習,來提高分析和解決實際應用問題的能力。為了幫助廣大同學對編譯過程有更好的掌握,提高運用編譯技術和有關形式語言理論和方法解決實際問題的能力,需要對編譯過程及涉及到的編譯技術進行系統的實踐訓練。
編譯技術課程設計的目的是進一步培養學生編譯器設計的思想,加深對編譯技術和應用程序的理解,針對編譯過程的重點和難點內容進行編程,獨立完成有一定工作量的程序設計任務,同時強調好的程序設計風格。
1問題的提出
長期以來,許多學校在開設此課時,雖然開設了實驗課及相應的課程設計,但只是對編譯理論中的某些算法單純地實現,缺少或根本沒有實際背景,存在著以下問題:
(1) 在現行的教材中,大部分都是從編譯技術本身的角度來思考的,為的只是讓學生掌握編譯的基本理論與思想,學生易感覺太抽象;
(2) 重理論輕實踐,將語法技巧理論的講解作為主要部分,與實際工程聯系少,缺乏活力,學生易產生“學而無用”的思想;
(3) 與實際工程鴻溝大,學生易產生懼怕思想。
為了有效地解決這些問題,結合工程應用實際,我們提出了編譯技術可擴展式課程設計的思路。
2編譯技術與工程的關系
第一個編譯程序的出現是在20世紀50年代早期,多數早期的編譯工作是將算術公式翻譯成機器代碼,奠定了對高級語言編譯系統的研究和開發的基礎。20世紀50年代中期出現了FORTRAN等一批高級語言,相應的一批編譯系統開發成功。隨著編譯技術的發展和社會對編譯程序需求的不斷增長,20世紀50年代末有人開始研究編譯程序的自動生成工具,提出并研制編譯程序的編譯程序。它的功能是以任一語言的詞法規則、語法規則和語義解釋出發,自動產生該語言的編譯程序。目前很多自動生成工具已廣泛使用,如詞法分析程序的生成系統LEX,語法分析程序的生成系統YACC等。20世紀60年代起,不斷有人使用自展技術來構造編譯程序。自展的主要特征是用被編譯的語言來書寫該語言自身的編譯程序。1971年,PASCAL的編譯程序用自展技術生成后,其影響就越來越大[1][2]。編譯技術與工程的關系如表1所示。
表1編譯技術與工程的關系

隨著并行技術和并行語言的發展,處理并行語言的并行編譯技術,將串行程序轉換成并行程序的自動并行編譯技術也正在深入研究之中。另外嵌入式應用迅速增長的需求,推動了交叉編譯技術的發展,還有系統芯片設計方法和關鍵EDA技術的研究,也帶動了專用語言VHDL等及其編譯技術的不斷深化。
3可擴展式課程設計改革指導思想與內容
編譯技術課程設計教學是工程類本科教學中的重要環節,具有很強的綜合性和實踐性,組織實施好課程設計教學,已成為教學改革的重要課題之一。與一般本科院校相比,我們應當更加注重技術層面的提升,培養學生具有更強的技術操作水平和解決實際問題的能力;和高職高專相比,又應該有更寬、更深一些的專業理論基礎,以培養有較強的創新能力和實踐能力,能適應實際工作需要的高級應用型人才。因此編譯技術課程設計教學應充分考慮到社會對人才的全方位要求以及為學生未來的可持續發展奠定良好的基礎[3]。
課程設計改革的重要特征之一就是面向社會,面向市場,面向生產,編譯技術課程設計要具有一定的實用性、可行性。編譯技術課程設計題目的選擇直接影響到學生完成的情況和教學效果,對提高學生的能力大有裨益。學生參與課程設計,首先就要開始參與課程設計的選題,以教師確定的指導為前提,強調學生在課程設計中的主體地位。讓學生們明確自己是這個實踐活動的主體,從領會課程設計的目的、任務,到理解課程設計的步驟、方法和注意事項,因此確定課程設計的題目必須讓學生唱主角,消除學生們的依賴心理,發揮他們的主動性和創造性,學生通過查閱資料、調查等多途徑接觸社會實際提出題目,在教師的參與指導下結合課程理論進行可行性分析討論,篩選出適合于課程設計的題目。這樣的課題結合了社會實際,考慮到學生的實際能力,結合了編譯技術課程理論,結合了學生的興趣,學生的積極性在課程設計中將獲得的充分的激發和保護,既不會因課題枯燥無味而淡漠,也不會因難度較大而畏縮不前。編譯技術可擴展式課程設計改革內容如表2所示。

編譯技術可擴展式課程設計的特點是以編譯技術理論與編譯實驗為基礎,結合實際工程和科研的需要,由學生提出合乎自己實際能力的課程設計的課題,并盡力發揮其創造力,向工程方向擴展。
4可擴展式課程設計施實方案
4.1設計內容具有開創性和實用性
就設計內容而言,讓學生們感到既有一定的難度,又有相當的興趣,許多學生都是積極主動地探討解決問題的途徑,從而打破了以往學生總是為最后的成績而做實驗的被動局面,具有十分重要的創新意義。在向學生布置任務時就有意識地將實際科研中需要完成的一些內容落實下去,使學生的工作成果得以充分的利用,就這一點來說,可以認為課程設計的內容具有較好的實用性。在時間上,依據可擴展式課程設計實際,專門時間為1個星期,之后根據設計擴展的情況,延長2~3個星期,甚至還可以之后擴展為畢業設計。
4.2設計小組采取優化組合的方法
在設計前,將全班學生按平時主干課程的成績分為上中下三個等級,然后每一個小組中三個人剛好可以按不同等級各分配一人,以成績較好的學生為小組組長,負責小組內的工作,小組中每個人都可以按自己的設計思想完成同一任務,在最后整體連接時,可選擇各組中較好的程序。這樣既保證了最后的程序質量,同時又使同學之間可以互相探討,取長補短,效果較好。
4.3選用合適的激勵機制
為把編譯技術課程設計做好,我們選用了以下激勵機制:其一是合理的成績分布,讓真正做出了東西的人得到較高的成績;其二是引入競賽機制,對優秀者進行獎勵;其三是以適當的資金進行資助,以達到其實用的目的。
5可擴展式課程設計評價體系
編譯技術可擴展式課程設計評價體系注重過程考核,通過過程的監控手段實現教學目標,原則上多種方式并舉,如下所述。
5.1形成式考核
與傳統考核模式的區別在于:形成式考核的過程貫穿于整個教學過程;考核的形式是多樣化的;考核的內容除知識點外,還包含學生學習過程中的表現,學生完成課程任務過程中表現出來的分析與解決問題的能力等多方面,是對學生的全方位的考察,是一種更科學的評價體系。
5.2答辯形式進行考核
實踐的目的是培養學生綜合應用所學知識解決問題的能力,因此考核的重點應該放在對學生把握問題、分析問題以及解決問題等諸多方面的能力上面。實踐證明,通過答辯能充分反映學生的全面素質,同時,通過答辯過程中學生對問題的回答,也能較為準確與全面地了解學生對知識點的掌握情況。