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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Atitit 发帖机系列(7) 词法分析的方法attilax大总结)

發布時間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Atitit 发帖机系列(7) 词法分析的方法attilax大总结) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Atitit 發帖機系列(7) 詞法分析的方法attilax大總結)

?

1.1. 詞法分析貌似倆大方法,一個直接根據狀態圖轉換,一個根據dfa1

1.2. switchcase或者ifelse?最原始方法1

1.3. .??狀態表?比較實用2

1.4. ?使用NFADFA構建FSM?專業方法,難度大)?DFA實際上就是高級版的狀態表2

1.5. 構建詞法分析器一般需要幾個步驟:2

1.5.1. 為正規式設計NFA??由正規式構造FA——Thompson2

1.6. 優先遞歸 替換循環3

1.7. 狀態轉移表3

?

?

界面與后端通訊需要傳遞dsl,需要做詞法分析。。

?

1.1.?詞法分析貌似倆大方法,一個直接根據狀態圖轉換,一個根據dfa

?

?

簡單點兒說,詞法分析就是進行正則表達式匹配。詞法分析程序就是根據要匹配的正則表達式生成它的NFA或者DFA,再將待匹配的字符串放到這些NFA或者DFA中進行處理,從而分析出輸入字符串是否匹配給定的正則表達式

?

詞法分析器的任務是按照一定模式從源程序中識別出記號(token).

我們使用正規式描述這一模式,并通過有限自動機進行識別.

因為NFA對狀態轉移不加限制在實際應用中帶來很多問題, 通常我們將NFA轉換為等價的DFA. 這里所謂的自動機等價是指它們識別同樣的正規集.

?

?

1.2.?switchcase或者ifelse?最原始方法

?

這無意是最直觀的方式,使用一堆條件判斷,會編程的人都可以做到,對簡單小巧的狀態機來說最合適,但是毫無疑問,這樣的方式比較原始,對龐大的狀態機難以維護。

checkStateChange()performStateChange()這兩個函數本身依然會在面對很復雜的狀態機時,內部邏輯變得異常臃腫,甚至可能是難以實現。

在很長一段時期內,使用switch?句一直是實現有限狀態機的唯一方法,甚至像編譯器這樣復雜的軟件系統,大部分也都直接采用這種實現方式。但?之后隨著狀態機應用的逐漸深入,構造出來的狀態?機越來越復雜,這種方法也開始面臨各種嚴峻的考驗,其中最令人頭痛的是如果狀態機中的狀態非常多,或者狀?態之間的轉換關系異常復雜,那么簡單地使用switch語句構造出來的狀態機將是不可維護的。

?

1.3.?.??狀態表?比較實用

?

1.4.??使用NFADFA構建FSM?專業方法,難度大)?DFA實際上就是高級版的狀態表

使用DFA的方法完成的可配置詞法分析器的性能是相當好

一般來說,比較高性能的DFA的實現是一張二維的表。行代表字符,列代表DFA?的狀態,單元格代表該狀態經輸入某個字符之后進行轉移的目標狀態。此外還有一張表用來記錄哪些狀態對應哪些規則的結束狀態

?

1.5.?構建詞法分析器一般需要幾個步驟:

00001.?

用正規式描述記號的模式

00002.?

00003.?

1.5.1.?為正規式設計NFA??由正規式構造FA——Thompson

?

00004.?

00005.?

NFA轉換為等價的DFA, 這一步稱為確定化

00006.?

00007.?

優化DFA使其狀態數最少, 這一步稱為最小化

00008.?

?

1.6.?優先遞歸 替換循環

遞歸可讀性更好。。

?

?

1.7.?狀態轉移表

cur_dbquo_stat

當前狀態

當前字符

要即將轉換到的下一狀態

?

?

?

\

?

?

?

??dbQuo_start

<none>

?

?

Not sQuo start

Not dbQuo_start

sQuo ?start

?

?

sQuo start

sQuo ?end

?

Dbquo end or <non>

Not Dbquo start

?

Dbquo start

?

Dbquo start

?

Dbquo end

?

?

Non sQuo ?dbquo start

,

?

?

?

?

?

?

?

?

?

?

?

?

