都說編譯原理挺難,其實它並不像大家想象中的那麼難, it』s so easy!
總的來說編譯原理可以分為以下幾個知識點:文法的分類;不確定的有限狀態自動機到確定的有限狀態自動機的轉換;正規表示式。掌握了這三個知識點,編譯原理中每個題的道理了,其實編譯原理就是這麼回事。
下面具體介紹上面說的三個知識點:
1. 文法的分類(喬姆斯基文法)
做乙個**,簡單明瞭的說明,你一下就明白了
文法型別 要求
舉例0型文法(短語文法)
左邊至少有乙個非終結節點
a->a,ab->c
1型文法(上下文有關文法)
在0型文法基礎上,右邊長度不得短於左邊的長度
a->a,ab->ab
2型文法(上下文無關文法)
在1型文法基礎上,每乙個α→β都有α是非終結符
a->a,b->bc
3型文法(正規文法)
在2型文法的基礎上,滿足:a→α|αb(右線性文法)或a→α|bα(左線性文法)
a→α|αb(右線性文法)或a→α|bα(左線性文法)
2. nfa->dfa轉換
過程大致是首先找開始狀態,其次確定輸入的資料,然後確定輸入資料後分別到達什麼狀態。舉乙個例子,大家可以去悟其中的道理,將下圖中的nfa轉換為dfa
轉換過程為:
狀態集合
輸入0到達的狀態
輸入1到達的狀態 初態
3. 正規表示式
掌握下面3個規則就可以了 規則
文法產生式
正規式 規則
1a→x
b,b→
ya=xy規則2
a→xa|y
a=x*y規則3
a→x,
a→ya=x|y
簡簡單單寫程式
寫程式這麼多年,總有幾百萬行了。感覺,程式寫的方向,總的來說越來越簡單。乙個函式,簡簡單單幾行就完了,乙個類,簡簡單單幾個公有方法,也就完了。簡單,就不容易出錯,自己看自己的 看昏了的也有,乙個函式幾千行,人的腦子,堆疊顯然不夠用,看了後面,忘了前面,何苦呢。簡單,就好懂,乙個工程完了,心裡其實很發...
簡簡單單聯合查詢
最近兩節過於簡單都不配有腦圖 聯合查詢 union 含義 將多條查詢語句的結果合併成乙個結果 語法 查詢語句1 union 查詢語句2 應用場景 要查詢的結果來自多個表,且多個表沒有直接的連線關係,但查詢的資訊一致時 注意事項 1 要求多條查詢語句的查詢列數是一致的 2 要求多條查詢語句每一列的型別...
css(簡簡單單學習)
cascading style sheet 層疊樣式表 css 表現 美化網頁 lang en charset utf 8 titletitle rel stylesheet href css style.css head 標題h1 body html h1 內部樣式 標籤內 行內樣式 style ...