999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

編譯原理教學現狀與創新研究

2018-01-22 07:17:30崔光宇
無線互聯科技 2017年24期

崔光宇

摘 要:編譯原理是計算機專業的主干課程,主要是為了使學生了解高級程序設計語言源程序翻譯成計算機能處理的目標代碼的整個過程,在整個專業教學體系中占有著重要的地位。文章分析了編譯原理教學過程的現狀以及存在的一些問題,進行了一些研究,最主要的是針對關鍵知識點設計實驗,然后進一步將編譯原理的各個部分整合為一個簡單的編譯器,把理論和實踐結合起來,加深學生對各部分知識的理解,同時也能提高學生設計大型系統的能力。

關鍵詞:編譯原理;課程實踐;教學創新研究

編譯器產生于20世紀60年代,在計算機學科技術發展中起到非常重要的作用,是計算機不可缺少的工具。掌握編譯器的原理對于計算機學習人員是最重要的基礎知識。在高校教學中,編譯原理主要是為了使學生了解高級語言源程序翻譯成計算機能處理的目標代碼的整個過程,主要包括詞法分析、語法分析、語義分析、中間代碼生成、中間代碼優化以及目標代碼生成這6大部分。通過本課的學習,學生可以系統掌握編譯的基本原理和基本技術,對之前學習過的程序語言的設計與和實現有更好的理解,提高實踐能力。

編譯原理課程是計算機專業最難的課程之一,原因如下:(1)理論性很強,基本原理比較抽象,算法描述主要使用形式化語言,比如,有窮自動機、上下文無關文法等,與以往的學習有很大的差別,學生很難理解算法背后的精髓。(2)教學方式較為單一,因為理論知識過多,大部分學校為了保證教學進度,時常以灌輸式為主,課堂上主要是編譯系統原理為主,忽視了具體實例的講解。(3)在實踐方面,編譯的算法較為復雜,對學生的編程能力以及邏輯思維能力都有很高的要求。因此,如何使用適當的方法提高課程的教學效果,是當前編譯原理教學中需要探討的重要問題。

1 研究現狀以及存在的問題

1.1 國內外研究現狀

國外大學從20世紀60年代開始開設編譯課程,較為經典的編譯原理教程有Aho等[1]編著的《Compilers: Principles, Techniques and Tools》(中文名:《編譯:原理,技術與工具》)與Appel等[2]編著的《Modern Compiler Implementation In Java/C++/ML》(中文名:《現代編譯原理—C語言描述》),這兩本書在編譯原理領域分別被稱為“龍書”“虎書”。“龍書”出現于1986年,第2版刪除了語法分析的算符優先分析法、語法翻譯中遞歸計算方法等過時的技術,增加了面向對象的編譯、類型檢查等比較新新技術。“虎書”中包含C版本、Java版本,在“龍書”知識點基礎之上,增加了循環優化等內容。

近年來,國內學校在編譯原理教學方面也積累了大量的經驗,上海交通大學張冬茉等[3]提出了現階段進行大型編譯原理課程設計的教學模式和方法,使學生能夠通過實現一個實用的編譯系統,提高對編譯原理的認識。合肥師范學院祖弦等[4]針對核心知識點,設計實驗教學案例,探討在實驗案例驅動下的編譯原理課程教學創新方案。

1.2 存在的問題

1.2.1 學生對于課程的認識模糊

大部分學生對于編譯原理的認識在于,認為學習編譯原理的目的,是構建一個完整的編譯器。然而大部分大學生在畢業后,制作編譯器的可能性很小,學生很難提高學習興趣。

1.2.2 編譯原理理論抽象,算法比較復雜

相較于以往學習的課程,編譯原理課程對于學生而言十分的抽象,比如有窮自動機等,學生理解不易,同時,課程中有很多復雜的算法,對于大部分大學生來說都很難掌握。

1.2.3 程序設計要求比較高

課程設計部分要求學生使用學過的C,C++,C#,Java等語言實現,由于算法本身比較復雜,對學生編程能力有較高的要求,然而大部分學生在之前的學習中并沒有很好地掌握以上編程語言,使得課程設計更加困難。