字符串優先使用單引號,方便輸入。。

meth(\"select from tab where a='abc'\",'str2',\'s3\')

引號需要單獨的狀態表示

?

參考資料

atitit.自己動手開發編譯器and解釋器(1) ------詞法分析--attilax總結 - attilax的專欄 - 博客頻道 - CSDN.NET.html

詞法分析實戰 - booirror的博客 - 博客頻道 - CSDN.NET.html

現代編譯原理--第一章(詞法分析) - BlackWalnut - 博客園.html

?

作者::?綽號:老哇的爪子?(?全名::Attilax?Akbar?Al?Rapanui?阿提拉克斯?阿克巴?阿爾?拉帕努伊?)?

漢字名:艾提拉(艾龍)???EMAIL:1466519819@qq.com

轉載請注明來源:?http://www.cnblogs.com/attilax/

--Atiend

?

轉載于:https://www.cnblogs.com/attilax/p/6107896.html

總結

以上是生活随笔為你收集整理的Atitit 发帖机系列(7) 词法分析的方法attilax大总结)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产精品国产三级国产专区51 | 久久亚洲美女 | 手机看片欧美 | 日韩avwww| 四虎影院在线看 | 欧美熟妇交换久久久久久分类 | 夜夜草天天草 | 91亚洲视频 | 人妻熟女一区二区三区 | 久久久精品国产sm调教网站 | 亚洲精品视频观看 | 日本视频h | 国产最新精品视频 | 免费av国产 | 国产欧美色图 | 国产高清自拍一区 | 超碰自拍 | 中文字幕日韩亚洲 | 先锋资源av | 草草久久久无码国产专区 | 日日日插插插 | 国产精品av在线 | 精品国产无码在线观看 | 国产性一乱一性一伧一色 | 国产美女一区二区 | 狠狠操夜夜 | 国产免费一区二区三区免费视频 | a视频在线看 | 日本专区在线 | 超碰97在线看 | 亚洲天堂美女视频 | 国产综合亚洲精品一区二 | 日韩精品一区二区三区中文字幕 | 日韩精品免费视频 | 成人欧美一区二区三区白人 | 美女在线观看www | 亚洲自啪 | 午夜大片网 | 毛片免费视频 | www.久久色 | 欧美午夜精品久久久久久浪潮 | 密臀av在线 | 亚洲av少妇一区二区在线观看 | wwwxxx欧美| 亚洲啪av永久无码精品放毛片 | 一级日韩毛片 | 国产成人免费观看视频 | 亚洲精品无码成人 | 夜夜骑夜夜操 | 成年人看的黄色 | 欧美精品一区二区三区蜜臀 | 国产精品人妻一区二区三区 | 午夜激情网 | 亚洲av第一成肉网 | 爱爱网站免费 | 成人三级做爰av | 国产日韩av一区二区 | 久久伊人一区二区 | 巨乳中文字幕 | 高跟91娇喘 | 亚洲伦理网站 | 法国经典free性复古xxxx | 免费毛片一区二区三区久久久 | 亚洲欧美日韩精品在线观看 | 天天操天天干天天舔 | 欧美一区二区三区日韩 | 999精品在线观看 | 亚洲精品成人网 | 久久久www | 外国电影免费观看高清完整版 | 久久精国产 | 久草视频播放 | 精品一区二区三区在线视频 | 久久一级电影 | 久久久影院 | 国产视频第一区 | 娇妻之欲海泛舟无弹窗笔趣阁 | 91精品国产乱码久久久久久久久 | 四虎网站| 日韩涩| 外国电影免费观看高清完整版 | 成人小视频免费观看 | 懂色一区二区二区av免费观看 | 国产免费一区二区三区三州老师 | 色偷偷视频 | 欧美日韩中文字幕在线视频 | 亚洲精品国产精品乱码不99按摩 | 亚洲精品高清在线观看 | av狠狠操 | 风流老熟女一区二区三区 | 日韩免费毛片 | aⅴ天堂网 | 少妇2做爰交换朴银狐 | 久久精品丝袜高跟鞋 | av资源在线 | 久久a久久 | 麻豆91在线播放 | 亚洲性图一区二区 | 日韩字幕在线 |