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

        ?

        編譯器詞法分析程序?qū)崿F(xiàn)探討

        2011-06-09 08:06:10朱朝霞
        關(guān)鍵詞:分析程序詞法編譯器

        朱朝霞

        (長江大學計算機科學學院,荊州434023)

        0 引言

        編譯原理是計算機學科的一門專業(yè)核心課程,在計算機科學領(lǐng)域中具有重要地位,學習編譯原理課程的目的在于讓學生系統(tǒng)地了解并掌握程序設(shè)計語言編譯器的構(gòu)造原理及實現(xiàn)技術(shù)。詞法分析是編譯程序的第一步,其主要任務是掃描源程序,按構(gòu)詞規(guī)則識別單詞,并報告發(fā)現(xiàn)的詞法錯誤。構(gòu)造程序設(shè)計語言的詞法分析程序有手工生成和自動生成2種方法,在本課程的教學中筆者發(fā)現(xiàn)很多同學不能理解詞法分析的2種生成方法的實質(zhì),以至于很難真正掌握詞法分析技術(shù)。本文以詞法分析程序的實現(xiàn)為主線,剖析手工實現(xiàn)與自動生成的本質(zhì)與區(qū)別,以對編譯原理教學有所啟發(fā)。

        1 單詞的描述

        為構(gòu)造識別語言單詞符號的詞法分析程序,必須先對單詞進行結(jié)構(gòu)描述。目前,多數(shù)程序設(shè)計語言的單詞符號都能使用正規(guī)文法或正規(guī)式進行描述。

        例如以“標識符”為例,用正規(guī)文法描述可寫為:

        <標識符>→l|l<字母數(shù)字>

        <字母數(shù)字>→l|d|l<字母數(shù)字>|d<字母數(shù)字>

        用正規(guī)式描述可寫為:字母(字母|數(shù)字)*

        其中l(wèi)代表a~z中任一英文字母;d代表0~9中任一數(shù)字。2種定義方式各有不同的特點,用正規(guī)式定義簡潔清晰,用正規(guī)文法定義單詞易于識別。

        2 詞法分析程序的實現(xiàn)

        構(gòu)造詞法分析程序有2種方法:一是通過手工方式實現(xiàn),即根據(jù)識別語言單詞的狀態(tài)轉(zhuǎn)換圖,使用某種高級語言直接編寫詞法分析程序;二是利用詞法分析程序的自動生成工具自動生成。

        2.1 詞法分析程序的手工實現(xiàn)

        一個詞法分析程序手工生成可通過以下步驟得到:

        (1)根據(jù)語言的詞法規(guī)則寫出描述單詞的正規(guī)文法或正規(guī)式;

        (2)將正規(guī)文法或正規(guī)式轉(zhuǎn)換成相應的狀態(tài)轉(zhuǎn)換圖NFA(Nondeterministic Finite Automata);

        (3)將NFA確定化并最小化轉(zhuǎn)換為DFA(Deterministic Finite Automata);

        (4)將最小化的DFA轉(zhuǎn)換成算法的流程圖,進而實現(xiàn)詞法分析程序。

        用圖1可描述為:

        圖1 詞法分析程序的手工生成

        可見,詞法分析程序的手工生成其實質(zhì)是通過有窮自動機來實現(xiàn)詞法分析程序,只要構(gòu)造出識別語言單詞符號的有窮自動機,就很容易構(gòu)造出識別語言單詞符號的詞法分析程序。狀態(tài)轉(zhuǎn)換圖實際上是詞法分析程序的流程圖。

        編譯程序的詞法分析采用手工實現(xiàn)具有工作量大,維護困難等缺點,現(xiàn)在多數(shù)編譯器的詞法分析程序都是利用自動生成工具來完成,從而省掉了手工編寫詞法分析程序的煩瑣工作。

        2.2 詞法分析程序的自動生成

        詞法分析程序的自動生成是指由一個自動生成程序來生成詞法分析程序。目前,詞法分析程序自動生成工具有1972年美國Bell實驗室用C語言研制的詞法分析程序自動生成工具LEX(Lexical Analyzer Generator),可在 UNIX、Linux、DOS、Windows等環(huán)境下運行。其工作原理是將LEX源程序中的正規(guī)式轉(zhuǎn)換成相應的DFA,并將相應的動作插入到輸出的詞法分析器中適當?shù)牡胤?,控制流由該DFA的解釋掌握。其中LEX源程序用來描述各類語言的語法,由說明部分、識別規(guī)則和輔助過程3部分組成。

        LEX的使用流程為:

        (1)使用正規(guī)式描述語言的詞法并編寫LEX源文件;

        (2)編譯運行LEX源文件,產(chǎn)生LEX語言目標程序文件lex.yy.c;

        (3)lex.yy.c程序經(jīng)由C編譯,并和其他 C模塊連接產(chǎn)生執(zhí)行文件a.out(即詞法分析程序);

        (4)調(diào)試執(zhí)行文件,直至將輸入字符流變換成正確的單詞流。

        LEX必須和C一起使用,LEX源文件含有大量的C語言程序,并且LEX不能檢測源文件中C代碼的任何錯誤。詞法分析自動生成的流程可用圖2表示。

        圖2 使用LEX生成詞法分析程序

        例:下面以C語言的標識符、部分關(guān)鍵字、運算符和分界符為例構(gòu)造其LEX源程序。

        程序中1~4行為插入到LEX產(chǎn)生的C程序中,位于任何過程的外部;5~8行為正規(guī)式的定義;9~15行為識別規(guī)則部分;11~13行表示在識別標識符、關(guān)鍵字、運算符和界符時輸出不同的內(nèi)容。22~26行為主函數(shù),打開輸入輸出文件。此LEX源程序經(jīng)過LEX編譯器運行,產(chǎn)生一個C語言程序lex.yy.c,經(jīng)過C語言編譯器編譯后生成詞法分析程序a.out,此時輸入下段C語言源程序

        由上例可見,對于任何一種高級語言,若要構(gòu)造其詞法分析程序,只須用LEX源程序描述該語言的語法,LEX編譯系統(tǒng)對LEX源程序處理后,便可產(chǎn)生這種高級語言的詞法分析程序。

        3 結(jié)語

        詞法分析程序使用高級語言手工生成,程序結(jié)構(gòu)復雜,不易修改。詞法分析程序利用自動工具實現(xiàn),程序結(jié)構(gòu)簡單,并將詞法分析的重點放在正規(guī)表達式的描述和識別正規(guī)表達式之后的處理上,更易于維護詞法分析器。正確理解詞法分析程序手工生成與自動生成2種方法的實質(zhì)及區(qū)別,對于正確理解程序設(shè)計語言編譯程序的構(gòu)造原理及編譯原理課程的教學具有重要意義。

        [1]朱朝霞,周云才.編譯技術(shù)語法分析實踐教學探討[J].北京教育學院學報,2008,3(3):11-14.

        [2]李冬梅,施?;?編譯原理[M].北京:人民郵電出版社,2006:50-100.

        [3]張素琴,呂映芝.編譯原理[M].北京:清華大學出版社,2005:50-67.

        [4]張幸兒.編譯原理編譯程序構(gòu)造與實踐[M].北京:機械工業(yè)出版社,2008:46-81.

        [5]胡倫駿,徐蘭芳.編譯原理[M].北京:電子工業(yè)出版社,2004:173-177.

        [6]張昱,陳意云.編譯原理與技術(shù)[M].北京:高等教育出版社,2010:13-37.

        [7]蔣宗禮,姜守旭.編譯原理[M].北京:高等教育出版社,2010:64-112.

        猜你喜歡
        分析程序詞法編譯器
        詞法 名詞、代詞和冠詞
        管控經(jīng)營風險,以分析程序提升企業(yè)財務報表審計效能
        中國商人(2022年9期)2022-09-02 08:30:42
        基于相異編譯器的安全計算機平臺交叉編譯環(huán)境設(shè)計
        應用于詞法分析器的算法分析優(yōu)化
        談對外漢語“詞法詞”教學
        基于小波包變換的樂音時—頻綜合分析程序的開發(fā)
        音樂探索(2015年1期)2015-04-27 01:01:52
        通用NC代碼編譯器的設(shè)計與實現(xiàn)
        試論分析程序的應用
        時代金融(2012年9期)2012-04-29 03:09:26
        2010年高考英語“相似”考題例析
        淺析分析程序的應用效率
        亚洲AV无码一区二区一二区教师| 狠狠久久亚洲欧美专区| av人摸人人人澡人人超碰下载| 久久偷看各类wc女厕嘘嘘偷窃| 吃奶呻吟打开双腿做受视频| 欧美内射深喉中文字幕| 伊人色综合视频一区二区三区| 人人妻人人澡av天堂香蕉| 成人国产精品一区二区网站| 亚洲午夜看片无码| 偷拍激情视频一区二区| 在线观看免费视频发布白白色| 亚洲自拍偷拍一区二区三区| 青青草精品在线视频观看| 国产精品久久久久久久久绿色| 国产av无码专区亚洲av毛网站| 丰满人妻被黑人中出849| 中文字幕精品亚洲人成| 精品视频专区| 国产毛片一区二区日韩| 特级黄色大片性久久久| 森中文字幕一区二区三区免费| 久久精品国产清自在天天线| 中文亚洲欧美日韩无线码| 黄色成人网站免费无码av| 亚洲国产香蕉视频欧美| 黑人一区二区三区啪啪网站| 中文字幕日韩精品永久在线| 日韩女优精品一区二区三区| 无码av无码天堂资源网| 国产亚洲日韩欧美一区二区三区 | 亚洲av永久无码精品水牛影视| 成人做爰黄片视频蘑菇视频| 五月开心婷婷六月综合| 日本熟妇hdsex视频| 台湾佬综合网| 久久久精品国产亚洲AV蜜| 成年人视频在线播放视频| av成人综合在线资源站| 国产强被迫伦姧在线观看无码| 国产av无码专区亚洲av中文|