2 教學創新措施

2.1 明確學生學習編譯原理的作用

雖然很少有人從事編譯方面的工作,但是學習編譯的整個過程對于學生學習計算機科學的理論、技術和方法都是很有效地提高,而且編譯原理的很多原理、算法不僅局限于編譯本身。學好編譯原理的一些算法和原理,對計算機很多問題的解決都能夠起到很好的作用。此外,完整地編寫一個編譯程序,為學生提供了很好的編寫大型程序的實例,非常有利于學生以后對于大型程序的編寫。

同時,在大三課程中設置編譯原理,其學習中融合了多門以往的課程內容,比如高級語言、數據結構、操作系統、匯編語言等,這使得學生能更好地理解以往學習內容的實際應用,還能更好地提高學生的程序設計能力。

2.2 教學方法的創新

編譯原理課程理論性很強,實踐性也很強,是兩者相結合的課程。理論部分知識枯燥、抽象、難學。所以在講理論時可以將理論、算法部分采用實例驅動的方法,將抽象的知識結合到一個個實際問題中去。在解決問題過程中,介紹基本原理和算法,這樣學生可以很好地理解原理和算法在實際問題中的作用,提高學生的分析問題、解決問題的能力。

2.3 編譯原理實驗環節的設計

實驗是培養學生應用能力最直接的手段,鑒于學生的編程能力,增加適當難度的實驗,加強學生對重要知識點的認識和理解。實驗總體分為兩部分:一是對編譯原理課程中的關鍵方法的實驗,二是整體的設計一個簡單的編譯器。

2.3.1 詞法分析器的設計

詞法分析器實驗:制作一個讀單詞過程,源程序保存在文本文件中,讀取該文件,識別出各個具有獨立意義的單詞,即基本保留字、標識符、常數、運算符、分界符5大類。依次輸出各個單詞的內部單詞種別及單詞符號自身值,遇到錯誤時可顯示“Error”,然后跳過錯誤部分繼續顯示。

2.3.2 語法分析器的設計

語法分析器實驗:設計、開發一個高級語言的LL(1)語法分析程序,實現對源程序的語法檢查和結構分析,加深學生對頂向下語法分析、First集、Follow集、Select集、判斷LL(1)文法的方法、文法等價變換、LL(1)分析表的構造、對某一輸入串的分析過程的理解。endprint

2.3.3 語義檢查和中間代碼生成的設計

語法檢查和中間代碼生成實驗:設計、開發一個高級語言的語義檢查和中間代碼生成程序,加深對語法制導翻譯技術、類型確定、類型檢查、常見可執行語句(如賦值語句、條件語句、循環語句)翻譯技術的理解。

2.3.4 代碼優化的設計

代碼優化實驗:設計、開發一個高級語言的代碼優化程序,包括簡單的局部優化、循環優化和全局優化,加深學生對代碼優化重要性的認識。

2.3.5 目標代碼生成的設計

目標代碼生成實驗:目標代碼生成是把源程序的中間代碼轉換成等價的目標代碼,在這里,設計、開發一個簡單的代碼生成器,能將中間代碼(四元式形式)轉換成目標代碼。設計過程中,引進目標指令與四元式對照表,便于轉換。

2.3.6 編譯器的設計

以上5組實驗對于編譯過程中的6大部分重點方法進行了實踐,由于比較分散,大部分學生不能很好地理解每個部分是如何在整個編譯系統中達到協調工作的。經過一個學期的學習,開設一周左右的集中課程設計。目的是為了設計一個相對完整的編譯器。題目較為簡單,學生可以根據學生自身情況自行設計一個適合自己難度的做法,基礎較差的同學,可以針對題目設計一些最為基礎的算法,而基礎較好的同學可以將編譯中多種算法融入編譯器中,最終生成一個簡單的編譯器。通過這個設計,學生能夠系統地理解編譯的整個過程。

3 結語

