摘要:本文對編譯原理的等價性進(jìn)行了分析和研究,提出一種有效的組織等價知識的方法,并在此基礎(chǔ)上提出應(yīng)用等價關(guān)系提高教學(xué)效果的一種方法論。結(jié)合編譯原理教學(xué)實踐說明了該方法的可用性和有效性。
關(guān)鍵詞:知識等價性;教學(xué)方法論;教學(xué)效果;編譯原理
1背景
在教學(xué)中,我們常常會使用斷言:“甲與乙是一樣的”,“甲乙二者是等價的”等等。從教和學(xué)的角度,這樣的斷言有如下作用:
1) 建立知識之間的聯(lián)系,有助于對知識進(jìn)行組織,構(gòu)建知識框架;
2) 減輕記憶的負(fù)擔(dān),即本來對“甲”和“乙”的細(xì)節(jié)需要分別地記憶,現(xiàn)在二者被等價關(guān)聯(lián)起來,有大量細(xì)節(jié)不必重復(fù)記憶了;
3) 便于知識的靈活運用。例如原來使用“甲”知識解決的問題換做用“乙”知識去求解或許是一條更加簡潔有效的途徑;另外,求解某問題時,可用的知識從原來的一種增加到兩種,理論上增加了求解成功的可能性;
4) 便于突出重點,對于等價的知識,可以從其他的適合性角度做出選擇,不使總的知識量過于膨脹。
從以上可以看出,這種教學(xué)現(xiàn)象反映了教學(xué)過程中對知識等價性的關(guān)注。顯然,關(guān)注知識等價性的教學(xué)過程對于提高教學(xué)效果必定產(chǎn)生積極作用。
等效思維、等價轉(zhuǎn)化、等值變換等一些思維方法在教學(xué)和研究中被經(jīng)常使用,從一定程度上說明關(guān)注知識等價性的教學(xué)過程已經(jīng)廣為人們所接受。然而,不幸的是,這些思維方法僅停留在概念層面,屬于哲學(xué)上的思考,有模糊性,尚沒有形成系統(tǒng)的方法論(methodology)。事實上,由于這一原因,在課程教學(xué)中,有效地運用這種關(guān)注知識等價性的教學(xué)方法面臨著實質(zhì)性的困難。
編譯原理是一門傳授對計算機程序進(jìn)行分析、變換和優(yōu)化的課程,是計算機專業(yè)核心課程,課程的知識分布在理論、技術(shù)和實現(xiàn)等多個層面,多年來的教學(xué)實踐反映出該課程是本專業(yè)學(xué)生最難學(xué)的課程之一,因而,結(jié)合該門課程的教學(xué),系統(tǒng)地研究關(guān)注知識等價性的教學(xué)方法有典型性,同時從提高本門課程教學(xué)效果上也方便驗證該方法的有效性。
本文提出了一種關(guān)注知識的等價性的教學(xué)方法論,并應(yīng)用于編譯原理課程教學(xué)中,給出了組織等價知識dmSgchPyxl255aXZWDvYntgzgKNX0fMSiOpUxxnFDUY=的方法,以及提高教學(xué)效果的形式規(guī)則,并基于編譯原理教學(xué)實踐闡明了該方法的有效性。本文后面部分:第二節(jié)分析等價性的利用對于提高教學(xué)效果的積極作用;第三節(jié)提出一種關(guān)注知識等價性的方法論;第四節(jié)結(jié)合編譯原理課程分析了該方法論的可用性和有效性;最后是本文總結(jié)。
2等價性的利用對提高教學(xué)效果的意義
一般來說,恰當(dāng)?shù)厥褂弥R之間的等價關(guān)系,對于提高教學(xué)效果產(chǎn)生積極作用。等效思維、等價轉(zhuǎn)化以及等值變換等這些思維方法,是以知識的等價性為基礎(chǔ)所建立起來的,在教學(xué)過程中有意識或無意識地得到了廣泛使用。本節(jié)在介紹這些思維方法的基礎(chǔ)上,結(jié)合編譯原理中活動記錄(棧幀)知識對這些方法進(jìn)行了具體解釋,并基于此進(jìn)行了初步分析。
2.1基于等效思維舉一反三
所謂等效思維,就是在效果相同的前提下,把實際的、難于理解的問題變成理想的、易于思考的問題。它是數(shù)學(xué)上“等價轉(zhuǎn)化思想”在科學(xué)學(xué)科的問題求解中的應(yīng)用,是一種常用的有效的科學(xué)思維方法。它常常是通過變換思維角度,對題目作適當(dāng)假設(shè),或者代換。
活動記錄是一種數(shù)據(jù)結(jié)構(gòu),用于運行時??臻g的管理,目的是支持函數(shù)調(diào)用的語義?;顒佑涗浀慕Y(jié)構(gòu)有多種,常見的是fp-sp[1]365和sp-top[2]259兩種結(jié)構(gòu)。這兩種結(jié)構(gòu)中的內(nèi)容是完全一樣的,也就是效果相同,但也存在著差異。fp-sp結(jié)構(gòu)的特點是,幀指針fp把活動記錄分為兩個部分,前一部分的內(nèi)容由調(diào)用者中的代碼來建立,而后一部分的內(nèi)容由被調(diào)用者中的代碼建立。sp-top結(jié)構(gòu)中幀指針sp指向活動記錄的開始位置,這樣幀與幀之間的邊界清楚。但是訪問sp-top結(jié)構(gòu)的單元所使用的偏移量的絕對值要大?;诘刃季S,拋開了這些差異,從fp-sp結(jié)構(gòu)容易得出sp-top結(jié)構(gòu),反之亦然。進(jìn)一步地,容易設(shè)計出不同的活動記錄結(jié)構(gòu),以及相應(yīng)的調(diào)用序列(calling sequence)和返回序列代碼,取得舉一反三的效果。
然而,在這一思維方法中,對于“實際的、難于理解的”知識和“理想的、易于思考的”知識,缺乏方法論層面上的定義和解釋,而“效果相同”也是泛化和不明確的陳述,因而,可以看出這一思維方法仍然停留在概念層面上,缺乏形式化描述,這成為有效應(yīng)用這一方法的瓶頸。
2.2基于等價轉(zhuǎn)化化難為易
在數(shù)學(xué)研究中,使一種研究對象在一定條件下轉(zhuǎn)化為另一種研究對象的數(shù)學(xué)思想稱為等價轉(zhuǎn)化思想,是一種思維策略的體現(xiàn),即我們常說的換個角度想問題,它是解決數(shù)學(xué)問題的重要思想,它要求我們能把握住問題的本質(zhì),能辨正地看待事物,能運用所學(xué)的知識把復(fù)雜的問題轉(zhuǎn)換為較簡單的問題解決,把隱含的條件轉(zhuǎn)化為明顯的條件,把生疏的問題轉(zhuǎn)化為較熟知的問題去解決。
運行時系統(tǒng)常?;跅Y(jié)構(gòu)來支持嵌套過程的調(diào)用和返回。采用D表(Display表)的棧幀結(jié)構(gòu)提高了時間效率,但理解起來略顯繁瑣。與它等效的采用靜態(tài)鏈的棧幀結(jié)構(gòu)理解起來更簡潔一些。除此以外,二者沒有區(qū)別。因此,基于對靜態(tài)鏈棧幀結(jié)構(gòu)理解的基礎(chǔ)上,通過將靜態(tài)鏈等價轉(zhuǎn)化為D表,使得后者化難為易了。
然而,在這一思維方法中,對于“一定條件”和“研究對象”缺乏形式化描述也成為有效使用該方法的障礙。
2.3基于等值變換法進(jìn)行創(chuàng)新思維
等值變換法是從已有的事物中,通過模擬、借鑒、產(chǎn)生聯(lián)想來改變原來的對象而進(jìn)行創(chuàng)造的方法,是依照蠶變成飛蛾、桑繭變成蠶絲的自然現(xiàn)象而總結(jié)出來的一種創(chuàng)造技法。自然界的各種等值變換形式歸結(jié)為三種類型:1)自我成長型等值變換,即類似于蠶從幼蟲變化為成蟲的變換過程;2)被加工型等值變換,即類似于從桑葉到蠶絲這一變換過程;3)綜合型等值變換,即前兩種的綜合。
仍然以棧幀知識為例,我們能注意到,嵌套過程的語義是一種知識,而棧幀結(jié)構(gòu)及其調(diào)用序列和返回序列構(gòu)成了另一種知識,在一定的抽象層次上看,這兩種知識之間存在著等價性?;诘戎底儞Q這種思維方法,后一種知識是前一種知識經(jīng)第二類等值變換得到。進(jìn)一步地,我們可以給棧幀結(jié)構(gòu)中增加表示超長、變長形參單元,可以支持過程閉包和變長參數(shù)語義等等,依次可以看出是對棧幀知識的第一類等值變換。等值變換使得編譯原理的理論知識轉(zhuǎn)變?yōu)榉椒▽用娴闹R,并最終轉(zhuǎn)變?yōu)槌绦虼a,就是組成編譯系統(tǒng)的代碼。
等值變換法的核心是保持等值,從已有到未知。目前仍然沒有形式化描述,沒有適用于計算系統(tǒng)的方法論。
綜上所述,基于知識的等價性,將等效思維、等價轉(zhuǎn)化以及等值變換等思維方法應(yīng)用在編譯原理教學(xué)中,必定取得舉一反三、化難為易和創(chuàng)新思維的教學(xué)效果。但是,教授和學(xué)習(xí)每一種涉及到等價性的知識的過程中,準(zhǔn)確描述等價關(guān)系是決定能夠利用等價性提高教學(xué)效果的前提,這將在下一節(jié)具體闡述。除此以外,基于等價性剪裁教學(xué)內(nèi)容的意義在于:將適應(yīng)不同的學(xué)分要求、適應(yīng)不同的學(xué)生基礎(chǔ)這件事,轉(zhuǎn)變成為在多種等價知識中進(jìn)行選擇的問題,顯然都變得易于實施。
3關(guān)注知識等價性的教學(xué)方法論
本節(jié)采用一種層次結(jié)構(gòu)組織知識,并定義知識間的等價關(guān)系,在此基礎(chǔ)上引入知識等價性的層次視覺和抽象視覺,給出等效思維、等價轉(zhuǎn)化和等值變換等思維方法的一種形式化描述,形成一種關(guān)注知識等價性的教學(xué)方法論。
3.1知識單元及其層次結(jié)構(gòu)組織
知識是哲學(xué)層面的概念,為了應(yīng)用于計算系統(tǒng)中并得到方便處理,采用知識單元的概念。
定義1 知識單元通常是指在一個問題域中用于闡述或解決某個問題的概念、算法、定理等,它在內(nèi)容上是相對獨立和完整的。依據(jù)是將知識作為某個對象看待,作為結(jié)構(gòu)化的知識要素,作為知識內(nèi)容的不可再分的打包形式。知識單元有時采用集合形式表示,其元素是知識個體或稱為知識實例。
將編譯原理的內(nèi)容作為一個問題領(lǐng)域,記為?,
那么?是編譯原理的知識單元的全集。知識單元不是
孤立的,它們之間存在著大量的聯(lián)系,我們把它表示成知識單元之間的關(guān)系。知識抽象是知識單元之間的
一種常見的關(guān)系,知識抽象關(guān)系的全集記為?。那
么有:
(1)T"(a:CaC)&Icir