日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

编译原理——实验壹——TINY语言的词法分析

發布時間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编译原理——实验壹——TINY语言的词法分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、 實驗目的

  • 構造tiny語言的詞法分析器(掃描器),要求利用第三方的lex工具進行構造。構造出的掃描器,能夠讀入tiny語言的示例代碼,分解成token輸出。
  • 掌握使用lex工具
  • 掌握構造詞法分析器
  • 掌握lex的輸入文件的編寫
  • 二、 實驗設計
    掌握詞法分析器的構造和使用,學會使用 lex 工具來構造詞法分析程序。
    1.選擇教材《程序清單2-3 TINY語言中的樣本程序》作為輸入

    2.選擇教材中《程序清單2-4》作為輸出并做一些輸入輸出文件格式的改進

    3.準備好了實驗所需工具
    4.程序設計
    4-1:將[0-9]+作為digit 匹配數字
    4-2:將read |if| then| repeat | until |write | end 作為keyword 匹配關鍵字
    4-3:將[a-zA-Z]+作為letter 匹配單詞字母
    4-4:將{[^}]} 作為comment匹配注釋
    4-5;將":="|"="|"+"|"-"|""|"/"|">"|"<“作為operator 匹配操作符
    4-6:將[” “|\t|\n]+ 作為ignore匹配空格、換行、制表符 進行忽略
    4-7:將[”,"|";"]+ 作為other 正常輸出
    4-8:將匹配到的token,根據書本給出的格式進行輸出到屏幕上
    三、 內容和步驟
    1代碼:
    2、步驟:
    (1)在一個空文件夾內建一個print.l 文件,并鍵入代碼

    (2)使用flex命令,對print.l文件進行編譯。生成lex.yy.c文件

    (3)使用dev編譯器編譯lex.yy.c文件,生成.exe文件。

    3結果:
    (1)輸入

    (2)過程中

    (3)、輸出

    四、 實驗結論:
    1 理論基礎
    (1) 關于LEX工具的使用方法
    (2) 掌握LEX輸入文件的格式
    LEX輸入文件由3個部分組成:定義集、規則集、以及輔助程序集或用戶程序集。這3個部分由雙百分號分開
    (3)了解詞法分析器的內部工作原理
    (4)了解TINY語言的基本關鍵字和結構

    TINY 的單詞記號分為三種典型類型:保留字、特殊符號和“其他”單詞。保留字一共 8 個,特殊符號包括運算符和界符:分別是四種基本的整數運算符號,兩種比較符號(等號和小于),以及括號、分號和賦值號。除賦值號是兩個字符的長度以外,其余均為一個字符 TINY 的標識符是一個或多個字母的序列。數是一個或多個數字的序列。除了單詞之外,TINY 還要遵循以下詞法規則:注釋應放在花括號{…}中,且不可嵌套;代碼應是自由格式;空白符由空格、制表位和新行組成。

    2、分析和總結
    問題:編譯lex.yy.c文件時候想使用dos命令發現在windows環境下難以完成,于是下載了devc++編譯器完成該部分任務。
    結果:功能良好,可以完成預定的要求。
    總結:通過這次實驗,我對詞法分析器有了進一步的了解,可以把理論知識應用于實驗中。通過這次語義分析的實驗, 我對高級語言的學習有了更深的認識 ,了解得更透徹。
    3、對工具的評價
    作為lex&yacc安裝的集合,unxutils挺方便的,可以滿足基本要求。

    總結

    以上是生活随笔為你收集整理的编译原理——实验壹——TINY语言的词法分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。