在編譯原理課程教學過程中,針對現存的一些問題,本文進行了一些創新研究。最為重要的措施是提出了一套實驗教學方法,很好地提高了學生學習興趣,更好地讓學生理解和掌握了課程重要算法,并通過制作一個編譯器,把編譯原理的所有內容達到一個融會貫通的目的,培養了學生編程能力,達到了提高教學質量的目的。

[參考文獻]

[1]AHO A V,SETHI R,ULLMAN J D.Compilers:principles, techniques and tools[M].New York:Additions Wesley,1986.

[2]APPEL A W,JEOS P.Modern compiler implementation in Java/C++/ML[M].New York:Cambridge,1997.

[3]張冬茉,方習文.編譯原理課程設計的教學實踐和改革[J].實驗室研究與探索,2012(11):134-137.

[4]祖弦,朱強,謝飛.實驗案例驅動的編譯原理教學改革探討[J].合肥師范學院學報,2017(3):74-76.

Abstract:Compiler principle is the main course of computer science, primarily to enable students to understand the entire process of source code of high-level programming language translated into object code which computer can handle, it occupies an important position in the whole teaching system. This article analyzes the current situation and problems in teaching compiler principle, explores the teaching contents and method. The most important thing is to design experiments for key knowledge points, and then integrated the various parts into a simple compiler, combined theory with practice, deepened students understanding of the various parts of knowledge, also improve the ability to design large systems.

Key words:compiler principle; curriculum practice; research on teaching innovationendprint

主站蜘蛛池模板: 日韩国产综合精选| 欧美一区二区三区不卡免费| 国产幂在线无码精品| 一区二区三区四区日韩| 国产成人调教在线视频| 精品自拍视频在线观看| AV不卡国产在线观看| 婷婷激情亚洲| 激情无码字幕综合| 欧美日韩精品一区二区在线线| 制服丝袜一区二区三区在线| 国产国拍精品视频免费看 | 小蝌蚪亚洲精品国产| 亚洲无码高清一区二区| 2021国产精品自产拍在线| 国产夜色视频| 亚洲综合第一页| 亚洲黄网视频| 亚洲婷婷在线视频| 中文字幕在线日韩91| 国产色网站| 午夜激情福利视频| 激情综合激情| 在线观看免费国产| 国产视频只有无码精品| 国产美女一级毛片| 99视频只有精品| 国产精品嫩草影院视频| 国产AV无码专区亚洲A∨毛片| 日韩在线观看网站| 亚洲91在线精品| 国产最爽的乱婬视频国语对白| 99热这里只有精品5| 亚洲人成色在线观看| 欧日韩在线不卡视频| 欧美日韩成人| 国产精品第一区在线观看| 色婷婷电影网| 四虎永久在线精品国产免费| 中文字幕久久亚洲一区| 国内精品久久九九国产精品| 农村乱人伦一区二区| 国产高清在线观看91精品| 午夜视频免费一区二区在线看| 亚洲人免费视频| 91麻豆久久久| 99这里只有精品在线| 伊人福利视频| 国产精品亚洲日韩AⅤ在线观看| 亚洲第一成人在线| 欧美19综合中文字幕| 日韩东京热无码人妻| 国产日本视频91| 成AV人片一区二区三区久久| 久久精品国产电影| 99久久国产自偷自偷免费一区| 国产迷奸在线看| 久久天天躁狠狠躁夜夜躁| 在线色国产| 再看日本中文字幕在线观看| 久久无码av三级| jijzzizz老师出水喷水喷出| 欧洲亚洲欧美国产日本高清| 一级看片免费视频| 亚欧成人无码AV在线播放| 91在线一9|永久视频在线| 亚洲成人播放| 黄色在线不卡| 国产乱子伦无码精品小说| 最新日本中文字幕| 一级毛片基地| 88av在线| 国产91小视频| 成人福利在线观看| 国产对白刺激真实精品91| 中文字幕无码av专区久久| 成年人午夜免费视频| 国产成人精品亚洲77美色| 亚洲AV成人一区二区三区AV| 欧美成人A视频| 亚洲国产清纯| 丁香综合在线|