国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

普通高校本科《編譯原理》課程教學方法探討

2015-12-10 09:09李洪霞
山東工業(yè)技術 2015年24期
關鍵詞:教學目的教學內容

李洪霞

摘 要:針對普通高校本科生編譯原理課程的教學,從教學目的、教學內容以及教學中的問題三個方面對其進行了分析和討論,并給出了相應的解決方案。

關鍵詞:編譯原理;編譯過程;教學目的;教學內容

DOI:10.16640/j.cnki.37-1222/t.2015.24.265

《編譯原理》是計算機及相關專業(yè)的一門重要專業(yè)課程,它對促進學生理解編譯過程及技術,增強學生的程序設計及實現(xiàn)能力,起著重要的作用。但它同時也是一門難學的課程,其主要體現(xiàn)在先導課程多、理論性強、對實踐階段要求高等方面。因此如何教好這門課程是需要思考的問題。

同時,編譯原理課程在普通高校本科生、重點高校本科生以及碩士研究生中均有開設,其教學目的、教學內容以及教學方法應該有所區(qū)別。本文針對普通高校本科生,就如何開展編譯原理課程的教學展開討論。

1 教學目的的確定

教學目的是一門課程的核心,是開展教學工作的前提和基礎。編譯原理作為一門計算機及相關專業(yè)的專業(yè)核心課程,在不同層次的學生之間均有開設。但針對學生的層次不同,應設立不同的教學目標。

針對普通高校本科生,未來的發(fā)展多定位在技術人員。因此,培養(yǎng)方向應以“工程性”和“應用性”為主[1]。由此,針對普通高校本科生,可設定為以學習基本原理和方法為手段,理論聯(lián)系實際,以培養(yǎng)學生計算機思維[2]、提高分析解決問題和理論聯(lián)系實際的能力為目標來進行教學。下文中的學生,如不特別說明,均指普通高校本科生。

基本原理和方法的學習:編譯原理課程中涉及到一些非常基礎和重要的原理和和技術,如正規(guī)式和正規(guī)文法以及狀態(tài)自動機的等價性,LR分析法的正確性與合理性;用狀態(tài)自動機(DFA或NFA)來進行單詞的識別、用三地址代碼進行中間代碼的表示、基本結構的中間代碼生成等。通過這些內容的學習,可以對程序設計有深入的掌握和理解。同時,編譯原理是一門理論性和實踐性都很強的課程,如何將源語言轉換成目標語言,除了掌握其技術理論外,還需能夠將源程序(如具體的C語言程序),轉換成目標代碼(如匯編代碼)的形式。因此,理論的學習必須與具體的源語言、目標語言以及目標機聯(lián)系起來,理論與實踐結合的非常緊密。

分析解決問題能力的提高:在編譯原理課程的學習中,給出了多種問題的解決方法。如在語法分析問題上,首先提出問題:如何判斷一個句子是否是合規(guī)的句子。然后用自頂向下和自底向上兩種方法對該問題進行了分析解決。類似地,在中間代碼生成部分,給出遞歸求解中間代碼的方法。這些常用和基本的問題解決方案對提高學生分析解決問題的能力有所幫助。

2 教學內容的選擇

現(xiàn)階段,國內外編譯原理的教材內容不斷更新,像并行編譯、形式語言與自動機等內容都成為編譯原理課程的一部分編寫進了教材[3]。由于課時的有限性,應根據(jù)學生的實際需求,以通過對編譯技術的學習,提高學生編程能力為根本。具體來講,即通過對給定問題進行分析,能夠采用合適的結構來存儲數(shù)據(jù)、運用合適的模型來描述問題,然后提高運用語言編寫代碼的能力,快速發(fā)現(xiàn)并糾正程序中錯誤的能力,及編寫高質量程序代碼的能力。

在程序編寫部分,除了對程序語言的理解和掌握外,主要就是對編譯技術的掌握。其重點內容應包括:詞法分析,語法分析,語義分析與中間代碼生成,中間代碼優(yōu)化及目標代碼生成這幾個主要的環(huán)節(jié)。其它內容,在不影響課程進展的情況下,可以考慮略講或直接省略。如在自下而上語法分析中,像算符優(yōu)先分析可以不講或略講。在LR分析法中,具體內容涉及到LR分析器及LR(0)、SLR、規(guī)范LR及 LALR分析表的構造方法。此處是語法分析中的難點,如果逐一講解必然占用大量課時。故可在LR分析器的基礎上,以LR(0)為例來對自下而上語法分析進行講解。然后,在此基礎上進一步引申,如項目集中含有沖突項目(如同時含有移進和歸約項目),應該如何處理。這些供有興趣的同學進一步探討。

