第一篇:編譯原理課程和助教工作總結(jié)
編譯原理課程和助教工作總結(jié)
時間如流水般,轉(zhuǎn)眼,一學(xué)期將至,每個人為了能交上一份滿意的答卷,無時無刻不在傾注著汗水,揮灑著熱淚。掩卷長思,細(xì)細(xì)品味,這學(xué)期的點點滴滴不禁又浮上心頭,現(xiàn)在讓我們一起回顧一下,希望可以對今后的教學(xué)工作有所幫助。
編譯原理是我們北京師范大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機專業(yè)本科生的專業(yè)必修課,它旨在介紹編譯程序構(gòu)造的一般原理和基本方法,其內(nèi)容主要包括語言和文法、詞法分析、語法分析、語法制導(dǎo)翻譯、中間代碼生成、存儲管理、代碼優(yōu)化和目標(biāo)代碼生成等。這門課程關(guān)注的是編譯器方面的產(chǎn)生原理和技術(shù)問題,似乎和計算機的基礎(chǔ)領(lǐng)域不沾邊,但是編譯原理課程是所有計算機專業(yè)學(xué)生應(yīng)該習(xí)得的一門重要課程,因為雖然在將來并不是所有人都會從事編譯方面的工作,但是通過編譯原理的學(xué)習(xí)之后,可從許多不同的角度來觀察編譯器的結(jié)構(gòu),編譯器的物理結(jié)構(gòu)、操作的順序等等,會涉及到數(shù)據(jù)結(jié)構(gòu)、計算機組成原理等課程,所以同學(xué)們在理論、技術(shù)和方法上都能得到系統(tǒng)而有效的訓(xùn)練,而且有利于將來希望從事軟件開發(fā)的學(xué)生的相關(guān)素質(zhì)和能力的進(jìn)一步提高,更能夠讓每個學(xué)生更清楚的了解和熟悉一段程序從源代碼到可執(zhí)行文件之間具體的轉(zhuǎn)換過程,這樣能夠更好的理解代碼的編譯和計算機內(nèi)部的工作原理,對學(xué)生以后計算機相關(guān)的學(xué)習(xí)乃至工作從業(yè)都會有非常大的幫助。
編譯原理這門課程是計算機專業(yè)課程中偏難的一門課,不管是在平時的課堂教學(xué)上,還是在上機實驗的過程中,學(xué)生都會產(chǎn)生很多困惑之處,在這些方面我們的編譯原理助教就承擔(dān)了相當(dāng)重要的工作和任務(wù):
每周課堂隨堂聽課,跟進(jìn)教學(xué)進(jìn)度,并且上課之前做好復(fù)習(xí)工作,對每節(jié)課同學(xué)們可能會產(chǎn)生的問題提前做好歸納,以便更好的在課余時間跟同學(xué)們討論,給同學(xué)們提供答疑解惑的機會;
能動手編寫代碼完成變異原理實驗是本課程技能培養(yǎng)的重要一環(huán),在每周的上機實驗時,助教幫助同學(xué)們進(jìn)行分組,以小組合作的方式來完成每次的實驗任務(wù),依照課程進(jìn)度循序漸進(jìn)的給同學(xué)們分派布置實驗任務(wù),在實驗課上跟同學(xué)們隨時交流,一同調(diào)試代碼,一對一的解答實驗疑惑等,并且協(xié)助同學(xué)們理解實驗原理和內(nèi)容,輔助同學(xué)們能夠順利完成上機實驗,通過上機實驗的手動操作,同學(xué)們也可以更直接、更具體的理解編譯程序代碼過程中一些具體的原理和方法;實驗課我選取的是基于C++或者是基于flex和bison的實驗,助教會主動和實驗課本的作者老師聯(lián)系溝通,獲得更多實驗相關(guān)的資料,比如書上給出代碼的電子版和用例測試等。
助教在課后會主動收集同學(xué)們課堂上課或者實驗過程中遇到的問題向我反映,這樣可以及時發(fā)現(xiàn)同學(xué)們在課堂中理解較為模糊甚至有偏差的地方,并在課堂或者實驗課上進(jìn)行一個集中的講解,更利于同學(xué)們的學(xué)習(xí);
每次課結(jié)束之后,我會布置課后作業(yè)來讓同學(xué)們對課堂教學(xué)內(nèi)容進(jìn)行鞏固和查漏補缺,助教認(rèn)真批改同學(xué)們的課后作業(yè)、所交的實驗報告和運行的代碼,做好每位同學(xué)的評分與登記,對課后作業(yè)、實驗報告和代碼中關(guān)鍵性的錯誤做出標(biāo)記,并要求學(xué)生改正。登記課后成績時,按10分制來決定,登記實驗成績時按照20分制來決定。在每次批改作業(yè)結(jié)束后,助教會及時整理,匯總學(xué)生的成績和作業(yè)實驗中出現(xiàn)的問題,助教通過批改課后作業(yè)和實驗來了解同學(xué)們真實的學(xué)習(xí)情況,從而能夠更好的輔助教學(xué)工作的進(jìn)行。
平時為了同學(xué)們能獲得更好的學(xué)習(xí)體驗,會進(jìn)行一些與國外教授的視頻課程或者相關(guān)活動等,助教會組織同學(xué)們進(jìn)行視頻授課前的預(yù)習(xí)工作,同大家一起討論上課形式,提出可能遇到的問題等等,在課前會負(fù)責(zé)批教室,布置桌椅場地,設(shè)置視頻授課環(huán)境,調(diào)試攝像頭、話筒和音響等相關(guān)的設(shè)備,為進(jìn)行正常的視頻授課或其他活動做準(zhǔn)備。
對自己的要求:
一、師德方面:加強修養(yǎng),塑造“師德”,我始終認(rèn)為作為一名教師應(yīng)把“師德”放在一個極其重要的位置上,因為這是教師的立身之本?!皩W(xué)高為師,身正為范”,這個道理古今皆然。從踏上講臺的第一天,我就時刻嚴(yán)格要求自己,力爭做一個有崇高師德的人,為每一個學(xué)生“傳道授業(yè)解惑”。
二、認(rèn)真?zhèn)湔n,不但備學(xué)生而且備教材備教法,根據(jù)教材內(nèi)容及學(xué)生的實際,設(shè)計課的類型,擬定采用的教學(xué)方法,并對教學(xué)過程的程序及時間安排都作了詳細(xì)的安排,認(rèn)真寫好教案。每一課都做到“有備而來”,每堂課都在課前做好充分的準(zhǔn)備,并制作各種有利于吸引學(xué)生注意力的有趣教具,課后及時對該課作出總結(jié),并認(rèn)真搜集每課書的知識要點,歸納總結(jié)。
三、增強上課技能,提高教學(xué)質(zhì)量,使講解清晰化,條理化,準(zhǔn)確化,生動化,做到線索清晰,言簡意賅,深入淺出。在課堂上特別注意調(diào)動學(xué)生的積極性,讓學(xué)生多動手,從而加深理解掌握知識。加強師生交流,充分體現(xiàn)學(xué)生的主動作用,讓學(xué)生學(xué)得容易,學(xué)得輕松,學(xué)得愉快;注意精講精練,在課堂上老師講得盡量少,學(xué)生動口動手動腦盡量多;同時在每一堂課上都充分考慮每一個層次的學(xué)生學(xué)習(xí)需求和學(xué)習(xí)能力,讓各個層次的學(xué)生都得到提高。
四、認(rèn)真批改作業(yè):布置作業(yè)做到精讀精練。有針對性,有層次性。同時對學(xué)生的作業(yè)批改及時、認(rèn)真,分析并記錄學(xué)生的作業(yè)情況,將他們在作業(yè)過程中出現(xiàn)的問題作出分類總結(jié),進(jìn)行透切的評講,并針對有關(guān)情況及時改進(jìn)教學(xué)方法,做到有的放矢。對學(xué)生:
“不積跬步,無以致千里;不積小流,無以成江海”,學(xué)生要從點點滴滴做起,一步一個腳印,一份耕耘,一份收獲。學(xué)習(xí)要靠你們自己,踏踏實實做事,所謂“行百里路半九十”,學(xué)習(xí)要鍥而不舍,奮進(jìn)永遠(yuǎn)是核心,讓努力充實自己,厚積而薄發(fā),達(dá)到“書香引蝶宜養(yǎng)蘭,胸中點墨繪新顏”的水平。
第二篇:編譯原理課程-教學(xué)計劃
編譯原理教學(xué)大綱2001,9
周次課內(nèi)學(xué)時課內(nèi)安排(講授內(nèi)容)建議課外安排備注
12編譯原理概述閱讀PL/0程序文本
24介紹PL/0編譯程序閱讀PL/0程序文本
32詞法分析程序自動構(gòu)造閱讀PL/0程序文本
(正規(guī)式,有窮自動機)
44(2)詞法分析程序自動構(gòu)造練習(xí)題
Lex(Flex)介紹,布置PP1實踐題一PP1
52文法和語言練習(xí)題
64自頂向下語法分析練習(xí)題提交PP1LL(1)文法
72自底向上語法分析練習(xí)題
LR文法
84LR分析練習(xí)題
期中考試
92Yacc介紹,布置PP2實踐題一PP2
104習(xí)題課
語法分析方法比較提交PP2 112語法制導(dǎo)翻譯,布置PP3實踐題一PP3
124語法制導(dǎo)翻譯
運行時存儲組織提交PP3 132運行時存儲組織練習(xí)題144代碼優(yōu)化, 布置PP4實踐題一PP4
152代碼生成164實踐題目總結(jié)答辯
習(xí)題課
附1 實踐題目(從中選一)
實踐題一 Deacf編譯程序的設(shè)計和實現(xiàn).實踐題二Pl/0編譯程序擴充,用Lex和 Yacc實現(xiàn)一個小解釋器.實踐題三 java實現(xiàn)的Mini-Triangle編譯程序.(限少數(shù)同學(xué)選,在第四周作選題報告)附2 課程評分
1課堂小測驗,作業(yè)抽查 10%期中考試20%
3實踐題一 40% 實踐題二20% 實踐題三 50%
4期末考試 完成實踐題一 30% 完成實踐題二50% 完成實踐題三 20%
第三篇:《編譯原理》課程培訓(xùn)心得體會
《編譯原理》課程培訓(xùn)心得體會
天津科技大學(xué) 吳江紅
首先感謝全國高校教師網(wǎng)絡(luò)培訓(xùn)中心為我們這些工作在教學(xué)第一線的教師提供一個提高自己教學(xué)水平、方法和能力的機會,使得我們學(xué)習(xí)到更好的方法能更好地為學(xué)生服務(wù)。經(jīng)過本次培訓(xùn)之后,我個人覺得可以通過以下幾個方面提高教學(xué)質(zhì)量。
1、認(rèn)清編譯原理,明確學(xué)習(xí)意義,激發(fā)學(xué)生的熱情 幫助學(xué)生認(rèn)清編譯原理的作用和地位。給學(xué)生介紹清楚可以通過編譯原理的學(xué)習(xí),有助于學(xué)生快速理解、定位和解決在程序編譯、測試與運行中出現(xiàn)的問題。幫助學(xué)生克服畏難心理,提高學(xué)生的興趣。編譯原理中的原理除了可以用于分析編譯器以外,還對諸如人工智能、并行處理技術(shù)等課程的學(xué)習(xí)具有指導(dǎo)作用。本門課程學(xué)習(xí)對其它課程的學(xué)習(xí)和今后很多領(lǐng)域的理論研究具有深遠(yuǎn)的意義,如計算機軟件技術(shù)領(lǐng)域、計算機系統(tǒng)結(jié)構(gòu)領(lǐng)域、人工智能系統(tǒng)的機器學(xué)習(xí)領(lǐng)域、并行處理技術(shù)等領(lǐng)域。
2、優(yōu)化教學(xué)內(nèi)容,搞好課堂教學(xué)
可以采用以人本主義學(xué)習(xí)理論為基礎(chǔ),充分發(fā)揮學(xué)生的學(xué)習(xí)主動性,注重啟發(fā)式教學(xué),注重提高學(xué)生的素質(zhì)、培養(yǎng)學(xué)生的創(chuàng)新能力。使得學(xué)生對編譯原理課程的興趣提高,能主動學(xué)習(xí),理解、體會前輩們在解決相應(yīng)問題時是如何考慮的,同學(xué)們自己又是如何考慮的。
編譯系統(tǒng)中的一些概念很抽象,學(xué)生無法理解,就只會死記硬背,當(dāng)然更無興趣可言。在講解的過程中,可以選用學(xué)生最熟悉的一些實例,通過類比使抽象的概念更容易被理解。我本人覺著對于工學(xué)學(xué)科的同學(xué)來說,不用在數(shù)學(xué)定義上花費太多時間,因為他們對數(shù)學(xué)符號不敏感,而應(yīng)該盡量多安排例子,使得同學(xué)們能把數(shù)學(xué)符號代表的含義通過例子理解清楚,以及知道如何使用。
有效地利用教學(xué)輔助手段,增強課堂教學(xué)效果。由于本課程涉及形式語言、有窮自動機等抽象內(nèi)容,學(xué)生在學(xué)習(xí)過程中接受起來較困難。為了提高學(xué)生的學(xué)習(xí)興趣、增強課堂教學(xué)效果,可以將教學(xué)過程中一些需要教師在黑板上動態(tài)演示的過程做成CAI課件,既可在課堂上演示,也可在課后由學(xué)生自己觀摩,有助于加深學(xué)生對所學(xué)知識的理解。
同時可在課堂上和習(xí)題中,多準(zhǔn)備了一些從實際程序的編譯和運行時碰到的問題中抽象出來的例子,供學(xué)生用所學(xué)的知識去分析、理解、并加以解決。通過采用這種實例教學(xué)方式,既能夠?qū)η捌谡n程起到復(fù)習(xí)鞏固的作用,又能讓學(xué)生切實體會到本課程的實際價值,從而有力地激發(fā)了學(xué)生學(xué)習(xí)編譯原理和技術(shù)的積極性。
3、選取合適的教材
把理論知識具體化、通俗化,教材在教學(xué)過程中起關(guān)鍵作用。一本好的教材不僅對老師教的過程很重要,同時在學(xué)生進(jìn)行預(yù)習(xí)和復(fù)習(xí)時也是相當(dāng)重要的。我們可以選擇蔣宗禮教授編寫的編譯原理教材來達(dá)到我們的目標(biāo)。
4、精心設(shè)計實驗教學(xué)內(nèi)容
編譯原理課程對實踐的要求比較高,所以實驗課是培養(yǎng)學(xué)生實踐能力的重要環(huán)節(jié),是鞏固和驗證所學(xué)理論知識,培養(yǎng)學(xué)生分析問題、解決問題能力的重要環(huán)節(jié)。因此為了能達(dá)到好的實驗效果,極大地促進(jìn)學(xué)生對原理的理解,可以通過認(rèn)真設(shè)計合適的實驗內(nèi)容、采用適當(dāng)?shù)膶嶒炐问揭约敖處煹哪托闹笇?dǎo)等途徑。
第四篇:編譯原理課程報告(共)
編譯原理課程報告
學(xué)院: 信息工程學(xué)院專業(yè): 軟件工程 姓名: 賴杰學(xué)號: 09927212 指導(dǎo)老師: 朱文華完成時間: 2012.5.19
編譯原理是計算機專業(yè)的一門重要專業(yè)課,旨在介紹編譯程序構(gòu)造的一般原理和基本方法,在計算機本科教學(xué)中占有十分重要的地位。
編譯程序是現(xiàn)代計算機系統(tǒng)的基本組成部分之一,而且多數(shù)計算機系統(tǒng)都配有不止一個高級語言的編譯程序,對有些高級語言甚至配置了幾個不同性能的編譯程序。從功能上講,一個編譯程序就是一個語言翻譯程序。語言翻譯程序把一種源語言書寫的程序翻譯成另一種目標(biāo)語言的等價程序,所以總的說編譯程序是一種翻譯程序,其源程序是高級語言,目標(biāo)語言程序是低級語言。
編譯程序完成從源程序到目標(biāo)程序的翻譯工作,是一個復(fù)雜的整體的過程。從概念上來講,一個編譯程序的整個工作過程是劃分成幾個階段進(jìn)行的,每個階段將源程序的一種表示形式轉(zhuǎn)換成另一種表示形式,各個階段進(jìn)行的操作在邏輯上是緊密連接在一起的。一般一個編譯過程是詞法分析、語法分析、語義分析、中間代碼生成、代碼優(yōu)化和目標(biāo)代碼生成。
編寫編譯器的原理和技術(shù)具有十分普遍的意義,以至于在每個計算機工作者的職業(yè)生涯中,本書中的原理和技術(shù)都會反復(fù)用到。在這本書中,向我們介紹了文法的概念,在講詞法分析的章節(jié)中講述了構(gòu)造一個有窮自動機的方法,以及如何將一個不確定的有窮自動機轉(zhuǎn)化成確定的有窮自動機和有窮自動機的最小化等方法。
該門課中主要講述的是兩種分析方法,即自上而下分析的方法和自下而上分析的方法。自上而下分析法是從文法的開始符號出發(fā),反復(fù)使用各種產(chǎn)生式,尋找“匹配”于輸入符號串的推導(dǎo)。自下而上的分析方法是從輸入符號串開始,逐步進(jìn)行“歸約”到文法的開始符號。
1.自上而下的分析法主要的就是LL(1)文法,首先要判斷某個文法是否是
LL(1)文法,如果是就可以按照LL(1)文法分析的方法去判斷某一個輸入串是否為該文法的句子。LL(1)f分析方法是,首先根據(jù)判斷是否為LL(1)文法求出每一個非終結(jié)符的SELECTE集合來構(gòu)造該文法的預(yù)測分析表,然后根據(jù)預(yù)測分析表去分析輸入串得出結(jié)果;如果不是LL(1)文法,比如說文法產(chǎn)生式中含有左遞歸和相同的因子,就要消去左遞歸或公共因子,再根據(jù)每一個非終結(jié)符的SELECT集合來判斷是否為LL(1)文法。利用LL(1)文法分析一個輸入串是不是某一個文法的句子,根據(jù)預(yù)測分析表是比較直觀的,而且分析的效率也是比較高的。
2.自下而上的分析方法主要是算符優(yōu)先分析方法。算符優(yōu)先分析的基本思
想是只規(guī)定算符之間的優(yōu)先關(guān)系,也就是只考慮終結(jié)符之間的優(yōu)先關(guān)系,由于算符優(yōu)先分析不考慮非終結(jié)符之間的優(yōu)先關(guān)系,在歸約的過程中只要找到可歸約串就歸約,沒有考慮非終結(jié)符之間的優(yōu)先關(guān)系,所以說算符優(yōu)先歸約不是規(guī)范規(guī)約。算符優(yōu)先分析首先是要構(gòu)造算符
優(yōu)先關(guān)系矩陣;然后就是分析輸入串,根據(jù)關(guān)系矩陣進(jìn)行移進(jìn)或歸約操作;最后分析得出判斷的結(jié)果。
3.算符優(yōu)先分析是有缺點的,由于算符優(yōu)先分析方法在分析的過程中不知
道如何確定句柄。下面要說的就是LR(0)文法,這種方法能夠根據(jù)當(dāng)前分析棧中的符號串就可以惟一的確定分析器的動作是移進(jìn)還是歸約,并且是用哪一個產(chǎn)生式。根據(jù)規(guī)則寫出LR(0)的分析的項目集,再由項目集構(gòu)造LR(0)的分析表,其次根據(jù)分析棧的元素和狀態(tài),查看分析表,找出相關(guān)的句柄,是歸約還是移進(jìn),最后就是分析得出結(jié)果了。SLR(0)文法是以LR(0)文法為基礎(chǔ)的文法,是為了解決程序設(shè)計語言的文法不能夠滿足LR(0)文法條件的另一種文法分析的方法,大致的與LR(0)的分析過程相似,只是在項目集的組合上有些區(qū)別。
該課程理論性與實踐性都很強,我在學(xué)習(xí)時普遍感到內(nèi)容非常抽象,不易理解,內(nèi)容多且繁瑣,難以完整、全面地掌握編譯原理的有關(guān)知識,更不用說靈活運用編譯原理知識從事相關(guān)設(shè)計或應(yīng)用于其他領(lǐng)域。雖然只有少數(shù)人從事編譯方面的工作,但是這門課在理論、技術(shù)、方法上都對我提供了系統(tǒng)而有效的訓(xùn)練,有利于提高軟件人員的素質(zhì)和能力。
在我學(xué)習(xí)編譯原理以前,都認(rèn)為編譯原理只能應(yīng)用在寫程序語言的編譯器上,覺得用處不大,學(xué)習(xí)興趣不高。而在后來的學(xué)習(xí)中,我逐漸認(rèn)識到計算機專業(yè)的學(xué)生,除了要會編寫程序語言之外,還應(yīng)該了解它是如何被計算機所識別,這才是真正并且透徹地學(xué)習(xí)軟件。另外,編譯器中每一個模塊的編寫,都能對我的編程能力的提高有很大幫助。在今后若從事軟件工程,這門課程也能夠?qū)帉懗绦蛴兴鶐椭?/p>
為了能夠系統(tǒng)掌握這門專業(yè)課,我把編譯原理分為以下幾個模塊:①語言和文法;②詞法分析;③語法分析;④語義分析和中間代碼生成;⑤代碼優(yōu)化和目標(biāo)代碼生成。
在學(xué)習(xí)的開始,我需要掌握什么是編譯,編譯分為哪些階段,編譯程序和解釋程序的區(qū)別等等。在做好了這些方面的準(zhǔn)備后,開始了系統(tǒng)的學(xué)習(xí)。
語言和文法部分的知識包括文法基本概念及文法的二義性。基本概念有文法定義、推導(dǎo)、句型、句子等等。二義性文法是通過畫語法樹的方法來證明。
詞法分析中的重點是有窮自動機DFA的生成以及DFA和正規(guī)式與正規(guī)文法的關(guān)系。還要熟練掌握NFA轉(zhuǎn)換為DFA的方法及DFA的化簡。
語法分析包括自上而下和自下而上分析。自上而下分析著重掌握LL(1)文法,自下而上分析重點掌握算符優(yōu)先文法和LR(0)、SLR(1)文法。
語義分析重點是其功能,中間代碼生成和語法制導(dǎo)翻譯定義與方法。
最后,優(yōu)化分為局部優(yōu)化和循環(huán)優(yōu)化,重點理解一些關(guān)鍵詞,如基本塊、流圖等,要學(xué)會自己畫出程序流圖。用DAG圖進(jìn)行局部優(yōu)化是重點。
在學(xué)習(xí)文法時,對文法的組成,用法都較為明了,而在真正做題時卻感到十分吃力。例如給出了一個語言,要求寫出它的上下文無關(guān)文法,就感到十分棘手,所以今后在這方面要加大練習(xí)量,以熟練掌握。
而在之后的詞法分析和語法分析中,我感到在看基本原理時十分困難,通常要長時間鉆研才能夠有所了解,而一旦掌握了基本原理,做題時就感到十分順暢了。例如,在剛接觸到LR(0)文法時,我用了大量的時間去學(xué)習(xí)它的原理,掌
握之后,在列LR(0)分析表和寫分析過程時,只要思路清晰,就會比較順暢,而且不會犯錯。
通過這學(xué)期的對編譯原理課程的學(xué)習(xí),這么課程讓我學(xué)會了如何去編譯程序的一個理論知識,知道編譯程序是通過怎樣的方法把程序員編寫的源程序翻譯成計算機能夠執(zhí)行的機器語言的,我覺得主要的是大大加深了我對程序設(shè)計的理解,也對計算機的理論和軟件編譯有了深一步的理解。這學(xué)期的編譯原理的實驗使我知道了編譯程序的工作的基本過程及其各階段的基本任務(wù),了解了 編譯程序流程框圖,編譯程序的生成過程、構(gòu)造工具及其相關(guān)的技術(shù)對課本上的知識有了更深的理解,可以說這是將書本上的理論知識的應(yīng)用,是對理論知識的更深一步的理解和掌握。
第五篇:編譯原理課程學(xué)習(xí)總結(jié)體會
編譯原理課程學(xué)習(xí)總結(jié)體會
編譯原理是我們計算機科學(xué)與技術(shù)的一門非常重要的專業(yè)課,它主要介紹了高級程序設(shè)計語言編譯程序構(gòu)造的一般原理、基本設(shè)計方法、主要實現(xiàn)技術(shù)和一些自動構(gòu)造工具。
在開始學(xué)習(xí)這門課程之前,老師就說過編譯原理是一門比較難學(xué)的課程,它主要的難點在于它的概念性和理論性很強,內(nèi)容豐富且抽象,具有嚴(yán)密的邏輯性,應(yīng)用其他課程的的內(nèi)容比較多。
通過這一學(xué)期的學(xué)習(xí),我也發(fā)現(xiàn)了編譯原理是一門理論性很強的課程,從文法和語言的概念到LL(1)文法和LR(0)文法的分析,幾乎都是對具體問題的抽象。這門課還包含許多理論知識和算法,這些理論的學(xué)習(xí)和理解都存在著一定的難度。其中理論知識包括:詞法分析器的構(gòu)造,語法中各種分析器(LR, LL,SLR,LALR 等)實現(xiàn)與完成。因而,我們需要更多的時間來理解、掌握相關(guān)的知識。在學(xué)習(xí)的過程中也存在這許許多多的問題,比如說由于我之前對文法的概念不夠清晰,在后面老師講解具體文法的方式式,感覺自己很難聽懂,影響的自己后期的學(xué)習(xí)效率,也使得自己對這門課程的興趣大大降低。此外,這門課程的課時也安排得不多,每個周也就一兩次課,這樣也不利于我們隊這門課程的理解和掌握,但好在我后面通過自己做題和詢問同學(xué)之后將詞法分析和語法語法分析的方法弄懂之后,自己對這門課程的興趣又提起來。除了自己課后對知識進(jìn)行了總結(jié)之外,最重要的還是老師的講解,師在有限的課程中盡量將知識點以比較容易接受的方式給我們講解,教我們用簡單的方法理解記憶不同的知識,這樣我們學(xué)習(xí)起這門課程來也沒有那么難了。
在我看來編譯原理這門課程不僅僅在于其本身的理論價值,更在于為我們解決問題提供的思維方式和方法。從LL(1)到LR(0),問題不斷被解決的同時,又有一個個新的問題提了出來。對計算機語言世界的知識積累,像滾雪球一樣越滾越大。這個逐漸遞進(jìn),逐漸解決問題的過程對我來說是收獲很大的。整個過程好像踏著前人研究編譯理論的路線,不斷感覺他們遇到的問題,更重要的是他們解決問題的思路。編譯原理的課程帶給我的不只是如何去編譯程序這樣的理論知識,相信更重要的是一種如何“自動計算”的思路。通過對相關(guān)編譯問題的具體分析,讓我體會最深的是一種“自動計算”的思想,同時完成編譯試驗后,更是感到了一種“自動計算”的快樂。”然而我明白自己雖然對編譯有了一定的了解,我懂得了文法的分析,學(xué)會了構(gòu)造確定和非確定有限自動機,學(xué)會了LL(1)文法和LR(0)文法等,但是并沒有完全掌握,對于這些知識點的實質(zhì)性和其他方面,更是認(rèn)識不深。作為一名學(xué)習(xí)計算機科學(xué)與技術(shù)的學(xué)生,我明白編譯原理是軟件工程的基礎(chǔ),課程的結(jié)束并不意味著學(xué)習(xí)的結(jié)束,只有通過以后的學(xué)習(xí),才能更深入地了解編譯原理,才能將編譯原理更好地應(yīng)用到以后的學(xué)習(xí)和工作中去。
最后,衷心感謝老師這一學(xué)期的辛苦教學(xué),讓我學(xué)到了許多頗為重要的知識。