- 相關(guān)推薦
計算機專(zhuān)業(yè)是否需要開(kāi)設編譯原理課程
隨著(zhù)信息技術(shù)的迅猛發(fā)展及其應用領(lǐng)域的不斷深化,幾乎所有專(zhuān)業(yè)的研究與應用都離不開(kāi)信息技術(shù)。信息化浪潮對高等教育也帶來(lái)非常直接的變化,各專(zhuān)業(yè)課程設置無(wú)不將計算機知識教育作為其課程設置的組成部分。幾乎所有專(zhuān)業(yè)的大學(xué)畢業(yè)生,都要求掌握基本的計算機操作技能,非計算機專(zhuān)業(yè)學(xué)生需要通過(guò)計算機等級考試,而一些和信息技術(shù)密切相關(guān)的專(zhuān)業(yè),如電子信息、信息管理、電子商務(wù)等,課程設置上與計算機專(zhuān)業(yè)更是大量重疊,計算機知識教育在各專(zhuān)業(yè)中的滲透程度日漸加劇。
1 計算機專(zhuān)業(yè)面臨的新挑戰
在計算機知識正在成為各專(zhuān)業(yè)基本教育內容的背景下,計算機專(zhuān)業(yè)學(xué)生的專(zhuān)業(yè)優(yōu)勢受到很大的挑戰,以往在軟硬件知識和應用能力上的獨特優(yōu)勢似乎在逐漸弱化,與具有特定專(zhuān)業(yè)背景的學(xué)生相比就業(yè)壓力越來(lái)越大,由此也引發(fā)計算機專(zhuān)業(yè)到底學(xué)什么、專(zhuān)什么的現實(shí)思考,我們必須面臨的問(wèn)題是:計算機專(zhuān)業(yè)的學(xué)生專(zhuān)業(yè)優(yōu)勢體現在哪里?
計算機學(xué)科是一門(mén)技術(shù)性、工程性和應用性很強的學(xué)科,并有其基礎理論支撐的科學(xué)體系。計算機也是一種使用工具,但那種把工具使用等同于計算機專(zhuān)業(yè)的狹隘認識,其思維實(shí)際上和十多年前認為“會(huì )用計算機打字就是會(huì )用計算機”如出一轍。計算機專(zhuān)業(yè)學(xué)生的優(yōu)勢應該在于:通過(guò)系統的專(zhuān)業(yè)原理性知識的學(xué)習與訓練,熟練掌握基本的應用技能,并能夠“知其然,且知其所以然”,為此專(zhuān)業(yè)基礎課程的熏陶必不可少。而編譯原理就是一門(mén)介紹這種原理性知識的綜合性專(zhuān)業(yè)基礎課程。
2 編譯原理是計算機專(zhuān)業(yè)必不可少的基礎知識
計算機專(zhuān)業(yè)的理論基礎對培養學(xué)生的計算機專(zhuān)業(yè)素養具有非常重要的作用。
在眾多的原理性學(xué)習課程中,編譯原理主要承擔了語(yǔ)言實(shí)現原理、方法和技術(shù)的介紹。人們借助計算機減輕自己的勞動(dòng)強度,提高生產(chǎn)率,完成一些人類(lèi)無(wú)法進(jìn)行的危險、高難度工作。然而所有這些工作都必須借助程序設計語(yǔ)言書(shū)寫(xiě)的程序來(lái)指揮計算機。非機器語(yǔ)言程序功能的實(shí)現必須由翻譯程序來(lái)完成。正是有了編譯程序、解釋程序、匯編程序等翻譯程序,人們才可以使用自己習慣的語(yǔ)言將需要計算機做的事情描述成程序,并通過(guò)這些翻譯程序的工作讓計算機理解并執行?梢哉f(shuō),沒(méi)有翻譯程序,計算機 不可能象今天這樣得到如此廣泛的普及,網(wǎng)絡(luò )也不會(huì )有今天這樣大的吸引力,我們的生活、學(xué)習和工作將會(huì )是另一個(gè)樣子。
包括編譯程序在內的翻譯程序承擔了實(shí)現語(yǔ)言的功能,它所涉及的知識包括形式語(yǔ)言、自動(dòng)機理論等語(yǔ)言定義、翻譯與實(shí)現的基礎知識,這些知識可以讓學(xué)生領(lǐng)悟到計算機理論的精髓,可以讓學(xué)生從實(shí)現的角度重新審視軟件的開(kāi)發(fā),有助于學(xué)生對軟件的真正認識,對于今后從事應用軟件、語(yǔ)言開(kāi)發(fā)平臺、編譯系統甚至操作系統開(kāi)發(fā)等都是非常有好處的。同時(shí),編譯原理是許多課程的一個(gè)綜合性的實(shí)踐,它進(jìn)一步加深了學(xué)生對程序設計語(yǔ)言課程中語(yǔ)言基本單位的定義和作用的理解。例如,編譯程序使用的一些數據結構和算法是“離散數學(xué)”、“數據結構”以及“算法設計與分析”等課程相關(guān)知識的典型應用;編譯程序對目標代碼的存儲組織與分配功能的實(shí)現原理又與“操作系統”的相關(guān)內容相互滲透;編譯程序對中間代碼的優(yōu)化功能的實(shí)現則是數學(xué)、邏輯學(xué)、結構程序設計和優(yōu)化理論的綜合應用和專(zhuān)門(mén)化。因此,編譯的原理性研究、學(xué)習和實(shí)踐,可以多角度提高學(xué)生的邏輯思維能力、實(shí)踐動(dòng)手能力、編程調試及綜合應用能力,有助于切實(shí)有效地提高學(xué)生的專(zhuān)業(yè)素質(zhì)。另外,編譯課程中介紹的知識也是后續許多課程的基礎。所以,編譯原理是計算機專(zhuān)業(yè)學(xué)生必須掌握的基本原理,編譯原理課程是計算機專(zhuān)業(yè)非常重要的專(zhuān)業(yè)課程。
盡管經(jīng)過(guò)計算機專(zhuān)業(yè)人員的大量努力,大量的工具軟件為我們提供了極大的便利,以至于人們只需要通過(guò)若干次點(diǎn)擊鼠標左鍵就可以方便地完成很多工作,但這并不是說(shuō)所有問(wèn)題都已經(jīng)解決,還有很多深層次的工作需要計算機專(zhuān)業(yè)人員去完成。如果我們的計算機專(zhuān)業(yè)畢業(yè)生也只會(huì )“點(diǎn)擊左鍵”,很難想象他們會(huì )開(kāi)發(fā)出更好的工具,或對計算機技術(shù)的發(fā)展作出應有的貢獻。
專(zhuān)業(yè)理論基礎的學(xué)習,可以培養學(xué)生的思維方式和洞察力。計算機技術(shù)的更新是非?斓,系統的理論基礎可以讓學(xué)生在將來(lái)更好地適應新技術(shù),可以讓他們在理論框架的指導下尋找解決問(wèn)題的方法,朝不同的方向發(fā)展!因此,“編譯原理”課程應該是計算機專(zhuān)業(yè)必須的重要基礎課。
3 編譯技術(shù)的應用及需求
編譯原理課程的重要性,不僅僅是因為它所介紹的知識是計算機專(zhuān)業(yè)理論知識的重要組成,也在于編譯程序所使用的一些原理、方法和技術(shù)在非編譯系統的實(shí)際應用中也發(fā)揮了很大作用。
例如我們常用的文本編輯工具的實(shí)現,涉及到的字詞、語(yǔ)法正確性等內容就是編譯里介紹的詞法分析、語(yǔ)法分析技術(shù)的具體應用;又如現在大家上網(wǎng)必不可少的搜索引擎,在處理用戶(hù)輸入的查詢(xún)要求、對文檔資源的特征分析、提取與描述等工作中都用到編譯的相關(guān)知識:一些特定的應用也可以用到編譯中的方法來(lái)解決問(wèn)題,比如用正規表達式描述網(wǎng)絡(luò )上某種信息的特征等。
隨著(zhù)消費類(lèi)電子產(chǎn)品的大量開(kāi)發(fā),嵌入式系統的應用需求也不斷增加。在這種情況下,搭建適合的交叉編譯環(huán)境的工作日益重要,急需掌握編譯器構造相關(guān)原理、方法和技術(shù)的從業(yè)人員。這不僅說(shuō)明了編譯知識的生命力,同時(shí)也給高等學(xué)校計算機專(zhuān)業(yè)的編譯課程設置帶來(lái)了新的要求。
現實(shí)告訴我們,目前的問(wèn)題不是計算機專(zhuān)業(yè)要不要開(kāi)設編譯原理課程,而是該如何改進(jìn)編譯原理的內容與教學(xué)方式,以更好地適應社會(huì )的需求。
4 國內外編譯相關(guān)課程的設置情況
我們查閱了國外一些著(zhù)名的大學(xué)計算機專(zhuān)業(yè)的課程設置情況,研究了其中與編譯相關(guān)的課程安排,發(fā)現他們對與編譯相關(guān)知識的介紹是非常重視的。
美國麻省理工學(xué)院的計算機專(zhuān)業(yè)課程設置中,與編譯相關(guān)的課程就有Structure and Interpretation of ComputerPrograms,Computer Language Engineering(包括基本概念、編譯器的功能和結構、基本程序優(yōu)化技術(shù)、理論和實(shí)踐的交互作用以及使用工具編制軟件),Mulfithreaded Parallelism:Languages and Compilers加州大學(xué)伯克利分校工學(xué)院的計算機課程設置中,涉及編譯的課程有Implarnentation ofProgramming Languages,Programming Languages and Compilers,
Structure and Interpretation of Computer Programs等:英國劍橋大學(xué)的計算機科學(xué)課程與編譯相關(guān)的有Compilerconstruction和Advanced compiler design等。
可以看到,這些學(xué)校的計算機專(zhuān)業(yè)課程有的設置了專(zhuān)門(mén)的編譯課程,有的雖然沒(méi)有設置專(zhuān)門(mén)的課程,但在不同的課程中都安排了專(zhuān)門(mén)的內容和相關(guān)的知識,不管課程設置的方式如何,編譯在其中都占有很重要的分量。這足以說(shuō)明國外在培養計算機專(zhuān)業(yè)的人材時(shí),是非?粗衅鋵幾g相關(guān)知識的掌握的。
在國內,多年來(lái)編譯原理一直是各校特別是教育部所屬高校計算機專(zhuān)業(yè)的必修課,曾經(jīng)也是計算機專(zhuān)業(yè)碩士入學(xué)考試的必考科目,現在某些學(xué)校的計算機專(zhuān)業(yè)碩士生入學(xué)面試和博士入學(xué)考試還必考編譯原理。編譯原理課程在我國計算機專(zhuān)業(yè)人材培養中起了很重要的作用,新形勢下開(kāi)發(fā)具有自主知識產(chǎn)權的計算機系統軟、硬件,更需要編譯原理課程繼續發(fā)揮作用。
5 關(guān)于我國計算機專(zhuān)業(yè)編譯原理課程設置的建議
一般認為,編譯原理課程是計算機專(zhuān)業(yè)最難的課程之一,它是數據結構、語(yǔ)言、算法和軟件設計等知識的綜合體現,學(xué)生對這門(mén)課程的理解確實(shí)會(huì )有一定難度,但這正是教師工作需要解決的問(wèn)題。實(shí)踐證明,如果讓學(xué)生認識到了課程內容的重要性,并輔之以合適的教學(xué)方法和教學(xué)手段,取得良好的教學(xué)效果是不難的。
為此,我們思考了新形勢下編譯原理課程所涉及內容的教學(xué)及課程設置的改革問(wèn)題,如果必須改變現有的課程設置模式,我們建議在編譯原理課程的設置上,可以考慮采取以下兩種模式:
(1)課程分解式將編譯原理課程根據內容分成兩門(mén)課:一門(mén)為必修,可命名為“編譯技術(shù)”,主要介紹一些為滿(mǎn)足基本應用而需要學(xué)生掌握的基礎知識、方法、技術(shù),以達到語(yǔ)言實(shí)現理論基礎介紹的目的;另一門(mén)為選修,可命名為“編譯理論”,主要介紹偏重原理性的、更深層次的內容,方便有進(jìn)一步深造需要的學(xué)生學(xué)習。
(2)內容分解式
可以不單獨設置一門(mén)編譯課程,可將課程的內容根據其深淺,涉及到的具體問(wèn)題,及與其他課程內容的相關(guān)性等分解到不同的課程中去,使學(xué)生在不同課程的學(xué)習中逐步掌握相關(guān)知識。
比較兩種模式,后者在目前階段來(lái)說(shuō)還存在一定的難度:一是編譯課程內容的分解不是孤立的,需要與其他課程的內容進(jìn)行重新整臺,因而涉及面太大,短時(shí)期內難以做到科學(xué)分解與組織;二是增加了其他課程授課教師的工作量與難度,因為他們需要重新考慮、設計新增加的編譯部分內容的教學(xué)方法、教學(xué)形式等問(wèn)題,有可能需要在教學(xué)實(shí)踐中磨合一段時(shí)間才能取得好的教學(xué)效果。
因此,在現有形勢下,比較可行的還是第一種模式。當然,在經(jīng)過(guò)學(xué)科知識點(diǎn)合理的分解與組織之后,可以逐步過(guò)渡到第二種模式。
【計算機專(zhuān)業(yè)是否需要開(kāi)設編譯原理課程】相關(guān)文章:
編譯原理對職業(yè)生涯有怎樣的幫助?07-10
是否需要提前離職07-12
會(huì )計專(zhuān)業(yè)開(kāi)設哪些課程07-09
國家課程開(kāi)設情況的匯報06-22
微機原理課程設計04-20
嬰兒是否需要買(mǎi)保險?07-13
計算機游戲開(kāi)發(fā)專(zhuān)業(yè),就業(yè)前景好不好,都需要學(xué)習什么課程07-14
機械原理課程設計小結11-22
微機原理課程設計【熱】07-17