亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        層次化精準編譯原理實踐教學

        2020-08-26 07:46:55王中卿朱培培
        電腦知識與技術 2020年20期
        關鍵詞:編譯原理實踐教學

        王中卿 朱培培

        摘要:《編譯原理》作為計算機專業(yè)一門重要的專業(yè)課,理論性強且較為抽象。實踐教學可以輔助理論教學,訓練學生思維,加強學生對理論知識的深度了解及設計編譯程序的能力。針對現有實踐教學體系的問題,在編譯原理核心算法和編澤器的設計兩方面,分別對教學內容及實踐難度進行了層次化創(chuàng)新,從而對學生進行步步引導,提高編譯原理的教學質量。

        關鍵詞:編譯原理;實踐教學;詞法分析;語法分析;語法制導翻譯

        中圖分類號:C642 文獻標識碼:A

        文章編號:1009-3044(2020)20-0158-02

        Hierarchical and Precise Experiment Teaching of Principle Practical

        WANG Zhong-qing, ZHU Pei-pei

        (School of Computer Science and 'l'echnology, Soochow U niversity, Suzhou 215006, China)

        Abstract: As an important professional course for computer maj ors,¨ C ompilation Principle "is highly theoretical and abstract. Practi-cal teaching can assist theoretical teaching, train students' thinking, and strengthen students' deep understanding of theoreticalknowledge and the ability to design compilers. Aiming at the problems of the existing practical teaching system, this paper makesthe teaching content and practice difficulty hierarchical in two aspects: the compilation principle core algorithms and compiler de-sign, so as to guide students step hy step and improve the teaching quality of compilation principle.

        Key words: compilation principle; practical teaching; lexical analysis; grammatical analysis; grammatical guidance translation

        1引言

        編譯原理課程是高校計算機及信息類相關專業(yè)的基礎及核心課程,該課程涵蓋數據結構、算法等多方面的知識,有著很強的邏輯推理性和高度概括的抽象性,同時也將實踐和理論高度結合[1],是計算機專業(yè)課中最具有挑戰(zhàn)力的課程之一,在語言處理、軟件工程、軟件自動化等諸多領域有著廣泛的應用[2]。在編譯原理理論教學中有限自動機、語法制導等知識都比較抽象,理解難度較大,學生只能片面的了解編譯器的相關知識,且難以運用。其次理論教學模式單一,很難激起學生的學習興趣,影響學生創(chuàng)新和創(chuàng)造思維的發(fā)展,因此衍生了一系列改革理論教學的方法[3-4]。本文認為理論教學還需要借助實踐課程來幫助學生進一步熟悉編譯原理技術,培養(yǎng)設計實現編譯程序等能力。

        編譯原理的實踐教學可以分為兩個方面:一方面是編譯原理相關算法的實踐[5],包括詞法分析部分的MYT算法和子集構造法,語法分析部分的LL文法和LR文法等;另外一方面是編譯器的設計[6-7],包括從詞法分析到語法制導翻譯的整個流程,以及每一個模塊的設計。兩部分是相輔相成的,編譯原理相關算法的實現是整個編譯器設計的基礎,而編譯器的設計又可以幫助理解編譯原理中的每個算法的思想。以往的相關實踐教學研究多偏重于其中一方面的教學,而這兩方面對于編譯原理實踐課都很重要[8],本文將分別從這兩個方面介紹層次化編譯原理實踐課的具體設計方案。

        2編譯原理核心算法的實現

        本節(jié)著重介紹編譯原理核心算法的實現,相關算法主要集中于詞法分析與語法分析部分。

        2.1詞法分析的實驗設計

        在詞法分析部分,著重于分析如何將正則表達式轉換為自動機,具體包含三方面的內容:正則表達式的應用,從正則表達式到不確定的有限自動機(NFA)的實現(MYT算法),從不確定的有限自動機(NFA)到確定的有限自動機(DFA)的實現(子集構造法)。

        首先設計簡單實驗讓學生熟悉編程語言的環(huán)境,了解正則表達式的基本用法,例如匹配日期,提取超鏈接,提取文檔標題與正文等。進一步的可設計實驗利用正則表達式進行LaTex源文件解析,從而提高學生的學習興趣,讓學生了解正則表達式如何與編譯原理結合。

        熟悉正則表達式之后,可設計實驗基于MYT算法將正則表達式轉換為對應的NFA狀態(tài)轉換表。實驗中可以給出識別字母表中一個字符、主運算符為閉包正則式的NFA狀態(tài)轉換表的構建,讓學生以此為例,實現主運算符為選擇,連接等正則式的NFA狀態(tài)轉換表的構建。

        最后設計基于子集構造法的實驗將NFA狀態(tài)轉換表轉換成對應的DFA狀態(tài)轉換表,其中主要讓學生實現ε-closure(S)、ε-closure(T)和move(T,a)函數,及驗證一個字符串是否能夠被DFA接受,從而提高學生對于從NFA到DFA轉換的理解。

        2.2語法分析的實驗設計

        在語法分析部分,由于計算機主要是基于自下而上的方式進行語法分析,因此主要要求學生實現兩個自下而上的語法分析算法:CYK算法和SLR語法分析方法。該部分的實驗有助于學生開拓算法知識,提高運用不同方法解決問題的能力。

        CYK算法是一個基于動態(tài)規(guī)劃思想,用于測試串w對于一個上下文無關文法L的成員性的一個算法。該算法采用并行算法,用逐次推進的辦法獲得最優(yōu)的結構,學生要定義語法規(guī)則并計算相關概率推算最可能的句子結構。

        SLR語法分析方法由從左向右處理輸入字符串,遵循最右邊優(yōu)先派生的推導順序,并解決相關沖突,該實驗要求學生構建SLR文法的可行前綴的DFA。

        3編譯器的設計與實現

        本節(jié)著重介紹編譯器的設計與實現過程中涉及的相關模塊的實現。整個實現過程需要利用編譯器構建工具PLY(Py-thon Lex-Yacc),該工具已經封裝了基本的詞法分析與語法分析模塊,基于PLY能夠使學生很快的構建相關的編譯器模塊。

        為了能夠更好地進行編譯器的設計與實現,本文將整個實現過程分為兩個部分:一是對于一些簡單的語法處理器的實現,二是構建一個完整的基于程序設計語言的編譯器。在下面的小節(jié)將分別進行描述。

        3.1簡單的語法處理器的實驗設計

        為了讓學生能夠對編譯器有一個形象的理解,首先讓學生構建一些簡單的語法處理器,包括:化學表達式的解析,SQL語言的解析和LaTex源文件的解析。這些實驗循序漸進,從簡單到復雜,可以讓學生熟悉PLY工具,理解詞法分析模塊(lex)如何與語法分析模塊(yacc)聯系在一起、如何定義沒有二義性的語法規(guī)則以及如何處理移進和歸約沖突。

        1)化學表達式的解析

        化學分子式的解析主要為了考察學生對于單個語法單元的解析?;瘜W分子式由元素符號和數字組成,本實驗要求學生計算化學分子式中元素的數目,例如“H2S04”中元素的數目為7。

        2)SQL語言的解析

        SQL語言的解析主要考察學生對于單行語句的解析。首先讓學生熟悉示例程序中的解析SQL語言的程序,然后讓學生擴展示例程序中的語法,使其能完全適應SQL查詢語句,并完成相關SQL文件的查詢(包括,where、order by、group等)。該實驗要求學生寫出相應的正則式提取及語法規(guī)則的定義。

        3)LaTex源文件的解析

        LaTex源文件的解析主要是考察學生對于多行語句的解析。該實驗需要學生定義LaTex中各個標簽的語法規(guī)則,輸出相應的語法樹,并轉化為PDF格式。語法分析中會運用到遞歸思想,能鍛煉學生的邏輯思維能力,且該實驗能加強學生對La-Tex文本的認識。

        3.2基于Python--的編譯器的實驗設計

        當學生實現了上述簡單的語法處理器之后,本節(jié)將繼續(xù)指導學生實現一個基于Python——語法的編譯器。所謂Python——是指一個比Python更簡單的程序設計語言。整個編譯器的實現包括:賦值語句,輸出語句,條件與循環(huán)語句,函數,類的實現等。

        首先需要實現的是簡單四則運算的程序,例如c=a+b,其中包括賦值語句和輸出語句,該實驗要求學生先構造語法樹,然后為每一條Python語句所對應的語法樹結點沒置一個屬性并為每一個產生式實現語法制導翻譯。

        其次是實現循環(huán)與條件語句的解析,包括while,for,if等語句。并基于這些語句實現復雜的算法的編譯,例如:二分查找和選擇排序,從而幫助學生不斷優(yōu)化細節(jié),使程序具有更好的魯棒性。

        然后是函數的解析,該實驗需要通過一個函數表來保存每個函數的信息,然后通過函數表實現函數的調用。在該實驗中,學生要考慮到函數定義、函數調用、返回語句等的解析與翻譯。

        最后就是類的解析,該實驗需要實現類中變量和函數的翻譯等,要注意類中成員函數、成員變量和一般函數、變量的區(qū)別以及構造函數的解析。

        整個基于Python-語法編譯器的實現過程從簡單的語句到函數再到類,一步一步指導學生優(yōu)化Python——語法的體系,幫助學生熟悉從詞法分析到語法分析再到語法制導翻譯的過程,有利于培養(yǎng)學生將理論轉化為實踐的能力。

        4結束語

        在編譯原理實踐教學過程中,文章針對現有教學進行了一些創(chuàng)新研究。實踐教學改變了傳統理論教學單一的模式,提高了學生的興趣,且實踐內容由算法到編譯器的實現,實踐難度由淺入深,均具有層次性,循序漸進,一步一步引導學生深入了解編譯程序,不僅鍛煉了學生的編程能力,為之后大型程序的開發(fā)奠定了基礎,還提高了教學的質量。關于層次化實踐教學這個課題,還需要和更多相關課程的教師一起探討研究。

        參考文獻:

        [1]余芳,王曉明,趙森.基于創(chuàng)新思維培養(yǎng)的編譯原理實驗教學改革[J].大學教育,2019(12):45-47.

        [2]余月,李鳳霞,陳宇峰,計衛(wèi)星.計算機編譯原理課程虛擬實驗設計與實踐[J].實驗技術與理,2019,36(8):123-126.

        [3]楊旭.新工科背景下基于混合式教學的編譯原理課程教學改革探析[J].計算機產品與流通,2019(12):225.

        [4]于雙元,徐金安,丁丁,陳鈺楓.基于層次遞進模式的“編譯原理”課程教學研究與實踐[J].工業(yè)和信息化教育,2019(3):51-55.

        [5]萬新燕,時招軍.編譯原理實驗教學設計[J].教育教學論壇,2019(8):261-262.

        [6]李春娥.編譯原理實驗教學設計的改進[J].計算機產品與流通,2018(11):225.

        [7]侯書東,常家琦,劉恒.編譯原理課程教學實踐探究[J].安徽工業(yè)大學學報(社會科學版),2018,35(04):91-92.

        [8]孫守卿.基于工程教育專業(yè)認證的《編譯原理》課程改革[J].電腦知識與技術,2019,15(29):104-106.

        【通聯編輯:王力】

        收稿日期:2020-01-19

        基金項目:面向杜交網絡的中文事件抽取與預測研究,國家自然科學基金( 61806137);基于文本和社交網絡的突發(fā)事件發(fā)現研究,江蘇省高等學校自然科學研究面上項目(18KJB520043)

        作者簡介:王中卿(1987-),男,江蘇蘇州人,講師,博士,主要研究方向為自然語言處理;朱培培(1995-),女,江蘇省徐州人,碩士研究生,主要研究方向為自然語言處理,

        猜你喜歡
        編譯原理實踐教學
        《編譯原理》教學方法初探
        基于專業(yè)規(guī)范的編譯原理混合式教學改革
        軟件學院編譯原理實踐課程的教學探索
        計算機教育(2016年8期)2016-12-24 10:24:00
        基于MOOC的編譯原理分階段課程教學研究
        計算機教育(2016年9期)2016-12-21 00:32:22
        營造興趣啟蒙式學習氛圍的編譯原理首課設計
        計算機教育(2016年7期)2016-11-10 08:48:50
        茶學專業(yè)校企合作實踐教學探索
        考試周刊(2016年79期)2016-10-13 23:35:16
        《電氣工程畢業(yè)設計》 課程的教學設計
        考試周刊(2016年79期)2016-10-13 23:26:02
        研究型學習在傳熱學實踐教學中的應用
        大學教育(2016年9期)2016-10-09 08:34:10
        思想政治理論課實踐教學研究述評
        大學教育(2016年9期)2016-10-09 08:17:37
        高職院校商務禮儀課程教學改革探索芻議
        大學教育(2016年9期)2016-10-09 08:12:01
        亚洲av无码乱码国产麻豆穿越| 十八禁在线观看视频播放免费 | 午夜在线观看一区二区三区四区| 国产91第一页| 亚洲精品在线观看一区二区| 手机在线播放成人av| 少妇激情一区二区三区99| 亚洲人成网线在线播放va蜜芽| 人妻无码一区二区视频| 亚洲精品永久在线观看| 亚洲精品6久久久久中文字幕| 日本女优一区二区在线免费观看 | 中文字幕丰满人妻有码专区| 国产高颜值女主播在线| 亚洲欧美中文字幕5发布| 亚洲av无码专区电影在线观看| a毛片全部免费播放| 韩国主播av福利一区二区| 在线观看国产av一区二区| 日韩av一区二区观看| 色一情一乱一伦麻豆| 性一交一乱一伧国产女士spa| 东京热久久综合久久88| 天堂在线观看av一区二区三区 | 精品人妻少妇一区二区不卡 | 亚洲熟女一区二区三区不卡| 亚洲欧洲免费无码| 亚洲国产av玩弄放荡人妇系列 | 老熟妻内射精品一区| 国产免费一区二区三区最新不卡| 亚洲中文字幕黄色小视频| 久久久精品人妻一区二区三区妖精| 日本熟日本熟妇中文在线观看| 日本大片免费观看完整视频| 无码人妻中文中字幕一区二区| 国产一级自拍av播放| 亚洲av午夜成人片精品电影| 国产成人无码一区二区在线播放| jizz国产精品免费麻豆| 亚洲一区二区免费日韩| 自拍视频在线观看国产|