陳 英 計衛(wèi)星 王貴珍 李 侃
摘要:本文回顧了計算機學科重要的專業(yè)基礎課——“編譯原理”課程的發(fā)展,探討了在計算機學科和技術飛速發(fā)展,IT人才的多向需求拉動的新形勢下,按照“分類培養(yǎng)”的思路,對“編譯原理”課程教學指導思想進行的新的定位和思考。進一步結合學校研究型人才的培養(yǎng)目標,基于課程教學指導思想的定位及課程特點,對在“編譯原理”課程中通過計算機專業(yè)知識的融會貫通來提升學生的專業(yè)能力和素質。
關鍵詞:編譯原理;教學指導思想;專業(yè)能力;專業(yè)素質
中圖分類號:G642 文獻標識碼:B
1引言
計算機學科是一門年輕的、發(fā)展迅速的學科,在人才培養(yǎng)、教學模式和教學體系的改革乃至具體的課程設置中都面臨新的挑戰(zhàn)。“編譯原理”是計算機專業(yè)本科生的重要專業(yè)基礎課程,其原理、方法和技術在語言處理、軟件工程、軟件自動化、逆向軟件工程、搜索引擎甚至非編譯系統(tǒng)等諸多技術領域有著廣泛的應用。但是,學生普遍反映“編譯原理”是一門難學的專業(yè)課程,畢業(yè)后也很少有從事編譯器研發(fā)的機會,在該課程學習的認識上存在障礙。同時,隨著教學改革的不斷推進,課程理論教學學時不斷縮減,這也是推動課程改革必須面對的問題。
鑒于“編譯原理”課程的知識點涉及許多知識和技術領域,諸如離散數學、計算機體系結構、數據結構與算法、軟件體系結構、軟件測試、形式語言與自動機等,因此課程講授面臨諸多概念、知識點、原理和算法。如何將這些知識融會貫通,啟發(fā)式地引導學生,提高學生的學習興趣,加強他們對知識的掌握,達到提升學生專業(yè)能力和素質的目的,值得研究。為此,需要在課程的教學指導思想定位的基礎上,從教學方法、教學手段及內容等諸方面協調保證
課程的教學目標和效果。
2 “編譯原理”課程教學的發(fā)展與現狀
國內“編譯原理”課程最早開設于20世紀70年代末期,該課程的發(fā)展和改革至今僅有30余年的歷史,其發(fā)展和改革進程大體可以概括為:
(1) 課程起步階段。20世紀70年代,高級程序設計語言的課程納入學校教學計劃,與之配套的課程是“編譯方法”、“編譯技術”等,重點講授高級程序設計語言的發(fā)展和編譯的基礎知識和技術。由于缺少配套的教材,主要結合一些實際編譯程序的實現技術展開課程內容。該階段后期,國內引入格里斯的教材上、中、下三冊,本科生重點講授上、中冊。80年代初至80年代末,國內組織計算機專業(yè)統(tǒng)編教材,國防科技大學陳火旺教授于1983年編寫出版了《編譯原理》,國內多數學校采用了該教材,課程名稱也相對統(tǒng)一稱為“編譯原理”。由于當時該課程參考資料缺乏,開設的學校較少,加之當時國內軟件研發(fā)剛剛起步,對課程涉及的編譯程序這類大型系統(tǒng)軟件有關理論和技術理解受限,教師把握課程的精髓及學生學習皆感到有一定困難。為此,國內一些高校聯合舉辦每兩年一次的“編譯原理”課程研討會,交流課程教學計劃、教學方法和教學手段等,對該課程的推進起到了很好的促進作用。
(2) 課程發(fā)展階段。約從20世紀80年代初、中期開始至90年代中期,計算機學科及體系不斷發(fā)展完善,許多較早設立計算機專業(yè)的院校成立了計算機系(院),許多院校結合學習、理解和分析IEEE教程,較系統(tǒng)梳理了課程體系,制定了“編譯原理”課程新的大綱和知識體系,更新了教學內容。特別是設置計算機軟件專業(yè)的本科院校,“編譯原理”課程基本都設為必修課,有些學校還設置了“編譯原理”的前驅基礎課程“形式語言自動機基礎”,為學生更深入、牢固地掌握編譯理論奠定了良好的基礎和系統(tǒng)的學習途徑。
(3) 從20世紀90年代到現在,隨著全球范圍內IT業(yè)的迅猛發(fā)展及IT領域人才市場的需求拉動,對計算機專業(yè)的課程設置和改革提出了更高的要求。課程教學體系和教學模式不斷提升,積累了豐富的教學資源。此階段亦正值我國高等教育大發(fā)展大變革時期,自1999年開始,招生規(guī)模逐年迅速擴大,計算機專業(yè)已成為中國規(guī)模最大的理工專業(yè),專業(yè)調整、合并不斷推進。而本課程在此階段的一些重要改革是:教育部高等學校計算機科學與技術教指委確立了“分類培養(yǎng)”的戰(zhàn)略思想,在教材建設上更注重汲取世界上著名編譯教材的優(yōu)點,先后引進了本領域權威的“鯨書”、“龍書”和“虎書”等經典教材。國內許多高校結合自己多年積累的教學和科研經驗,先后出版了適合自身教學要求的教材及教學參考書。與此同時,課程實驗教學的改革與理論教學的改革同步,更注重通過編譯原理教學培養(yǎng)學生綜合的軟件工程能力。
3基于專業(yè)能力和專業(yè)素質考量的教學指導思想
3.1人才培養(yǎng)目標主導課程教學指導思想
按照教育部計算機教指委“分類培養(yǎng)”的指導思想,根據學校為創(chuàng)建研究型大學而確立的“厚基礎、寬口徑、強能力、高素質”的人才培養(yǎng)目標,結合計算機學科的發(fā)展趨勢和現代計算機人才的社會需求,我們明確了本專業(yè)“編譯原理”課程的建設目標和指導思想是:立足夯實基礎,拓寬課程相關領域,訓練工程素質;使學生明確認知語言及語言的處理是求解問題的一種有效途徑;培養(yǎng)學生對系統(tǒng)軟件和中、大型軟件的規(guī)劃、組織、設計和實現的綜合能力和素質。
3.2課程設計實施保障專業(yè)能力和素質提升
“編譯原理”課程具有理論性、系統(tǒng)性、實踐性強的特點,課程涉及的知識可以讓學生領悟到計算機理論的精髓。在課程教學指導思想定位的基礎上,結合課程規(guī)劃、設計與實施,把面向知識的教育轉變?yōu)槟芰虻慕逃?探討課程教學如何在學生專業(yè)能力和素質培養(yǎng)中發(fā)揮有效的作用。這需要教師有厚重的業(yè)務水平和教學經驗的積累,凝練與之相適應的課程內容的內涵,注重對課程學習思維方法的啟發(fā)和引導。以“編譯原理”課程為例,我們的討論關注其中的兩點:
(1) 課程知識向專業(yè)能力和素質的升華
專業(yè)能力實際也是知識的綜合體現。編譯程序是一個龐大復雜的系統(tǒng)軟件,涉及到計算思維能力,系統(tǒng)規(guī)劃、實現能力,算法能力等知識點及可應用性。因此,編譯的原理性研究、學習和實踐,可以從多角度提高學生的邏輯思維能力、實踐動手能力、編程調試及綜合應用能力,有助于切實有效地提高學生的專業(yè)素質。
(2) 知識的融合和關聯
“編譯原理”的課程體系和知識點具有許多內在和外在關聯,知識點的可應用性亦處處存在,可以經過專門的課程設計,啟發(fā)式地讓課程知識點融合或關聯,有利于拓寬學生思維,將專業(yè)能力和素質的提升融入教學之中。
下面舉例說明“編譯原理”課程中知識的融合和關聯。
例1:對語言的表示和分析,涉及形式化描述和自動機;自動機的化簡是一種數學抽象,直接利用離散數學中等價劃分、商集的基礎理論和知識;而在軟件測試中,理論上的測試用例往往是無窮集,亦可以劃分為等價集設計高質量的測試用例。
例2:編譯程序在從程序設計到程序運行產生輸出結果這一過程中處于核心地位,編譯系統(tǒng)對用程序設計語言編寫的源程序進行編譯,編譯過程中會用到源語言自身的規(guī)范和庫程序,需要操作系統(tǒng)提供的庫程序和接口,以及目標體系結構的相關信息生成可執(zhí)行的二進制程序。根據用戶的需要,可執(zhí)行程序由操作系統(tǒng)調度運行,并與下層硬件系統(tǒng)產生密切的關系。為此,編譯課程所講授的部分內容需要程序設計語言、操作系統(tǒng)和體系結構等課程內容作為支撐,這樣才能使學生更好地理解計算機系統(tǒng)中從軟件設計到程序執(zhí)行這一完整的過程。
例3:對編譯程序的組織與結構,若從軟件體系結構層面考慮,將詞法分析器作為語法分析器獨立調用的子程序,則屬于層次結構;若從接口關系上存在的直接I/O關系,可以認為屬于過濾器結構。若從操作系統(tǒng)知識領域考慮,將詞法分析器和語法分析器各作為一個獨立線程,則對共享程序要解決互斥問題等。
再如,代碼優(yōu)化則是數學、邏輯學、結構程序設計、體系結構和優(yōu)化理論的綜合應用。
4結語
對課程教學指導思想的定位要緊扣人才的培養(yǎng)目標,有了明確的教學指導思想,才能有針對性地進行課程的教革,把面向知識的教育轉變?yōu)槟芰虻慕逃1疚慕Y合學校研究型人才的培養(yǎng)目標、教學指導思想的定位及本課程特點,探討在教學中將編譯原理和技術與相關技術領域知識的融會貫通,提出在編譯課程的教學改革中應加強與其他課程內容的交叉和聯系,以提升學生的專業(yè)能力和素質。
參考文獻:
[1] 陳英,陳朔鷹,王貴珍,等. 編譯原理[M]. 北京:清華大學出版社,2009.
[2] 教育部高等學校計算機科學與技術教學指導委員會. 高等學校計算機科學與技術專業(yè)發(fā)展戰(zhàn)略研究報告暨專業(yè)規(guī)范(試行)[R]. 北京:高等教育出版社,2006.
[3] 何炎祥,伍春香. 計算機專業(yè)不需要開設編譯原理課程嗎?[J]. 計算機教育,2009(4):61-62.
[4] 蔣宗禮. 推進專業(yè)改革,提高教學水平[J]. 計算機教育,2009(16):8-13.