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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

语法分析器c语言 递归子程序,RecursiveSubroutine

發布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 语法分析器c语言 递归子程序,RecursiveSubroutine 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

RecursiveSubroutine

介紹

編譯原理語法分析——遞歸下降子程序類,C++實現。

實驗說明

一、實驗目標

分別采用自頂向下和自底向上兩種語法分析方法,編制一個語法分析程序,實現對詞法分析程序所提供的單詞序列的語法檢查和結構分析實驗內容。

二、實驗內容

選取一種自頂向下語法分析方法(遞歸子程序、LL分析法)和一種自底向上語法分析法(算符優先分析、LR分析方法)設計語法分析器,并對簡單語言進行語法分析。

2.1 待分析的簡單語言的語法

用擴充的BNF表示如下:

⑴::=beginend

⑵::={;}

⑶::=

⑷::=ID:=

⑸::={+ | -}

⑹::={* | /

⑺::=ID | NUM | ()

用上下文無關文法表示如下:

P→begin SList end

SList→S{;S}

S→A

A→ID:=E

E→E+T|E-T|T

T→T*F|T/F|F

F→(E)|ID|NUM

2.2 實驗要求說明

輸入單詞串,以“#”結束,如果是文法正確的句子,則輸出成功信息,打印“success”,否則輸出“error”。

例如:

輸入 begin a:=9; x:=23; b:=a+x end #

輸出 success!

輸入 x:=a+bc end #

輸出 error

三、實驗報告

實驗結束需要提交實驗報告,實驗報告需要包含自頂向下和自底向上兩種分析程序算法(可以用流程圖表示)和源代碼,以及測試結果截圖以及相關分析(需要設計至少10個不同的測試用例)。兩種不同算法用兩個文檔分別保存。

實驗過程

改為LL(1)文法

P→begin SList end

SList→S{;S}

S→A

A→ID:=E

E→TE’

E’→BTE’|

B→+|-

T→FT’

T’→CFT’|

C→*|/

F→(E)|ID|NUM

遞歸子程序

參看項目代碼

開發工具

VS2015

依賴

參與貢獻

Fork 本倉庫

新建 Feat_xxx 分支

提交代碼

新建 Pull Request

碼云特技

使用 Readme_XXX.md 來支持不同的語言,例如 Readme_en.md, Readme_zh.md

GVP 全稱是碼云最有價值開源項目,是碼云綜合評定出的優秀開源項目

總結

以上是生活随笔為你收集整理的语法分析器c语言 递归子程序,RecursiveSubroutine的全部內容,希望文章能夠幫你解決所遇到的問題。

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