類似地,對屬性文件及語法制導翻譯,并行編譯的內容,以及形式語言與自動機的知識點,采用點到為止的方式,僅提出相應的問題,不做細致分析講解。

同時,由于編譯原理的先導課程較多,如以C語言為源語言,匯編語言為機器代碼為例進行課程分析,對涉及到的相關知識及內容應適當加以回顧,使學生能將精力集中放到編譯技術的理解上,不因先導課程中知識點的不理解而影響對當前知識的掌握。

3 教學過程中的注意事項

編譯原理課程是理論性強的課程,也比較抽象,如何讓學生能夠理解并運用其中的原理和技術,從而來提高編程能力呢?實例引用和與實踐結合就是課程講授中非常重要的兩個方面。

(1)實例引用貫穿始終。如在編譯過程概述中,提到編譯過程的各個階段,詞法、語法及語義分析等概念,學生一時難以接受和理解。此時可舉實例進行講解,比如以賦值語句:area=pi*r^2為例,講解如何將本條語句由源程序通過詞法、語法等步驟,逐步轉換成目標代碼并加以執(zhí)行的。從而使學生對整個編譯過程有一個直觀的印象。

同樣,在中間代碼生成階段,舉例說明是如何將三種基本結構的語句,如順序結構語句(如賦值語句)、控制結構語句(如if…then, if…then…else語句)、循環(huán)結構語句(while和for語句)等,分別用具體的源語言程序來說明,講解是如何利用語義分析技術將其翻譯成中間代碼(如三元式)的。

(2)與實踐相結合。上面提到以實例來對相關的技術加深理解。而在實踐應用方面,只有將理論與技術真正應用于實踐,編譯技術的學習才有意義。如在上機實習方面,可通過C語言構造一個小的編譯系統(tǒng)??梢苑謩e利用flex和bison等工具構造詞法、語法、語義分析器,并在此基礎上構造一個小的編譯系統(tǒng)。使得詞法分析可識別關鍵字、標識符以及各種符號,語法分析可進行語法的判斷,語義分析器可進行一些數(shù)學運算,而構造的編譯系統(tǒng)可以將C語言的一個子集翻譯成匯編語言的形式。

4 小結

針對普通高校計算機專業(yè)及相關專業(yè)本科生,從教學目的、教學內容、教學中出現(xiàn)的問題三個方面對編譯原理課程的教學進行了分析討論。希望通過對這幾個方面的討論,可以使學生能夠對編譯過程有更深入的理解,并使其編程能力得到進一步的提高。

參考文獻:

[1]張昱.“編譯原理”課程的教學內容選擇的探討[J].計算機教育,2009(18):143-146.

[2]蔣宗禮.“編譯原理”課程與專業(yè)能力培養(yǎng)[J].計算機教育,2009(21):4-6.endprint

猜你喜歡
教學目的教學內容
“雙減”背景下的小學數(shù)學教學內容結構設計例談
新冠疫情期間小學信息技術在線教學內容的選擇和實踐
大學英語教學中教與學目的的分析和思考
對高職院校教改的幾點思考
等差數(shù)列教學內容的深化探究
借力“正能量”,助力初中物理入門教學
對語文教學目的的思考
建筑材料課程教學初探
計算機導論雙語教學研究
設計問題鏈 變告訴為探索
芒康县| 涞水县| 绥芬河市| 盐源县| 台江县| 镇远县| 龙山县| 镇沅| 旺苍县| 和平县| 张家川| 汝州市| 色达县| 舒兰市| 祁东县| 贵阳市| 台东县| 伊通| 天津市| 福鼎市| 无为县| 淮南市| 民县| 全南县| 金坛市| 印江| 岗巴县| 兴宁市| 获嘉县| 古田县| 陵川县| 江北区| 伊川县| 专栏| 五河县| 临泽县| 潍坊市| 政和县| 始兴县| 安宁市| 阿克苏市|